opencensus / opencensus
OpenCensus Trace Client for PHP
Requires
- php: >=7.1
- cache/adapter-common: ^1.0
- psr/cache: ^1.0 || ^2.0 || ^3.0
- psr/log: ^1.0
- ramsey/uuid: ^3.0 || ^4.0
Requires (Dev)
- guzzlehttp/guzzle: ~5.3
- guzzlehttp/psr7: ~1.4
- phpunit/phpunit: ^7.0 || ^8.0 || ^9.0
- squizlabs/php_codesniffer: ^3.0
- symfony/yaml: ~3.3
- twig/twig: ~2.0 || ~1.35
Suggests
- ext-opencensus: Enable tracing arbitrary functions.
- 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-stackdriver: Export data to Stackdriver
- opencensus/opencensus-exporter-zipkin: Export data to Zipkin
Conflicts
- ext-opencensus: < 0.1.0
- dev-master
- v0.7.0
- v0.6.0
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.0
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.2
- v0.1.1
- v0.1.0
- v0.0.4
- dev-readme-notice-multigitter
- dev-prepare-0.7
- dev-ext-release-0.3.0
- dev-dependabot/npm_and_yarn/examples/laravel/axios-0.19.0
- dev-stats-alpha
- dev-grpc-interceptor
- dev-http-test-server
This package is not auto-updated.
Last update: 2023-08-01 11:03:05 UTC
README
警告
OpenCensus 和 OpenTracing 已合并为 OpenTelemetry,它是 OpenCensus 和 OpenTracing 的下一个主要版本。
OpenTelemetry 现已达到与 OpenCensus 的功能对等,提供 .NET、Golang、Java、NodeJS 和 Python 的跟踪和指标 SDK。 除了 census-instrumentation/opencensus-python 外的所有 OpenCensus Github 存储库,将于 2023 年 7 月 31 日存档。我们鼓励用户在此日期前迁移到 OpenTelemetry。
为了帮助您逐步将您的仪表化迁移到 OpenTelemetry,Java、Go、Python 和 JS 提供了桥梁。 阅读完整的博客文章了解更多信息。
OpenCensus for PHP - 统计收集和分布式跟踪框架
Census for PHP。Census 提供了一个框架来测量服务器的资源使用情况并收集性能统计数据。此存储库包含与 Census 相关的实用程序和支持软件。
安装 & 基本用法
-
使用 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 | 将收集到的跨度输出到标准输出 | |
FileExporter | 将JSON编码的跨度输出到文件 | |
JaegerExporter | 通过UDP Thrift向Jaeger服务器报告跟踪 | opencensus/opencensus-exporter-jaeger |
LoggerExporter | 将JSON编码的跨度导出到PSR-3日志器 | |
NullExporter | 无操作 | |
OneLineEchoExporter | 使用单行将收集到的跨度输出到标准输出 | |
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产品。