搜索

3.5. 扩展

download PDF

扩展为 Collector 添加功能。例如,身份验证可以自动添加到接收器和导出器中。

3.5.1. BearerTokenAuth Extension

BearerTokenAuth Extension 是基于 HTTP 和 gRPC 协议的接收器和导出器的验证器。您可以使用 OpenTelemetry Collector 自定义资源为接收器和 exporter 端的 BearerTokenAuth Extension 配置客户端身份验证和服务器身份验证。此扩展支持 trace、metrics 和 logs。

重要

BearerTokenAuth Extension 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OpenTelemetry Collector 自定义资源,为 BearerTokenAuth Extension 配置了客户端和服务器身份验证

# ...
  config: |
    extensions:
      bearertokenauth:
        scheme: "Bearer" 1
        token: "<token>" 2
        filename: "<token_file>" 3

    receivers:
      otlp:
        protocols:
          http:
            auth:
              authenticator: bearertokenauth 4
    exporters:
      otlp:
        auth:
          authenticator: bearertokenauth 5

    service:
      extensions: [bearertokenauth]
      pipelines:
        traces:
          receivers: [otlp]
          exporters: [otlp]
# ...

1
您可以配置 BearerTokenAuth Extension 来发送自定义 scheme。默认值为 Bearer
2
您可以将 BearerTokenAuth Extension 令牌添加为元数据,以标识消息。
3
包含随每个消息传输的授权令牌的文件路径。
4
您可以将验证器配置分配给 OTLP Receiver。
5
您可以将验证器配置分配给 OTLP Exporter。

3.5.2. OAuth2Client Extension

OAuth2Client Extension 是导出器的验证器,它基于 HTTP 和 gRPC 协议。OAuth2Client Extension 的客户端身份验证在 OpenTelemetry Collector 自定义资源中的单独部分中配置。此扩展支持 trace、metrics 和 logs。

重要

OAuth2Client 扩展只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OpenTelemetry Collector 自定义资源,为 OAuth2Client Extension 配置了客户端身份验证

# ...
  config: |
    extensions:
      oauth2client:
        client_id: <client_id> 1
        client_secret: <client_secret> 2
        endpoint_params: 3
          audience: <audience>
        token_url: https://example.com/oauth2/default/v1/token 4
        scopes: ["api.metrics"] 5
        # tls settings for the token client
        tls: 6
          insecure: true 7
          ca_file: /var/lib/mycert.pem 8
          cert_file: <cert_file> 9
          key_file: <key_file> 10
        timeout: 2s 11

    receivers:
      otlp:
        protocols:
          http: {}

    exporters:
      otlp:
        auth:
          authenticator: oauth2client 12

    service:
      extensions: [oauth2client]
      pipelines:
        traces:
          receivers: [otlp]
          exporters: [otlp]
# ...

1
客户端标识符,由身份提供程序提供。
2
用于向身份提供程序验证客户端的机密密钥。
3
其他元数据,采用键值对格式,在身份验证过程中传输。例如,audience 指定访问令牌的预期受众,指示令牌的接收者。
4
OAuth2 令牌端点的 URL,Collector 请求访问令牌。
5
范围定义客户端请求的特定权限或访问级别。
6
令牌客户端的传输层安全性 (TLS) 设置,用于在请求令牌时建立安全连接。
7
当设置为 true 时,将 Collector 配置为使用不安全或非验证的 TLS 连接来调用配置的令牌端点。
8
用于在 TLS 握手过程中验证服务器证书的证书颁发机构 (CA) 文件的路径。
9
如果需要,客户端必须用来向 OAuth2 服务器验证自己的客户端证书文件的路径。
10
身份验证所需的客户端私钥文件的路径。
11
为令牌客户端的请求设置超时。
12
您可以将验证器配置分配给 OTLP 导出器。

3.5.3. File Storage Extension

File Storage Extension 支持 trace、metrics 和 logs。此扩展可保留本地文件系统的状态。此扩展保留基于 HTTP 和 gRPC 协议的 OTLP 导出器的发送队列。此扩展需要对目录的读和写访问权限。此扩展可以使用默认目录,但默认目录必须已存在。

重要

File Storage Extension 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OpenTelemetry Collector 自定义资源带有配置的文件存储扩展,它会保留 OTLP 发送队列

