jcchavezs / zipkin-instrumentation-guzzle
为 Guzzle HTTP 客户端提供的 Zipkin 仪表化
2.0.0
2020-12-10 09:02 UTC
Requires
- guzzlehttp/guzzle: ~6.2 || ^7.0
- openzipkin/zipkin: ^2.0
Requires (Dev)
- phpunit/phpunit: ^7.0
- squizlabs/php_codesniffer: ^3.0@dev
README
为 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