overtrue / laravel-open-telemetry
本包提供了一种简单的方法,可以将 OpenTelemetry 添加到您的 Laravel 应用程序中。
0.0.7
2024-06-19 07:50 UTC
Requires
- php: >=8.2
- ext-opentelemetry: *
- open-telemetry/exporter-otlp: *
- open-telemetry/opentelemetry-auto-laravel: ^0.0.25
- open-telemetry/sdk: *
Requires (Dev)
- laravel/pint: ^1.15
- orchestra/testbench: ^9.0
- spatie/test-time: ^1.3
README
此包提供了一种简单的方法,可以将 OpenTelemetry 添加到您的 Laravel 应用程序中。
安装
您可以通过 composer 安装此包
composer require overtrue/laravel-open-telemetry
使用方法
配置
发布配置文件
php artisan vendor:publish --provider="Overtrue\LaravelOpenTelemetry\OpenTelemetryServiceProvider" --tag="config"
更新环境变量
您可以参考 OpenTelemetry SDK 配置说明
OTEL_ENABLED=true OTEL_AUTO_TRACE_REQUESTS=true OTEL_PHP_AUTOLOAD_ENABLED=true OTEL_PHP_TRACE_CLI_ENABLED=true OTEL_SERVICE_NAME=my-app OTEL_TRACES_EXPORTER=otlp #OTEL_EXPORTER_OTLP_PROTOCOL=grpc OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4318 OTEL_PROPAGATORS=baggage,tracecontext
以及其他环境变量,您可以在配置文件中找到它们:config/otle.php
。
注册中间件
您可以在 app/Http/Kernel.php
中注册中间件
protected $middleware = [ \Overtrue\LaravelOpenTelemetry\Middlewares\MeasureRequest::class, // ... ];
或者,您可以将环境变量 OTEL_AUTO_TRACE_REQUESTS
设置为 true
以自动启用它。
自定义跨度
您可以通过使用 Overtrue\LaravelOpenTelemetry\Facades\Measure
门面
use Overtrue\LaravelOpenTelemetry\Facades\Measure; Measure::span('your-span-name')->measure(function() { // ... });
或手动开始和结束跨度
Measure::start('your-span-name'); // ... Measure::end();
并且您可以使用闭包修改跨度属性
Measure::start('your-span-name', function($span) { $span->setAttribute('key', 'value'); // ... }); // ... Measure::end();
当然,您也可以通过使用 Measure::span()
方法获取跨度实例
$span = Measure::span('your-span-name'); $span->setAttribute('key', 'value'); $scope = $span->activate(); // ... $span->end(); $scope->detach();
贡献
您可以通过以下三种方式之一进行贡献
代码贡献过程并不非常正式。您只需要确保遵循 PSR-0、PSR-1 和 PSR-2 编码指南。任何新的代码贡献都必须附带适用的单元测试。
❤️ 赞助我
如果您喜欢我的项目并想支持它,点击这里 ❤️
由 JetBrains 支持的项目
非常感谢 JetBrains 慷慨地提供许可证,使我能够从事这项以及其他开源项目的工作。
许可协议
MIT