jcchavezs/zipkin-opentracing

OpenTracing 的 Zipkin 桥接器

2.0.4 2023-11-03 22:38 UTC

This package is auto-updated.

Last update: 2024-08-29 05:18:23 UTC


README

Travis CI OpenTracing Badge Total Downloads Minimum PHP Version License

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