opencensus/opencensus

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

OpenCensus Trace Client for PHP

v0.7.0 2021-05-31 16:10 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 相关的实用程序和支持软件。

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 将收集到的跨度输出到标准输出
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的类。

版本控制

Packagist

此库遵循语义版本控制

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

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

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

Alpha:定义为Alpha质量级别的库仍在进行中,更有可能得到向后不兼容的更新。

当前状态: Alpha

贡献

欢迎并鼓励为此库做出贡献。

有关如何开始的更多信息,请参阅CONTRIBUTING

发布

有关发布新版本的更多信息,请参阅RELEASING

许可证

Apache 2.0 - 更多信息请参阅LICENSE

免责声明

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