a1comms/opencensus

此软件包已被弃用且不再维护。未建议替代软件包。

OpenCensus Trace Client for PHP

v8.0.1 2023-02-20 15:01 UTC

README

Census for PHP。Census提供了一种框架来测量服务器的资源使用情况并收集性能统计。此存储库包含Census所需的PHP相关实用程序和支撑软件。

CircleCI Packagist PHP-Version

安装与基本使用

  1. 使用composer安装opencensus/opencensus软件包

    $ composer require opencensus/opencensus:~0.2

    重要:请确保您的版本 >= 0.2.0。在0.2.0以下存在潜在的安全漏洞。

  2. [可选]: 从PECL安装opencensus扩展

    $ pecl install opencensus-alpha

    在您的php.ini中启用扩展

    extension=opencensus.so
  3. 为您的应用程序初始化一个追踪器

    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的类。

版本控制

Packagist

此库遵循语义版本控制

请注意,它目前正在积极开发中。任何版本号为0.x.y的发布版本都可能在任何时候进行向后不兼容的更改。

GA:在GA质量级别定义的库是稳定的,并且不会在任何次要或补丁版本中引入向后不兼容的更改。我们将优先解决问题和请求。

beta:在Beta质量级别定义的库预计将是稳定的,并且我们正在努力将其发布为候选版本。我们将以更高的优先级解决问题和请求。

alpha:在Alpha质量级别定义的库仍然是工作正在进行中,并且更有可能得到向后不兼容的更新。

当前状态:Alpha

贡献

对此库的贡献始终受到欢迎,并受到高度鼓励。

请参阅CONTRIBUTING以获取有关如何开始的更多信息。

发布

请参阅RELEASING以获取有关发布新版本的更多信息。

许可

Apache 2.0 - 请参阅LICENSE以获取更多信息。

免责声明

这不是一个官方的Google产品。