2017 © Pedro Peláez
 

library laravel-system-monitor

Laravel system monitor, export application info to statsd

image

jildertmiedema/laravel-system-monitor

Laravel system monitor, export application info to statsd

  • Friday, February 16, 2018
  • by jildertmiedema
  • Repository
  • 1 Watchers
  • 1 Stars
  • 23,159 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 10 Versions
  • 20 % Grown

The README.md

laravel-system-monitor

Author Build Status Quality Score Software License Packagist Version Total Downloads, (*1)

This package will be monitor application metrices. It is dynamic configurable, but with the default settings you will be able to show some basic stuff., (*2)

This package usage statsd as a default output but off course you can implement your own store, (*3)

Install

This package depends on the statsd client from the php league. Read their manual to get it up and running, (*4)

Install the package:, (*5)

composer require jildertmiedema/laravel-system-monitor

Add these lines in the config/app.php file in the providers array., (*6)

JildertMiedema\SystemMonitor\SystemMonitorServiceProvider::class,
League\StatsD\Laravel5\Provider\StatsdServiceProvider::class,

If you've added the artisan schedule:run command to your cron, then you can add this to your App\Console\Kernel class, (*7)

protected function schedule(Schedule $schedule)
{
    $schedule->command('measurement:run')->everyMinute();
}

Now the system will send the measurement results to Statsd every minute, (*8)

Configuration

To publish the config use:, (*9)

php artisan vendor:publish --tag="config"

Change the config/measurement.php file to your needs., (*10)

Measurements can be configured by choosing a type and key. The type is the type of the type of the measurement. The key is the statsd key. Per type some additional settings are required., (*11)

  • mysql.speed The reaction time of a mysql connection. (Configure a connection)
  • redis.speed The reaction time of a redis connection. (Configure a connection)
  • queue.size Measures to amount of items in the queue. (Configure a queue)
  • queue.waiting-time Put a job on the queue and measures how long it takes before its handled by the queue. (Configure a queue)

Testing

Run this command to show the result as console output. php artisan measurement:run --debug, (*12)

Statsd server

This package is design to be send to a statsd server. Of course you can implement your own MeasurementStore to send it elsewhere. Some docker stuff is created to receive (and show) data. Show me, (*13)

Extending

This package comes with a default setup, but you can easly extend or replace parts., (*14)

To create your own measurement, create a new class that implements the JildertMiedema\SystemMonitor\Measurements\Measurement interface. To register your class insert this in a service provider:, (*15)

use JildertMiedema\SystemMonitor\Measurements\Manager;

$this->app->resolving('measurement', function (Manager $manager) {
    $manager->extend($this->app[YourMeasurementClass::class]);
});

The Versions