lvht/jaeger

Jaeger 的 PHP 客户端

v0.4.0 2017-12-03 13:12 UTC

This package is not auto-updated.

Last update: 2024-09-10 11:17:19 UTC


README

Build Status Coverage Status

Jaeger UDP 客户端,用于 PHP OpenTracing API。

基于 jukylin/jaeger-php 分支。

为什么分支?

Jukylin 的工作很棒。但是,它不与最新的 opentracing/opentracing-php 兼容。

此仓库修复了其问题,并进行了大量重构以提高简洁性和 psr。

请随意选择此仓库或 Jukylin 的。

安装

composer config minimum-stability dev
composer config prefer-stable 1
composer require lvht/jaeger

使用

<?php
use Jaeger\Factory;
use OpenTracing\Formats;

// init factory
$factory = Factory::getInstance();
// make OpenTracing\Tracer instance
$tracer = $factory->initTracer('user', '127.0.0.1', 6831);

// extract parent infomation from http header
$carrier = $_SERVER['HTTP_UBER_TRACE_ID'];
// extract the infomation and generate a new context
// only support binary carrier now
$context = $tracer->extract(Formats\BINARY, $carrier);

// make a new span
$span = $tracer->startSpan('foo', ['child_of' => $context]);

// do your job here

// finish the span
$span->finish();

// report infomation to jaeger
$tracer->flush();

示例

在 docker 中运行 jaeger

docker run --rm -d -p 6831:6831/udp -p 16686:16686 jaegertracing/all-in-one:latest

启动演示 http 服务器

cd example
php -S 0.0.0.0:8080 HTTP.php

运行 Hprose.php

cd example
php Hprose.php

因此,您可以在 http://127.0.0.1:16686 上看到 Jaeger UI

祝您好运 :)

特性

  • 传输

    • 通过 UDP 使用 Thrift
  • 采样

    • ConstSampler
    • ProbabilisticSampler

引用

OpenTracing

Jaeger