websupport / yii-opentracing
为Yii的OpenTracing组件
0.4.0
2021-02-24 16:00 UTC
Requires
- php: >=7.2
- opentracing/opentracing: ^1.0.0
- ralouphie/getallheaders: ^2.0 || ^3.0
- yiisoft/yii: ^1.1.18
Requires (Dev)
- jonahgeorge/jaeger-client-php: dev-master
- phpunit/phpunit: ^8.5.0
- roave/security-advisories: dev-master
Suggests
- jonahgeorge/jaeger-client-php: Required for reporting data to Jaeger
Conflicts
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-09-25 00:05:22 UTC
README
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可以通过behaviors
在CActiveRecord
中启用。
<?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 ... ] ],