websupport/yii-opentracing

为Yii的OpenTracing组件

0.4.0 2021-02-24 16:00 UTC

This package is auto-updated.

Last update: 2024-09-25 00:05:22 UTC


README

Code Climate coverage Code Climate maintainability Travis

Yii OpenTracing扩展

为Yii 1的OpenTracing扩展

安装

使用composer安装Yii扩展

composer require websupport/yii-opentracing

安装客户端库(取决于您的追踪系统)

composer require jonahgeorge/jaeger-client-php

配置

默认(NoopTracer)配置,无需客户端库

    # opentracing component must be preloaded
    'preload' => ['opentracing'],
    ...
    'components' => [
        'opentracing' => [
            'class' => \Websupport\OpenTracing\OpenTracing::class,
        ],
    ],

Jaeger客户端配置

    # opentracing component must be preloaded
    'preload' => ['opentracing'],
    ...
    'components' => [
        'opentracing' => [
            'class' => \Websupport\OpenTracing\JaegerOpenTracing::class,
            'agentHost' => 'localhost',
            'agentPort' => 5775,
            'sampler' => [
                'type' => \Jaeger\SAMPLER_TYPE_CONST,
                'param' => true,
            ],
            'traceIdHeader' => 'x-trace-id',
            'baggageHeaderPrefix' => 'x-ctx-trace-',
        ],
    ],

CActiveRecord中使用OpenTracing

OpenTracing可以通过behaviorsCActiveRecord中启用。

<?php

use Websupport\OpenTracing\OpenTracingActiveRecordBehavior;

class Model extends CActiveRecord
{
    public function behaviors()
    {
        return [
            'OpenTracingActiveRecordBehavior' => [
                'class' => OpenTracingActiveRecordBehavior::class,
                'opentracingId' => 'opentracing' // string opentracing component name
            ]
        ];
    }
}

Sentry集成

如果您使用Sentry来跟踪错误,并希望将Sentry事件ID存储在当前跟踪中,您可以通过websupport/yii-sentry组件来实现。

安装并配置此组件后,每次发生错误的跟踪都将填充其error.sentry_id标签。

    'components' => [
        'opentracing' => [
            'class' => \Websupport\OpenTracing\JaegerOpenTracing::class,
            'sentryId' => 'sentry' // or name of your yii-sentry component
            ...
        ],
        'sentry' => [ // yii-sentry component
            'class' => \Websupport\YiiSentry\Client::class
            ...
        ]
    ],