open-telemetry / opentelemetry-auto-psr3
PSR-3 (日志接口) 的 OpenTelemetry 自动检测。
0.0.7
2024-06-25 01:39 UTC
Requires
- php: ^8.0
- ext-opentelemetry: *
- open-telemetry/api: ^1.0
- open-telemetry/sem-conv: ^1.24
- psr/log: ^1 || ^2 || ^3
Requires (Dev)
- apix/log: *
- cakephp/console: *
- cakephp/log: *
- friendsofphp/php-cs-fixer: ^3
- monolog/monolog: *
- open-telemetry/sdk: ^1.0
- phan/phan: ^5.0
- phpstan/phpstan: ^1.1
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.18.4
- symfony/console: *
- vimeo/psalm: ^5.0
- yiisoft/log: *
README
这是 https://github.com/open-telemetry/opentelemetry-php-contrib 的只读子树分支。
OpenTelemetry PSR-3 自动检测
请阅读https://opentelemetry.io/docs/instrumentation/php/automatic/ 了解如何安装和配置扩展和 SDK。
概述
自动检测钩子通过 composer 注册,并根据模式,将
- 自动将跟踪 ID 和跨度 ID 注入到任何 psr3 日志器的日志消息上下文中;或者
- 将消息转换为 OpenTelemetry LogRecord 格式,以便导出到兼容 OpenTelemetry 日志的后端
模式
该软件包可以在两种模式下运行,由环境变量 OTEL_PHP_PSR3_MODE
控制
注入
将活动跟踪跨度中的 traceId
和 spanId
注入到每个记录消息的上下文中。根据 PSR-3 实现不同,这些值可能被写入日志输出,也可能可用于在日志消息中进行插值。
例如
putenv('OTEL_PHP_PSR3_MODE=inject'); require 'vendor/autoload.php'; $logger = /* create logger */ $logger->info('traceId={traceId} spanId={spanId}');
导出
记录的输出将像平常一样由日志器处理和发布,但输出也将使用 OpenTelemetry 日志模型 编码,并可以导出到兼容 OpenTelemetry 的后端。
putenv('OTEL_PHP_PSR3_MODE=export'); putenv('OTEL_PHP_AUTOLOAD_ENABLED=true'); putenv('OTEL_LOGS_EXPORTER=console'); require 'vendor/autoload.php'; $logger = /* create logger */ $logger->info('Hello, OTEL');
配置
可以通过 运行时配置 禁用此扩展。
OTEL_PHP_DISABLED_INSTRUMENTATIONS=psr3