a1comms / opencensus
OpenCensus Trace Client for PHP
Requires
- php: >=7.4
- cache/adapter-common: ~1
- psr/cache: ~1 || ~2 || ~3
- psr/log: ~1
- ramsey/uuid: ~3 || ~4
Suggests
- ext-opencensus: Enable tracing arbitrary functions.
- a1comms/opencensus-exporter-stackdriver: Export data to Stackdriver
- cache/apc-adapter: Enable QpsSampler to use apc cache.
- cache/apcu-adapter: Enable QpsSampler to use apcu cache.
- cache/memcached-adapter: Enable QpsSampler to use memcached cache.
- opencensus/opencensus-exporter-jaeger: Export data to Jaeger
- opencensus/opencensus-exporter-zipkin: Export data to Zipkin
Conflicts
- ext-opencensus: < 0.1.0
Replaces
This package is auto-updated.
Last update: 2024-04-03 15:22:50 UTC
README
Census for PHP。Census提供了一种框架来测量服务器的资源使用情况并收集性能统计。此存储库包含Census所需的PHP相关实用程序和支撑软件。
安装与基本使用
-
使用composer安装
opencensus/opencensus
软件包$ composer require opencensus/opencensus:~0.2
重要:请确保您的版本 >= 0.2.0。在0.2.0以下存在潜在的安全漏洞。
-
[可选]: 从PECL安装
opencensus
扩展$ pecl install opencensus-alpha
在您的
php.ini
中启用扩展extension=opencensus.so
-
为您的应用程序初始化一个追踪器
use OpenCensus\Trace\Tracer; use OpenCensus\Trace\Exporter\EchoExporter; Tracer::start(new EchoExporter());
使用方法
要为代码块添加追踪,您可以使用闭包/可调用形式或显式打开和关闭跨度。
闭包/可调用(推荐)
$pi = Tracer::inSpan(['name' => 'expensive-operation'], function() { // some expensive operation return calculatePi(1000); }); $pi = Tracer::inSpan(['name' => 'expensive-operation'], 'calculatePi', [1000]);
显式跨度管理
// Creates a detached span $span = Tracer::startSpan(['name' => 'expensive-operation']); // Opens a scope that attaches the span to the current context $scope = Tracer::withSpan($span); try { $pi = calculatePi(1000); } finally { // Closes the scope (ends the span) $scope->close(); }
自定义
采样器
在初始化追踪器时,您可以指定不同的采样器。默认采样器是AlwaysSampleSampler
,它将尝试追踪所有请求。
提供的采样器有
类 | 描述 |
---|---|
NeverSampleSampler | 不追踪任何请求 |
AlwaysSampleSampler | 追踪所有请求 |
MultiSampler | 检查多个采样器 |
QpsSampler | 每秒追踪X个请求。需要PSR-6缓存实现 |
ProbabilitySampler | 追踪X百分比的请求。 |
如果您想提供自己的采样器,创建一个实现SamplerInterface
的类。
导出器
您可以选择不同的导出器将收集到的追踪发送到。
提供的导出器有
类 | 描述 | 依赖 |
---|---|---|
EchoExporter | 将收集到的跨度输出到stdout | |
FileExporter | 将JSON编码的跨度输出到文件 | |
JaegerExporter | 通过UDP Thrift报告到Jaeger服务器 | opencensus/opencensus-exporter-jaeger |
LoggerExporter | 将JSON编码的跨度导出到PSR-3日志记录器 | |
NullExporter | 无操作 | |
OneLineEchoExporter | 将收集到的跨度输出到stdout,格式为单行 | |
StackdriverExporter | 报告追踪到Google Cloud Stackdriver Trace | opencensus/opencensus-exporter-stackdriver |
ZipkinExporter | 将收集到的跨度报告到Zipkin服务器 | opencensus/opencensus-exporter-zipkin |
如果您想提供自己的报告器,创建一个实现ExporterInterface
的类。
版本控制
此库遵循语义版本控制。
请注意,它目前正在积极开发中。任何版本号为0.x.y的发布版本都可能在任何时候进行向后不兼容的更改。
GA:在GA质量级别定义的库是稳定的,并且不会在任何次要或补丁版本中引入向后不兼容的更改。我们将优先解决问题和请求。
beta:在Beta质量级别定义的库预计将是稳定的,并且我们正在努力将其发布为候选版本。我们将以更高的优先级解决问题和请求。
alpha:在Alpha质量级别定义的库仍然是工作正在进行中,并且更有可能得到向后不兼容的更新。
当前状态:Alpha
贡献
对此库的贡献始终受到欢迎,并受到高度鼓励。
请参阅CONTRIBUTING以获取有关如何开始的更多信息。
发布
请参阅RELEASING以获取有关发布新版本的更多信息。
许可
Apache 2.0 - 请参阅LICENSE以获取更多信息。
免责声明
这不是一个官方的Google产品。