open-telemetry/opentelemetry-propagation-traceresponse

OpenTelemetry traceresponse 传播器。

0.0.3 2024-03-04 11:59 UTC

This package is auto-updated.

Last update: 2024-09-08 03:42:15 UTC


README

Releases Issues Source Mirror Latest Version Stable

这是从https://github.com/open-telemetry/opentelemetry-php-contrib 分离出来的只读子树。

OpenTelemetry TraceResponse 传播器

注意: 由于 traceresponse 目前是编辑草案,因此此软件包为实验性质。

此软件包提供了一种 Trace Context HTTP 响应头格式 传播器,用于将当前跨度上下文注入到响应数据结构中。

主要目标是允许客户端技术(真实用户监控、HTTP 客户端)记录服务器端上下文,以便进行引用。

要求

  • OpenTelemetry SDK 和导出器(用于实际导出跟踪信息)

可选

  • OpenTelemetry 扩展(某些仪表化可以自动使用 TraceResponsePropagator

使用方法

假设存在一个活动的 SpanContext,您可以按照以下方式将其注入到您的响应中

// your framework probably provides a datastructure to model HTTP responses
// and allows you to hook into the end of a request / listen to a matching event.
$response = new Response();

// get the current scope, bail out if none
$scope = Context::storage()->scope();
if (null === $scope) {
    return;
}

// create a PropagationSetterInterface that knows how to inject response headers
$propagationSetter = new class implements OpenTelemetry\Context\Propagation\PropagationSetterInterface {
    public function set(&$carrier, string $key, string $value) : void {
        $carrier->headers->set($key, $value);
    }
};
$propagator = new TraceResponseProgator();
$propagator->inject($response, $propagationSetter, $scope->context());

通过 composer 安装

$ composer require open-telemetry/opentelemetry-propagation-traceresponse

安装依赖项并执行测试

从 TraceResponse 子目录

$ composer install
$ ./vendor/bin/phpunit tests