carstensvendsen / jaeger-clone-php
PHP OpenTracing API 的 Jaeger 绑定
dev-master
2021-01-13 06:21 UTC
Requires
- php: ^7.4 || ^8.0
- ext-sockets: *
- opentracing/opentracing: dev-master
- packaged/thrift: ^0.10
- phlib/base_convert: ^1.0
- psr/cache: ^1.0
- psr/log: ^1.0
Requires (Dev)
- cache/array-adapter: ^1.0
- phpunit/phpunit: ^7.0 || ^9.0
- squizlabs/php_codesniffer: 3.*
- symfony/polyfill-php73: ^1.10
- symfony/polyfill-php80: ^1.20
This package is not auto-updated.
Last update: 2024-09-25 04:20:13 UTC
README
PHP OpenTracing API 的 Jaeger 绑定
这是一个客户端库,可以用来为 PHP 应用进行分布式跟踪收集,并将这些跟踪发送到 Jaeger。有关更多信息,请参阅OpenTracing PHP API。
贡献和开发
请参阅CONTRIBUTING.md。
安装
Jaeger 客户端可以通过 Composer 安装
composer require jonahgeorge/jaeger-client-php
入门指南
<?php require_once 'vendor/autoload.php'; use Jaeger\Config; use OpenTracing\GlobalTracer; $config = new Config( [ 'sampler' => [ 'type' => Jaeger\SAMPLER_TYPE_CONST, 'param' => true, ], 'logging' => true, ], 'your-app-name' ); $config->initializeTracer(); $tracer = GlobalTracer::get(); $scope = $tracer->startActiveSpan('TestSpan', []); $scope->close(); $tracer->flush();
采样器
支持的采样器列表,有关采样器的更多信息,请参阅Jaeger Sampling指南。
恒定采样器
此采样器要么对所有内容进行采样,要么什么都不采样。
配置
'sampler' => [
'type' => Jaeger\SAMPLER_TYPE_CONST,
'param' => true, // boolean wheter to trace or not
],
概率采样器
此采样器根据给定的比率采样请求。
配置
'sampler' => [
'type' => Jaeger\SAMPLER_TYPE_PROBABILISTIC,
'param' => 0.5, // float [0.0, 1.0]
],
速率限制采样器
每秒采样最多指定数量的跟踪(请求)。
要求
psr/cache
PSR-6 缓存组件,用于在请求之间存储和检索采样器状态。缓存组件通过其构造函数传递给Jaeger\Config
。hrtime()
函数,可以以纳秒为单位检索时间。您需要php 7.3
或PECL/hrtime 扩展。
配置
'sampler' => [
'type' => Jaeger\SAMPLER_TYPE_RATE_LIMITING,
'param' => 100 // integer maximum number of traces per second,
'cache' => [
'currentBalanceKey' => 'rate.currentBalance' // string
'lastTickKey' => 'rate.lastTick' // string
]
],
测试
测试位于 tests
目录中。请参阅tests/README.md。