open-telemetry / opentelemetry-logger-monolog
OpenTelemetry Monolog 处理器。
1.0.0
2023-10-17 21:44 UTC
Requires
- monolog/monolog: ^1.1|^2|^3
- open-telemetry/api: ^1.0.0beta16
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- google/protobuf: >=3.5.0
- guzzlehttp/guzzle: ^7.4
- nyholm/psr7: ^1.6
- open-telemetry/exporter-otlp: >=1.0.0beta6
- open-telemetry/sdk: >=1.0.0beta7
- phan/phan: ^5.0
- phpbench/phpbench: ^1.2
- phpstan/phpstan: ^1.1
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.16
- vimeo/psalm: ^4.0
README
这是来自 https://github.com/open-telemetry/opentelemetry-php-contrib 的只读子树分割。
OpenTelemetry Monolog 处理器
OpenTelemetry 的 Monolog 处理器。有关更多信息,请参阅 https://opentelemetry.io/docs/instrumentation/php/manual/#logs。
要求
API + SDK
此包依赖于 OpenTelemetry API,但还应提供配置的 OpenTelemetry SDK。
导出器
通常日志通过 otlp
协议以 protobuf
格式通过 http 或 gRPC
导出到一个 receiver
。
这需要
protobuf
实现程序;要么是 protobuf 扩展,要么是google/protobuf
包open-telemetry/exporter-otlp
包- 如果使用 gRPC 传输,则需要
open-telemetry/transport-grpc
包 - 如果使用 HTTP 传输,则需要 PSR-7 和 PSR-18 实现
接收器
日志必须发送到理解 OpenTelemetry 协议的接收器/系统,例如 OpenTelemetry collector。
安装
composer require open-telemetry/opentelemetry-logger-monolog
用法
使用配置了 OpenTelemetry LoggerProvider
的 OpenTelemetry 处理器,将 Monolog LogRecord
发送到 OpenTelemetry。
LoggerProvider
可以通过多种方式配置:手动、通过 SDK Builder 或自动(使用环境/php.ini 变量)。
手动配置
设置 SDK LoggerProvider 并将其传递给处理器
$loggerProvider = new \OpenTelemetry\SDK\Logs\LoggerProvider(/* params */); $handler = new \OpenTelemetry\Contrib\Logs\Monolog\Handler( $loggerProvider, 'info', true, );
自动配置
如果您使用 OpenTelemetry SDK 自动加载,则可以检索全局日志提供程序。这可能是一个无操作实现,如果存在任何配置错误。
请参阅 autoload-sdk 示例,了解如何与 OpenTelemetry SDK 一起使用自动加载。
创建日志记录器
最后,将处理器添加到 Monolog 日志记录器
$logger = new \Monolog\Logger( 'name', [$handler], ); $logger->info('hello world');