chocofamilyme/laravel-jaeger

Laravel 的 Jaeger 封装器

3.0.0 2023-06-16 07:22 UTC

README

要求

  • PHP ^8.0
  • Laravel ^9.0

安装

您可以通过 composer 安装此包

composer require chocofamilyme/laravel-jaeger

您可以使用以下命令发布配置文件

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

基本用法

  1. 您需要通过依赖注入(DI)注入 \Chocofamilyme\LaravelJaeger\Jaeger 类
  2. 通过命令开始新的 span
    $jaeger->start('Some operation', [
        'tag1' => 'test',
        'tag2' => 'test'
    ]);
  1. 执行一些操作
  2. (可选) 停止 span
    $jaeger->stop('Some operation', [
        'tag3' => 'test',
    ]);

所有未停止的 span 将在应用程序终止时自动停止

控制跟踪的速率

在配置文件中,您可以修改 JAEGER_SAMPLE_RATE 变量以配置速率。该变量接受从 0 到 1 的值。

例如,如果您设置为 0.1,则仅显示所有跟踪的 10%。设置为 1 以输出所有跟踪。

监听器

有 4 个可用的监听器,它们默认是禁用的,您可以在配置文件中将其启用或编写自己的实现

'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 - 为每个 HTTP 请求启动新的 span
  • Console - 为每个运行的 artisan 命令行启动新的 span
  • Query - 为每个执行的数据库查询启动新的 span
  • Job - 为每个派发的队列作业启动新的 span

测试

composer test

变更日志

在这里阅读变更日志 here

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件