carstensvendsen/jaeger-clone-php

PHP OpenTracing API 的 Jaeger 绑定

dev-master 2021-01-13 06:21 UTC

This package is not auto-updated.

Last update: 2024-09-25 04:20:13 UTC


README

Build Status PHP version

PHP OpenTracing API 的 Jaeger 绑定

这是一个客户端库,可以用来为 PHP 应用进行分布式跟踪收集,并将这些跟踪发送到 Jaeger。有关更多信息,请参阅OpenTracing PHP API

贡献和开发

请参阅CONTRIBUTING.md

安装

Jaeger 客户端可以通过 Composer 安装

composer require jonahgeorge/jaeger-client-php

入门指南

<?php

require_once 'vendor/autoload.php';

use Jaeger\Config;
use OpenTracing\GlobalTracer;

$config = new Config(
    [
        'sampler' => [
            'type' => Jaeger\SAMPLER_TYPE_CONST,
            'param' => true,
        ],
        'logging' => true,
    ],
    'your-app-name'
);
$config->initializeTracer();

$tracer = GlobalTracer::get();

$scope = $tracer->startActiveSpan('TestSpan', []);
$scope->close();

$tracer->flush();

采样器

支持的采样器列表,有关采样器的更多信息,请参阅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 许可证.