jildertmiedema / laravel-system-monitor
Laravel系统监控,将应用程序信息导出到statsd
v0.3.1
2018-02-16 14:51 UTC
Requires
- php: ^7.1.3
- illuminate/config: 5.6.*
- illuminate/console: 5.6.*
- illuminate/container: 5.6.*
- illuminate/database: 5.6.*
- illuminate/redis: 5.6.*
- illuminate/support: 5.6.*
- league/statsd: ^1.4
Requires (Dev)
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^2.3
README
此包将监控应用程序指标。它是动态可配置的,但使用默认设置,您将能够显示一些基本内容。
此包使用statsd作为默认输出,当然您也可以实现自己的存储方式
安装
此包依赖于来自php league的statsd客户端。阅读他们的手册以启动并运行
安装此包
composer require jildertmiedema/laravel-system-monitor
在config/app.php
文件中的providers
数组中添加以下行。
JildertMiedema\SystemMonitor\SystemMonitorServiceProvider::class, League\StatsD\Laravel5\Provider\StatsdServiceProvider::class,
如果您已将artisan schedule:run
命令添加到cron中,则可以将此添加到您的App\Console\Kernel
类中
protected function schedule(Schedule $schedule) { $schedule->command('measurement:run')->everyMinute(); }
现在系统将每分钟将测量结果发送到Statsd
配置
要发布配置,请使用
php artisan vendor:publish --tag="config"
根据您的需求更改config/measurement.php
文件。
可以通过选择type
和key
来配置测量。其中type
是测量的类型,而key
是statsd键。每种类型都需要一些额外的设置。
mysql.speed
mysql连接的响应时间。(配置一个connection
)redis.speed
redis连接的响应时间。(配置一个connection
)queue.size
测量队列中项的数量。(配置一个queue
)queue.waiting-time
将作业放入队列并测量其被队列处理之前所需的时间。(配置一个queue
)
测试
运行此命令以将结果显示为控制台输出。php artisan measurement:run --debug
Statsd服务器
此包旨在发送到statsd服务器。当然,您可以实现自己的MeasurementStore
以发送到其他地方。创建了一些Docker文件来接收(并显示)数据。查看
扩展
此包附带默认设置,但您可以轻松扩展或替换部分。
要创建自己的测量,创建一个新的类,该类实现了JildertMiedema\SystemMonitor\Measurements\Measurement
接口。要注册您的类,请将其插入到服务提供程序中。
use JildertMiedema\SystemMonitor\Measurements\Manager; $this->app->resolving('measurement', function (Manager $manager) { $manager->extend($this->app[YourMeasurementClass::class]); });