hyperia / laravel-jaeger
Laravel 的 Jaeger 封装器
dev-master
2023-10-27 09:33 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-08-27 11:32:57 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)。请参阅 许可证文件 了解更多信息。