OpenTelemetry Collector升级日志:0.114.0->0.121.0

OpenTelemetry Collector升级日志:0.114.0->0.121.0

📅 2025-03-12 | 🖱️
🔖 opentelemetry

近期我们对两个环境中的OpenTelemetry Collector进行了版本升级,从v0.114.0升级到了v0.121.0。这次升级涉及一些配置变化,本文将记录一些升级过程中的关键点和经验总结。

环境信息 #

这两套环境采用了相同的部署架构:首先通过Helm安装opentelemetry-operator,然后利用OpenTelemetry Collector的CRD(自定义资源定义)创建OpenTelemetryCollector资源。opentelemetry-operator会根据这些资源定义,在Kubernetes集群的每个节点上以DaemonSet的形式部署OpenTelemetry Collector Pod,实现分布式的遥测数据采集。

主要的软件版本信息如下:

  • OpenTelemetry Operator Helm Chart: v0.82.1
  • 相关组件镜像版本:
    • RBAC Proxy: quay.io/brancz/kube-rbac-proxy:v0.18.1
    • OpenTelemetry Operator: open-telemetry/opentelemetry-operator/opentelemetry-operator:0.120.0
    • OpenTelemetry Collector: otel/opentelemetry-collector-contrib:v0.121.0

OpenTelemetry Collector Contrib 0.114.0到0.121.0的一些重要变化 #

组件移除和废弃 #

  • OpenCensus exporter和receiver已被废弃,建议迁移到OTLP exporter和receiver
  • 以下组件被标记为未维护状态:
    • exporter/kineticaexporter
    • exporter/opensearchexporter
    • extension/observer/ecstaskobserver
    • receiver/awscloudwatchmetricsreceiver
    • receiver/rabbitmqreceiver
    • receiver/jmxreceiver

配置变更 #

  1. Elasticsearch Exporter:
    • 移除了 index 配置选项 (自 v0.60.0 起已废弃)
    • 移除了 dedup 配置设置 (自 v0.104.0 起已废弃)
    • 移除了对 none、raw 和 bodymap 映射模式下的指标支持
    • 现在要求最低版本为ES7.17.x
  2. AWS S3 Exporter:
    • s3_partition 选项被替换为更灵活的 s3_partition_format
    • 如果未提供 s3_prefix,导出器将不会在存储桶中创建 “/” 文件夹
  3. Prometheus Receiver:
    • 现在使用 Prometheus 3.0的scrapers
    • 指标开始时间调整功能已被废弃,将由metricstarttime processor 替代
  4. 其他重要变更:
    • SignalFx Exporter: 移除了已废弃的 translation_rules 配置选项
    • Routing Connector: 移除了 match_once 配置参数
    • K8s Attributes Processor: k8sattr.fieldExtractConfigRegex.disallow特性门(feature gate)已移至稳定版

实际升级过程中涉及到的配置变更 #

在实际升级过程中,我们主要对以下几个方面进行了配置调整:

1. 版本升级 #

  • OpenTelemetry Operator 从 0.114.0 升级到 0.120.0
  • OpenTelemetry Collector Contrib 从 0.114.0 升级到 0.121.0

2. Elasticsearch Exporter配置变更 #

根据新版本的要求,移除了已废弃的配置项:

1mapping:   # 移除此配置
2  dedup: true    # 移除此配置
3  dedot: false   # 移除此配置

重试策略参数调整

重试配置参数名称发生变化:

  • max_requests 改名为 max_retries
1retry:
2  enabled: true
3  max_retries: 5    # 原为max_requests
4  initial_interval: 100ms
5  max_interval: 1m

3. 指标收集配置更新 #

在指标配置中添加了级别设置:

 1service:
 2  telemetry:
 3    logs:
 4      level: "info"
 5    metrics:
 6      level: normal
 7      address: 127.0.0.1:8888
 8      # https://github.com/open-telemetry/opentelemetry-operator/issues/3730
 9      # https://github.com/open-telemetry/opentelemetry-operator/pull/3744
10      # readers:
11      #   - pull:
12      #       exporter:
13      #         prometheus:
14      #           host: 127.0.0.1
15      #           port: 8888

由于service.telemetry.metrics.address已经废弃了,应该使用service.telemetry.metrics.readers。 但由于OpenTelemetry Operator的Issue #3730,目前暂时注释掉了Prometheus相关的读取器配置。这个问题在未来的版本中可能会得到解决。

4. loki exporter已经废弃 #

在OpenTelemetry Collector Contrib的最新版本中,loki exporter已被标记为废弃状态,并将在未来版本中移除。这一变更源于Loki v3已经原生支持OTLP(OpenTelemetry Protocol)日志摄取功能。

Loki v3引入的OpenTelemetry日志格式为用户带来了显著优势:

  • 原生支持OpenTelemetry日志结构,无需JSON解析即可直接查询,大大提升了查询效率
  • 采用标准OTLP协议传输数据,简化了配置流程,提高了系统可维护性

如果您当前正在使用Loki exporter,我们强烈建议您参考以下资源,尽快完成向OTLP原生摄取方式的迁移:

由于本次2套环境的日志均采用ES存储,尚未使用Loki,我们将在后续处理Loki相关环境时再整理相关OpenTelemetry OTLP的具体配置方案。
© 2025 青蛙小白 | 总访问量 | 总访客数