pnal / jaeger-php
Jaeger 的 PHP 客户端
v0.5.0
2019-06-11 08:38 UTC
Requires
- php: ^7
- lvht/jaeger-idl: ^0.9.0
- opentracing/opentracing: ^1.0.0-beta2
Requires (Dev)
- guzzlehttp/guzzle: ^6.3
- mockery/mockery: ^1.0
- php-coveralls/php-coveralls: ^1.0
- phpunit/phpunit: ^6.5
README
Jaeger UDP 客户端,适用于 PHP OpenTracing API。
从 jukylin/jaeger-php 分支。
为什么分支?
Jukylin 的作品很棒。但它与最新的 opentracing/opentracing-php 不兼容。
此仓库修复了其问题,并对代码进行了大规模重构,以提高简洁性和遵循 psr。
请随意选择此仓库或 Jukylin 的。
安装
composer config minimum-stability dev
composer config prefer-stable 1
composer require lvht/jaeger
使用方法
<?php use Jaeger\Factory; use OpenTracing\Formats; // init factory $factory = Factory::getInstance(); // make OpenTracing\Tracer instance $tracer = $factory->initTracer('user', '127.0.0.1', 6831); // extract parent infomation from http header $carrier = $_SERVER['HTTP_UBER_TRACE_ID']; // extract the infomation and generate a new context // only support binary carrier now $context = $tracer->extract(Formats\BINARY, $carrier); // make a new span $span = $tracer->startSpan('foo', ['child_of' => $context]); // do your job here // finish the span $span->finish(); // report infomation to jaeger $tracer->flush();
示例
在 Docker 中运行 Jaeger
docker run --rm -d -p 6831:6831/udp -p 16686:16686 jaegertracing/all-in-one:latest
启动演示 HTTP 服务器
cd example
php -S 0.0.0.0:8080 HTTP.php
运行 Hprose.php
cd example
php Hprose.php
因此,您可以在 http://127.0.0.1:16686 上看到 Jaeger UI
祝您好运 :)
特性
-
传输方式
- 通过 UDP 使用 Thrift
-
采样
- ConstSampler
- ProbabilisticSampler