auxmoney / jaeger-php
Jaeger的PHP客户端
3.0.2
2022-08-22 13:06 UTC
Requires
- php: >=7.1
- ext-json: *
- opentracing/opentracing: ^1.0.1
- packaged/thrift: ~0.13.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^v3.1
- php-coveralls/php-coveralls: ^v2.4
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^8.5
- roave/security-advisories: dev-latest
- dev-master
- 3.0.2
- 3.0.1
- 3.0.0
- v2.1.3
- v2.1.3-beta
- v2.1.2-beta
- v2.1.1-beta
- v2.1.0-beta
- v2.0.9-beta
- v2.0.8-beta
- v2.0.7-beta
- v2.0.6-beta
- v2.0.5-beta
- v2.0.4-beta
- v2.0.3-beta
- v2.0.2-beta
- v2.0.1-beta
- v2.0.0-beta
- v1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-stable
- dev-hotfix/psr7
- dev-copy_baggage
- dev-fix_bug
- dev-active
- dev-del_setTags
- dev-phpunit
- dev-travis
- dev-imp_op_b5
- dev-apache_2_license
- dev-revert-34-support-unit-testing-autoloading
- dev-for_better_english
- dev-add_zipkin_header
- dev-fix_traceid_len
- dev-require
- dev-refactor
- dev-semantic_conventions
- dev-fix_add_tags
- dev-gen128bit
This package is auto-updated.
Last update: 2024-09-22 17:24:07 UTC
README
注意:这是一个分支和重新发布自 jukylin/jaeger-php
我们选择分支并发布原始库是为了维护我们的与opentracing相关的symfony捆绑包集。原始库目前似乎没有维护。
jaeger-php是一个库,实现了OpenTracing规范以连接到Jaeger分布式追踪平台。它可以用来对PHP代码进行仪器化,生成追踪数据并将其发送到Jaeger。
安装
composer require auxmoney/jaeger-php
用法
首先,你需要创建一个Config
对象,它作为创建你的Tracer
的工厂
// create a config instance $config = \Jaeger\Config::getInstance(); // create a tracer $tracer = $config->initTracer('example service name', '0.0.0.0:6831');
为了使分布式追踪工作,你需要从某处提取你的SpanContext
,例如$_SERVER
$spanContext = $tracer->extract(\Opentracing\Formats\TEXT_MAP, $_SERVER);
然后你可以通过使用常见的Opentracing接口开始追踪
$tracer->startActiveSpan("example operation name", ['child_of' => $spanContext]);
为了向你的span添加元数据,你需要先检索它(请确保首先检查语义约定)
$span = $tracer->getActiveSpan(); $span->addBaggageItem("user_id", "12345"); $span->setTag("http.url", "https://"); $span->log(["message" => "responded successfully"]); $span->finish();
最后,在脚本结束时,你应该刷新原始的Config
。这将刷新所有创建的Tracer
和所有创建的Span
$config->flush();
可选配置
// optional: generate 128 bit trace ids (default: false) $config->gen128bit(); // optional: disable tracing (default: false) $config->setDisabled(true); // optional: inject custom transport (default: TransportUdp) $config->setTransport($transport); // optional: inject custom reporter (default: RemoteReporter) $config->setReporter($reporter); // optional: inject custom sampler (default: ConstSampler) $config->setSampler($sampler);
特别感谢
感谢@jukylin创建这个库!