# ...
  config: |
    extensions:
      file_storage/all_settings:
        directory: /var/lib/otelcol/mydir 1
        timeout: 1s 2
        compaction:
          on_start: true 3
          directory: /tmp/ 4
          max_transaction_size: 65_536 5
        fsync: false 6

    exporters:
      otlp:
        sending_queue:
          storage: file_storage/all_settings

    service:
      extensions: [file_storage/all_settings]
      pipelines:
        traces:
          receivers: [otlp]
          exporters: [otlp]
# ...

1
指定存储遥测数据的目录。
2
指定打开存储文件的超时时间间隔。
3
在 Collector 启动时启动压缩。如果没有指定,则默认为 false
4
指定紧凑器存储遥测数据的目录。
5
定义压缩事务的最大大小。设置为零将忽略事务大小。如果省略,则默认为 65536 字节。
6
设置后,强制数据库在每次写入操作后调用 fsync。这有助于,在数据库进程被中断时确保数据库的完整性,但这会以牺牲性能为代价。

3.5.4. OIDC Auth Extension

OIDC Auth Extension 使用 OpenID Connect (OIDC) 协议向接收器验证传入的请求。它针对签发者验证授权标头中的 ID 令牌,并更新传入请求的身份验证上下文。

重要

OIDC Auth Extension 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OpenTelemetry Collector 自定义资源带有配置的 OIDC Auth Extension

# ...
  config: |
    extensions:
      oidc:
        attribute: authorization 1
        issuer_url: https://example.com/auth/realms/opentelemetry 2
        issuer_ca_path: /var/run/tls/issuer.pem 3
        audience: otel-collector 4
        username_claim: email 5
    receivers:
      otlp:
        protocols:
          grpc:
            auth:
              authenticator: oidc
    exporters:
      otlp:
        endpoint: <endpoint>
    service:
      extensions: [oidc]
      pipelines:
        traces:
          receivers: [otlp]
          exporters: [otlp]
# ...

1
包含 ID 令牌的标头名称。默认名称是 authorization
2
OIDC 供应商的基本 URL。
3
可选:签发者 CA 证书的路径。
4
令牌的受众。
5
包含用户名的声明名称。默认名为 sub

3.5.5. Jaeger Remote Sampling Extension

Jaeger Remote Sampling Extension 在 Jaeger 的远程抽样 API 后启用服务抽样策略。您可以配置此扩展,将请求代理到后备远程抽样服务器,如 Jaeger 收集器关闭管道或从本地文件系统到静态 JSON 文件。

重要

Jaeger Remote Sampling Extension 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OpenTelemetry Collector 自定义资源带有配置的 Jaeger Remote Sampling Extension

# ...
  config: |
    extensions:
      jaegerremotesampling:
        source:
          reload_interval: 30s 1
          remote:
            endpoint: jaeger-collector:14250 2
          file: /etc/otelcol/sampling_strategies.json 3

    receivers:
      otlp:
        protocols:
          http: {}

    exporters:
      otlp:

    service:
      extensions: [jaegerremotesampling]
      pipelines:
        traces:
          receivers: [otlp]
          exporters: [otlp]
# ...

1
抽样配置更新的时间间隔。
2
用于访问 Jaeger 远程抽样策略供应商的端点。
3
JSON 格式包含抽样策略配置的本地文件的路径。

Jaeger Remote Sampling 策略文件示例

{
  "service_strategies": [
    {
      "service": "foo",
      "type": "probabilistic",
      "param": 0.8,
      "operation_strategies": [
        {
          "operation": "op1",
          "type": "probabilistic",
          "param": 0.2
        },
        {
          "operation": "op2",
          "type": "probabilistic",
          "param": 0.4
        }
      ]
    },
    {
      "service": "bar",
      "type": "ratelimiting",
      "param": 5
    }
  ],
  "default_strategy": {
    "type": "probabilistic",
    "param": 0.5,
    "operation_strategies": [
      {
        "operation": "/health",
        "type": "probabilistic",
        "param": 0.0
      },
      {
        "operation": "/metrics",
        "type": "probabilistic",
        "param": 0.0
      }
    ]
  }
}

3.5.6. Performance Profiler Extension

Performance Profiler Extension 启用 Go net/http/pprof 端点。开发人员使用此扩展来收集性能配置集并调查服务的问题。

重要

