kuiper/tracing-client

PHP OpenTracing API 绑定

v0.8.2 2023-04-18 08:24 UTC

This package is auto-updated.

Last update: 2024-09-18 11:23:33 UTC


README

这是一个客户端库,可用于为分布式跟踪收集对PHP应用程序进行配置。有关详细信息,请参阅OpenTracing PHP API

安装

可以通过Composer安装跟踪客户端

composer require kuiper/tracing-client

入门

配置

<?php
return [
    'application' => [
        'tracing' => [
            'enabled' => env('TRACING_ENABLED') === 'true',
            'debug_id_header_key' => env('TRACING_DEBUG_ID_HEADER', 'tracing-debug-id'),
            'service_name' => env('TRACING_SERVICE_NAME'),
            'tags' => env('TRACING_TAGS'),
            'sampler' => [
                'type' => env('TRACING_SAMPLER_TYPE'),
                'param' => env('TRACING_SAMPLER_PARAM')
            ],
        ],
    ]
]

采样器

支持的采样器列表,有关采样器的更多信息,请阅读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.3PECL/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

路线图

许可

MIT 许可证.