Skip to content

chocofamilyme/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.