overtrue/laravel-open-telemetry

本包提供了一种简单的方法,可以将 OpenTelemetry 添加到您的 Laravel 应用程序中。

0.0.7 2024-06-19 07:50 UTC

This package is auto-updated.

Last update: 2024-09-19 08:29:13 UTC


README

此包提供了一种简单的方法,可以将 OpenTelemetry 添加到您的 Laravel 应用程序中。

CI Latest Stable Version Latest Unstable Version Total Downloads License

安装

您可以通过 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();

贡献

您可以通过以下三种方式之一进行贡献

  1. 使用 问题跟踪器 提交错误报告。
  2. 问题跟踪器 上回答问题或修复错误。
  3. 贡献新功能或更新wiki。

代码贡献过程并不非常正式。您只需要确保遵循 PSR-0、PSR-1 和 PSR-2 编码指南。任何新的代码贡献都必须附带适用的单元测试。

❤️ 赞助我

如果您喜欢我的项目并想支持它,点击这里 ❤️

由 JetBrains 支持的项目

非常感谢 JetBrains 慷慨地提供许可证,使我能够从事这项以及其他开源项目的工作。

许可协议

MIT