jcchavezs/zipkin-instrumentation-guzzle

为 Guzzle HTTP 客户端提供的 Zipkin 仪表化

2.0.0 2020-12-10 09:02 UTC

This package is auto-updated.

Last update: 2024-09-11 18:29:38 UTC


README

CI Latest Stable Version Total Downloads License

为 Guzzle HTTP 客户端提供的 Zipkin 仪表化。

安装

composer require jcchavezs/zipkin-instrumentation-guzzle

使用方法

ZipkinGuzzle\Middleware 是一个 Guzzle 中间件,可以与 GuzzleHttp\Client 一起使用,以创建跨度并传播上下文。

默认处理程序

您可以使用默认处理程序来简化仪表化

use Zipkin\TracingBuilder;
use ZipkinGuzzle\Middleware;

$tracing = TracingBuilder::create()->build();

// Default tags for all spans being created. They are not mandatory.
$tags = [
   'instance' => $_SERVER['SERVER_NAME']
];

$client = new Client([
    'handler' => Middleware\handlerStack($tracing, $tags),
]);

自定义处理程序

如果您需要自定义跟踪处理程序(例如,使用另一个处理程序包装它),您可以创建一个 GuzzleHttp\HandlerStack 并将其处理程序推入/移出其中,确保 跟踪中间件保持在堆栈的顶部

use GuzzleHttp\HandlerStack;
use Zipkin\TracingBuilder;
use ZipkinGuzzle\Middleware;

$tracing = TracingBuilder::create()->build();

$stack = HandlerStack::create();
$stack->push(someMiddleware());
...
$stack->push(Middleware\tracing($tracing));

$client = new Client([
    'handler' => $stack,
]);

Guzzle 7

Guzzle 7 与 PSR18 客户端兼容,因此您可以使用本机 Zipkin 仪表化。有关详细信息,请参阅https://github.com/openzipkin/zipkin-php/tree/master/src/Zipkin/Instrumentation/Http/Client/Psr18#usage