3.3. 配置和部署分布式追踪数据收集


Red Hat OpenShift distributed tracing 数据收集 Operator 使用一个自定义资源定义(CRD)文件来定义创建和部署 Red Hat OpenShift distributed tracing 数据收集资源时要使用的架构和配置设置。您可以安装默认配置或修改该文件以更好地满足您的业务要求。

3.3.1. OpenTelemetry Collector 配置选项

重要

Red Hat OpenShift distributed tracing 数据收集 Operator 只是一个技术预览功能。技术预览功能不被红帽产品服务等级协议 (SLA) 支持,且可能在功能方面有缺陷。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的详情,请参阅 https://access.redhat.com/support/offerings/techpreview/

OpenTelemetry Collector 由访问遥测数据的三个组件组成:

  • Receivers - 用于控制数据如何进入收集器的接收器,它基于推送或拉取。通常,接收器接受指定格式的数据,将其转换为内部格式,并将其传递给适用管道中定义的处理器和导出器。默认情况下,不会配置接收器。必须配置一个或多个接收器。接收器可以支持一个或多个数据源。
  • Processors -(可选)处理器在收到和导出的数据中运行。默认情况下,不启用处理器。每个数据源都必须启用处理器。不是所有处理器都支持所有数据源。根据数据源,建议启用多个处理器。此外,请务必注意处理器的顺序,这很重要。
  • Exporters - 用于控制数据如何发送到一个或多个后端/目的地的导出器,它基于推送或拉取。默认情况下,不会配置导出器。必须配置一个或多个导出器。导出器可能支持一个或多个数据源。导出器可能会附带默认设置,但一般还需要指定目标和安全设置。

您可以在自定义资源 YAML 文件中定义多个组件实例。配置后,必须通过 YAML 文件的 spec.config.service 部分中定义的管道启用这些组件。作为最佳实践,您应该只启用您需要的组件。

OpenTelemetry 收集器自定义资源文件示例

apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
  name: cluster-collector
  namespace: tracing-system
spec:
  mode: deployment
  config: |
    receivers:
      otlp:
        protocols:
          grpc:
          http:
    processors:
    exporters:
      jaeger:
        endpoint: jaeger-production-collector-headless.tracing-system.svc:14250
        tls:
          ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt"
    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: []
          exporters: [jaeger]

注意

如果一个组件已配置,但没有在 service 部分中定义,则不会启用它。

表 3.17. Operator 用来定义 OpenTelemetry Collector 的参数
参数描述default
receivers:

接收器用于控制数据如何进入 Collector。默认情况下,不会配置接收器。必须至少有一个启用的接收器才能使配置被视为有效。接收器通过添加到管道中来启用。

otlp, jaeger

receivers:
  otlp:

oltpjaeger 接收器附带默认设置,一般只需要再指定接收方的名称。

  
processors:

处理器在被接收和导出的数据上运行。默认情况下,不启用处理器。

 

exporters:

导出器将数据发送到一个或多个后端/目标。默认情况下,不会配置导出器。必须至少启用了一个 exporter 时,配置才被视为有效。将导出器添加到管道中即可启用。导出器可能会附带默认设置,但一般还需要指定目标和安全设置。

logging, jaeger

exporters:
 jaeger:
  endpoint:

jaeger exporter 的端点必须是 <name>-collector-headless.<namespace>.svc 的形式,其中包含 Jaeger 部署的名称和命名空间,以便建立安全连接。

  
exporters:
 jaeger:
  tls:
   ca_file:

CA 证书的路径。对于客户端,这将验证服务器证书。对于服务器,这会验证客户端证书。如果为空使用系统 root CA。

  
service:
  pipelines:

组件通过将组件添加到 services.pipeline 下的管道中来启用。

  
service:
  pipelines:
    traces:
      receivers:

您可以通过在 service.pipelines.traces 下添加用于追踪的接收器。

 

service:
  pipelines:
    traces:
      processors:

您可以通过在 service.pipelines.traces 下添加处理器来启用追踪的处理器。

 

service:
  pipelines:
    traces:
      exporters:

您可以通过在 service.pipelines.traces 下添加用于追踪的导出器。

 

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.