Performance Profiler 扩展只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OpenTelemetry Collector 自定义资源带有配置的 Performance Profiler Extension

# ...
  config: |
    extensions:
      pprof:
        endpoint: localhost:1777 1
        block_profile_fraction: 0 2
        mutex_profile_fraction: 0 3
        save_to_file: test.pprof 4

    receivers:
      otlp:
        protocols:
          http: {}

    exporters:
      otlp:

    service:
      extensions: [pprof]
      pipelines:
        traces:
          receivers: [otlp]
          exporters: [otlp]
# ...

1
此扩展侦听的端点。使用 localhost: 使其仅在本地可用; ":" 使其在所有网络接口上可用。默认值为 localhost:1777
2
设置要配置集的一小部分阻塞事件。要禁用性能分析,请将其设置为 0 或负整数。请参阅 runtime 软件包 的文档。默认值为 0
3
设置要配置集的几部分 mutex 争用事件。要禁用性能分析,请将其设置为 0 或负整数。请参阅 runtime 软件包的文档。默认值为 0
4
要保存 CPU 配置集的文件的名称。分析会在 Collector 启动时启动。在 Collector 终止时,配置集被保存到 文件中。

3.5.7. Health Check Extension

Health Check Extension 提供了一个 HTTP URL,用于检查 OpenTelemetry Collector 的状态。您可以将此扩展用作 OpenShift 上的存活度和就绪度探测。

重要

健康检查扩展只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OpenTelemetry Collector 自定义资源带有配置的 Health Check Extension

# ...
  config: |
    extensions:
      health_check:
        endpoint: "0.0.0.0:13133" 1
        tls: 2
          ca_file: "/path/to/ca.crt"
          cert_file: "/path/to/cert.crt"
          key_file: "/path/to/key.key"
        path: "/health/status" 3
        check_collector_pipeline: 4
          enabled: true 5
          interval: "5m" 6
          exporter_failure_threshold: 5 7

    receivers:
      otlp:
        protocols:
          http: {}

    exporters:
      otlp:

    service:
      extensions: [health_check]
      pipelines:
        traces:
          receivers: [otlp]
          exporters: [otlp]
# ...

1
发布健康检查状态的目标 IP 地址。默认值为 0.0.0.0:13133
2
TLS 服务器端配置。定义 TLS 证书的路径。如果省略,则禁用 TLS。
3
健康检查服务器的路径。默认值为 /
4
Collector 管道健康检查的设置。
5
启用 Collector 管道健康检查。默认值为 false
6
检查失败次数的时间间隔。默认值为 5m
7
在容器仍标记为健康前,失败次数的阈值。默认值为 5

3.5.8. Memory Ballast Extension

Memory Ballast Extension 使应用程序能够为进程配置内存 ballast。

重要

Memory Ballast Extension 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OpenTelemetry Collector 自定义资源带有配置的 Memory Ballast Extension

# ...
  config: |
    extensions:
      memory_ballast:
        size_mib: 64 1
        size_in_percentage: 20 2

    receivers:
      otlp:
        protocols:
          http: {}

    exporters:
      otlp:

    service:
      extensions: [memory_ballast]
      pipelines:
        traces:
          receivers: [otlp]
          exporters: [otlp]
# ...

1
以 MiB 为单位设置内存 ballast 大小。如果指定了这两个值,则优先于 size_in_percentage
2
将内存 ballast 设置为总内存的百分比 1-100。支持容器化和物理主机环境。

3.5.9. zPages Extension

zPages Extension 为用于服务 zPages 的扩展提供了一个 HTTP 端点。在端点,此扩展为调试检测组件提供实时数据。所有核心导出器和接收器提供一些 zPages 检测。

zPages 可用于进程内诊断,而无需依赖后端来检查 trace 或指标。

重要

zPages 扩展只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OpenTelemetry Collector 自定义资源带有配置的 zPages Extension

# ...
  config: |
    extensions:
      zpages:
        endpoint: "localhost:55679" 1

    receivers:
      otlp:
        protocols:
          http: {}
    exporters:
      otlp:

    service:
      extensions: [zpages]
      pipelines:
        traces:
          receivers: [otlp]
          exporters: [otlp]
# ...

1
指定提供 zPages 的 HTTP 端点。使用 localhost: 使其仅在本地可用,或 ":" 使其在所有网络接口上可用。默认值为 localhost:55679
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.