jcchavezs / zipkin-opentracing
OpenTracing 的 Zipkin 桥接器
2.0.4
2023-11-03 22:38 UTC
Requires
- php: >=7.4 || ^8.0
- opentracing/opentracing: ^1.0.1
- openzipkin/zipkin: ^3.0.0
Requires (Dev)
- phpspec/prophecy-phpunit: ^2.0
- phpstan/phpstan: ^0.12.26
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: 3.*
Provides
- opentracing/opentracing: 1.0.0
This package is auto-updated.
Last update: 2024-08-29 05:18:23 UTC
README
PHP 中 OpenTracing Tracer 的 Zipkin 实现。
此库允许 OpenTracing API 消费者使用 Zipkin 作为其跟踪后端。有关如何处理 span 和 trace 的详细信息,我们建议查看来自 OpenTracing API 的文档和 README。
入门指南
必读
为了理解 OpenTracing API,必须首先熟悉 OpenTracing 项目 和更广泛的 术语。
要了解 Zipkin 的工作原理,您可以查看 Zipkin 架构 和 Zipkin PHP 文档。
安装
composer require jcchavezs/zipkin-opentracing
用法
首先,我们需要设置一个追踪器
use OpenTracing\GlobalTracer; use Psr\Log\NullLogger; use Zipkin\Endpoint; use Zipkin\Samplers\BinarySampler; use Zipkin\TracingBuilder; use Zipkin\Reporters\Http; $endpoint = Endpoint::create('my_service', '127.0.0.1', null, 8081); $reporter = new Zipkin\Reporters\Http(); $sampler = BinarySampler::createAsAlwaysSample(); $tracing = TracingBuilder::create() ->havingLocalEndpoint($endpoint) ->havingSampler($sampler) ->havingReporter($reporter) ->build(); $zipkinTracer = new ZipkinOpenTracing\Tracer($tracing); GlobalTracer::set($zipkinTracer); // optional
创建 span
上下文传播
将 span 刷新到代理
PHP 作为请求作用域的语言没有简单的方法在不阻塞主请求线程/进程的情况下将收集到的 span 数据传递给后台进程。必须在响应被发送给客户端后执行 Tracer::flush()
,使用 register_shutdown_function
。
use OpenTracing\GlobalTracer; $application->run(); register_shutdown_function(function() { GlobalTracer::get()->flush(); });
贡献
运行测试
composer test
修复 lint
composer fix-lint