jildertmiedema/laravel-system-monitor

Laravel系统监控,将应用程序信息导出到statsd

v0.3.1 2018-02-16 14:51 UTC

This package is auto-updated.

Last update: 2024-09-11 21:37:59 UTC


README

Author Build Status Quality Score Software License Packagist Version Total Downloads

此包将监控应用程序指标。它是动态可配置的,但使用默认设置,您将能够显示一些基本内容。

此包使用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文件。

可以通过选择typekey来配置测量。其中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]);
});