code-tool/jaeger-client-symfony-bridge

v3.11.0 2023-12-21 12:48 UTC

README

入门指南

将JaegerBundle注册为任何其他Symfony 4+的bundle

// bundles.php
return [
    // ...
    \Jaeger\Symfony\JaegerBundle::class => ['all' => true],
    // ...
];

拒绝列表采样操作

此功能允许禁用拒绝列表中操作的采样。

当您的基础设施启动了一些您不希望在Jaeger中跟踪的操作时,这将很有用。

包配置中使用的操作名称指的是第一个(父)span操作名称(https://jaeger.golang.ac.cn/docs/latest/architecture/#span)。

提示:如果您使用默认名称生成器(类 \Jaeger\Symfony\Name\Generator\DefaultNameGenerator),您的HTTP请求的操作名称将与匹配的symfony路由名称相同。

具有拒绝列表功能的示例bundle配置

# config/jaeger.yaml
jaeger:
  denylist:
    operation_names:
      - 'healthcheck'
      - 'metrics'

名称生成选项

您可以根据正则表达式模式配置自定义名称生成器,这将用于评估操作名称。

此功能的配置看起来像键值列表,其中键 - 正则表达式模式,值 - 自定义名称生成器DI服务ID(见下文详细信息)。

名称生成器应该实现 Jaeger\Symfony\Name\Generator\NameGeneratorInterface 接口。作为自定义名称生成器,您可以指定完整的DI服务ID,或者如果您的名称生成器服务命名为 jaeger.name.generator.*,则只需指定后缀。键被视为正则表达式模式的主体,不要放置任何修饰符(例如 /i/g)或斜杠;请求的 route 或命令的 name 应匹配以使用替代生成器。表达式从上到下进行检查,如果没有找到匹配项,则将使用默认生成器。

具有名称生成功能的示例bundle配置

# config/jaeger.yaml
jaeger:
  name_generator:
    max_length: 32
    command:  
      '^app:report:.+': 'my_service_generator_alias'
      .* : 'controller'
    request:
      'user_routes_\w+': 'my_service_generator_alias'