open-telemetry / opentracing-shim
OpenTelemetry 的 OpenTracing 桥接器
0.0.2
2023-08-23 22:02 UTC
Requires
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- guzzlehttp/guzzle: ^7.4
- nyholm/psr7: ^1.6
- open-telemetry/exporter-otlp: ^1
- open-telemetry/exporter-zipkin: ^1
- open-telemetry/sdk: >=1.0.0beta7
- phan/phan: ^5.0
- phpstan/phpstan: ^1.1
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.16
- vimeo/psalm: ^4.0
Suggests
- open-telemetry/exporter-otlp: To export via the OTLP protocol
- open-telemetry/exporter-zipkin: To export via zipkin
- open-telemetry/transport-grpc: To export via gRPC
README
此包旨在帮助 OpenTracing 用户迁移到 OpenTelemetry。OpenTelemetry 文档提供了有关如何迁移到 OpenTelemetry 的指导:https://opentelemetry.io/docs/migration/opentracing/
安装
API + SDK
此包依赖于 OpenTelemetry API,但还需要提供一个 OpenTelemetry SDK 和一个导出器,以启用导出跨度。
通常需要提供 PSR-7 和 PSR-18 实现,因为大多数导出器使用 HTTP 来传输遥测数据(gRPC 是例外)。
OTLP 导出器
通常日志通过 http 或 gRPC
使用 protobuf
格式中的 otlp
协议导出到某些接收器。
这需要
protobuf
实现;要么是 protobuf 扩展,要么是google/protobuf
包open-telemetry/exporter-otlp
包- 如果使用 gRPC 传输,则需要
open-telemetry/transport-grpc
包 - 如果使用 HTTP 传输,则需要 PSR-7 和 PSR-18 实现
Zipkin 导出器
OpenTelemetry 支持通过 zipkin 协议导出,这需要 open-telemetry/exporter-zipkin
包。跟踪可以直接导出到 zipkin 实例,或者导出到任何支持 zipkin 协议的其他服务。
设置
要使用此包,您需要创建一个 OpenTelemetry tracer provider
,这是桥接器跟踪器使用的唯一参数
$tracerProvider = new OpenTelemetry\SDK\Trace\TracerProvider(/*params*/); OpenTelemetry\SDK\Common\Util\ShutdownHandler::register([$tracerProvider, 'shutdown']); $tracer = new OpenTelemetry\Contrib\Shim\OpenTracing\Tracer($tracerProvider);
注意
- OpenTelemetry 不支持在创建跨度后设置跨度类型,因此添加
span.kind
标签不会设置跨度的类型。尽管如此,属性仍会被发出。 Span::log([/*$fields*/])
将使用event
字段作为日志名称,否则为log
。- 可以通过
Span::log
使用键exception
来记录错误。字段值应该是Throwable
,但也可以接受字符串,并将将其转换为异常