request-tracing/request-tracing-bundle

Symfony 请求跟踪包

0.2.0 2023-10-12 19:44 UTC

This package is auto-updated.

Last update: 2024-09-19 12:28:10 UTC


README

Symfony 请求跟踪包。

此包包含一个 Monolog 处理器和一个 Guzzle 中间件,用于记录和传播请求 ID。

安装

composer require request-tracing/request-tracing-bundle

如果您使用 Symfony Flex,则一切将自动完成。如果不使用,则应手动将此包添加到您的 config/bundles.php 文件中。

默认情况下,该包将查找名为 X-Request-Id 的 HTTP 请求头,并在存在的情况下使用其值。您可以使用以下配置来配置头名称

# config/packages/request_tracing.yaml
request_tracing:
  header: my_custom_header_name

Monolog

此包将请求 ID 添加到使用 Monolog 创建的每个日志记录的上下文中。请确保首先安装 Monolog 包

composer require symfony/monolog-bundle

建议将 Monolog 格式化为 JSON 格式,以便在 Datadog 等工具中更容易处理日志。

# config/packages/monolog.yaml
monolog:
  handlers:
    main:
      formatter: monolog.formatter.json

Guzzle

如果您在应用程序中使用 Guzzle HTTP 客户端,则可以使用此包提供的 Guzzle 中间件 将原始 HTTP 请求的请求 ID 作为头信息传递给后续的 HTTP 请求。这样,您在分析(访问)日志时将能够关联 HTTP 请求。

中间件可通过其 FQCN 在 依赖注入容器 中使用。以下是一个服务配置示例

services:
  GuzzleHttp\Client:
    arguments:
      - { handler: '@GuzzleHttp\HandlerStack' }

  GuzzleHttp\HandlerStack:
    factory: ['GuzzleHttp\HandlerStack', 'create']
    calls:
      - push: ['@RequestTracing\RequestTracingBundle\GuzzleHttp\RequestIdMiddleware']