Skip to content

hyperia-sk/laravel-jaeger

 
 

Repository files navigation

Laravel Jaeger wrapper

Requirements

  • PHP ^8.0
  • Laravel ^9.0

Installation

You can install the package via composer:

composer require chocofamilyme/laravel-jaeger

You can publish the config file with:

php artisan vendor:publish --provider="Chocofamilyme\LaravelJaeger\LaravelJaegerServiceProvider" --tag="config"

Basic Usage

  1. You need to inject \Chocofamilyme\LaravelJaeger\Jaeger class by DI
  2. Start new span by command
    $jaeger->start('Some operation', [
        'tag1' => 'test',
        'tag2' => 'test'
    ]);
  1. do some stuff
  2. (optional) stop span
    $jaeger->stop('Some operation', [
        'tag3' => 'test',
    ]);

All unstopped spans will be automatically stopped when application is terminated

Controlling the rate of traces

In the configuration file you may modify JAEGER_SAMPLE_RATE variable to configure the rate. The variable accepts values from 0 to 1.

For example, if you set 0.1 then only 10% of all traces is displayed. Set 1 to output them all.

Listeners

There are 4 available listeners, they are disabled by default, you can turn on or write your own implementation for this listeners in config file

'listeners' => [
    'http' => [
        'enabled' => env('JAEGER_HTTP_LISTENER_ENABLED', false),
        'handler' => \Chocofamilyme\LaravelJaeger\JaegerMiddleware::class,
    ],
    'console' => [
        'enabled' => env('JAEGER_CONSOLE_LISTENER_ENABLED', false),
        'handler' => \Chocofamilyme\LaravelJaeger\Listeners\CommandListener::class,
    ],
    'query' => [
        'enabled' => env('JAEGER_QUERY_LISTENER_ENABLED', false),
        'handler' => \Chocofamilyme\LaravelJaeger\Listeners\QueryListener::class,
    ],
    'job' => [
        'enabled' => env('JAEGER_JOB_LISTENER_ENABLED', false),
        'handler' => \Chocofamilyme\LaravelJaeger\Listeners\JobListener::class,
    ],
]
  • Http - Start new span for every http request
  • Console - Start new span for every running artisan console commands
  • Query - Start new span for every executed database query
  • Job - Start new span for every dispatched queue job

Testing

composer test

Changelog

Read changelog here

License

The MIT License (MIT). Please see License File for more information.

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%