首页/云/可观测性速查/Collector 部署形态:agent 与 gateway

Collector 部署形态:agent 与 gateway

两种部署:每主机/每 Pod 一个 agent 就近接数据,中心一个 gateway 统一加工与出海;规模上来后分层能同时保住可靠性与治理效率。

可观测性速查云更新于 2026-10-13

Collector 部署形态是什么

OpenTelemetry Collector 的部署形态主要有两种:每主机或每 Pod 部署一个 agent,就近接收本机应用的数据;中心侧部署 gateway,统一做加工、采样与出海。规模上来之后分层部署能同时保住可靠性与治理效率——agent 层负责批量与本地缓冲,gateway 层负责采样与路由。在 Kubernetes 环境里,agent 通常以 DaemonSet 交付。

基本信息

两种形态agent(每主机或每 Pod)与 gateway(中心化)
常见交付Kubernetes 中用 DaemonSet 部署 agent,用 Deployment 部署 gateway
通道协议OTLP,gRPC 4317 与 HTTP 4318
分工建议agent 做批量与本地缓冲,gateway 做采样与路由
关键风险gateway 是链路单点

典型使用场景

  • 就近采集:agent 接收本机应用上报,减少跨节点流量
  • 统一治理:gateway 集中做采样、脱敏与路由分发
  • 多后端分发:gateway 按租户或环境把数据发往不同后端
  • 容量缓冲:agent 侧缓冲吸收应用侧的突发流量
  • 迁移过渡:从应用直连后端迁到分层架构的渐进方案

使用要点

  • gateway 要多副本并前置负载均衡,避免成为全链路单点
  • gRPC 长连接在负载均衡下要考虑连接散列,避免流量集中到单副本
  • agent 到 gateway 之间的网络抖动要能缓冲重试,否则采样前数据已丢
  • 每层都要有自己的指标:接收速率、发送速率、队列长度与丢弃量
  • 配置管理走统一模板,避免大量 agent 的配置漂移

分层结构

分层结构
应用 ->(本机 localhost:4317)-> agent Collector
                                   ↓(服务端负载均衡)
                             gateway Collector
                                   ↓
                     Tempo / Jaeger / 对象存储

# k8s 里 agent 常以 DaemonSet 交付,gateway 以多副本 Deployment 交付

部署形态对照

形态部署位置职责与风险
agent每主机或每 Pod批量与本地缓冲,数量多需模板化
gateway中心集群采样与路由,单点风险需多副本
混合分层两者并存治理效率高,链路更长
单层直连应用直连后端简单但缺少统一治理点
交付方式DaemonSet 与 Deployment按角色选择
agent 层做批量与本地缓冲、gateway 层做采样与路由,是规模上来后最常见的分工;两层各自都要有容量与丢弃指标。

易错点

  • gateway 单点会吞掉整条链路,需要多副本加前置负载均衡,并处理长连接散列
  • agent 到 gateway 的网络抖动要能缓冲重试,否则采样决策前数据已经丢了
  • 大量 agent 的配置不模板化,改一个参数要逐台操作,配置漂移很快出现
  • 只在应用侧做采样而不在 gateway 侧统一,实际采样率与预期不一致

数据来源与参考

  • OpenTelemetry 官方文档 · Collector deployment patterns
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