chocofamilyme / laravel-jaeger
Laravel 的 Jaeger 封装器
3.0.0
2023-06-16 07:22 UTC
Requires
- php: ^8.0
- ext-json: *
- jonahgeorge/jaeger-client-php: ^1.4
- laravel/framework: ^9.0|^10.0
Requires (Dev)
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^4.6.0
This package is auto-updated.
Last update: 2024-09-16 10:40:54 UTC
README
要求
- PHP ^8.0
- Laravel ^9.0
安装
您可以通过 composer 安装此包
composer require chocofamilyme/laravel-jaeger
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Chocofamilyme\LaravelJaeger\LaravelJaegerServiceProvider" --tag="config"
基本用法
- 您需要通过依赖注入(DI)注入 \Chocofamilyme\LaravelJaeger\Jaeger 类
- 通过命令开始新的 span
$jaeger->start('Some operation', [ 'tag1' => 'test', 'tag2' => 'test' ]);
- 执行一些操作
- (可选) 停止 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)。有关更多信息,请参阅 许可证文件。