open-telemetry/opentelemetry-logger-monolog

OpenTelemetry Monolog 处理器。

1.0.0 2023-10-17 21:44 UTC

This package is auto-updated.

Last update: 2024-09-08 03:41:02 UTC


README

Releases Issues Source Mirror Latest Version Stable

这是来自 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');