← 返回文章列表
更新日志 4 分钟阅读 炬鲸团队

v3.2 发布:OpenTelemetry 原生协议支持与采集器自动发现

炬鲸 OBSERVE v3.2 正式发布:OTLP 原生接入,去掉独立 Collector 层;采集器支持自动发现新上线的容器与主机;新增跨集群日志查询与告警证据链。本文列出本次更新的功能明细、升级步骤与已知问题。

版本概要

v3.2 是炬鲸 OBSERVE 上半年的主要版本,核心目标是把 OpenTelemetry 从「可对接」做到「原生」,并让采集层在动态环境里少一些手工配置。本版本共 3 个功能模块、2 个增强与 4 个修复。

新功能

1. OTLP 原生接入

之前 trace/metrics/logs 需要先经过一个独立的 OpenTelemetry Collector 做转换,再转发到 OBSERVE。v3.2 起,OBSERVE 网关直接暴露 OTLP 端口,应用侧可以跳过 Collector:

# 应用侧 OpenTelemetry SDK 配置
exporters:
  otlp:
    endpoint: "observe-gw.example.com:4317"
    protocol: grpc

改动点:

  • 支持 OTLP/gRPC 与 OTLP/HTTP 两种传输。
  • 数据不再经过中间层转换,延迟降低约 30%。
  • 仍保留 Collector 兼容路径,已有部署无需改动,可逐步下线中间层。

2. 采集器自动发现

K8s 里每次上线新服务都要改采集器配置,是运维最烦的重复劳动。v3.2 的采集器监听 K8s API,新 Pod 创建时自动匹配采集规则:

discovery:
  enabled: true
  watch:
    - resource: pod
      labels:
        - "app"
        - "tier"
  rules:
    - match: "label[tier] == 'backend'"
      action: collect_logs

规则命中即采集,无需重启。主机侧同样支持按进程名自动发现新增服务进程。

3. 跨集群日志查询

日志检索支持跨多个后端(Elasticsearch / ClickHouse / 对象存储)的一次性查询,SQL 式语法自动下推,详见上一篇教程。

增强与修复

  • 告警证据链:告警详情自动附带 Trace 查询、日志查询、变更关联三个链接。
  • 错误指纹:按「异常类型 + 栈顶帧」聚合错误,标注首次出现时间与近 1h 次数。
  • 修复:时区非 UTC 时跨天查询漏数据的问题;修复 ARM 环境下 eBPF 采集器偶发崩溃;修复 P95 聚合在 ClickHouse 冷数据上的精度偏差;修复升级后旧告警规则未迁移的问题。

升级步骤

升级前请先备份配置库,并按以下顺序操作:

  1. 升级网关与查询服务(无状态,可滚动更新)。
  2. 升级采集器(分批,观察数据连续性)。
  3. 升级存储引擎(滚动重启,触发一次 rebalance)。

升级完成后执行一次 observe-cli doctor 校验:检查 OTLP 端口连通性、采样配置是否生效、跨集群查询是否路由正确。

已知问题

  • 自动发现开启后,极端情况下(单节点 5000+ Pod)API watch 会带来额外 2~3% 的 API Server 负载,大规模集群建议调大 watch 重连间隔。
  • OTLP/HTTP 下 gzip 压缩默认关闭,高吞吐场景建议手动开启。

完整变更记录见官网文档 changelog 页面。老版本用户建议在维护窗口内升级,升级过程预计 30~40 分钟。