首页/云/可观测性速查/常用 Processor:批处理与属性加工

常用 Processor:批处理与属性加工

批处理攒批降开销,属性处理器增删改字段,过滤处理器丢弃噪声;先在 Collector 层做统一治理比每个服务各自改配置省力。

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

Processor 是什么

Processor 是 OpenTelemetry Collector 管道中间的处理环节:批处理(batch)攒批降低网络与后端开销,属性处理器(attributes)增删改字段做脱敏与统一,过滤处理器(filter)丢弃噪声数据,内存限制器(memory_limiter)保护进程自身。把采样、脱敏、过滤集中到 Collector 层统一治理,比要求每个服务各自改配置更省力,也更容易审计哪些字段被丢掉了。

基本信息

配置位置Collector 配置的 processors 段,并在 service.pipelines 中引用
常用处理器batch、memory_limiter、attributes、filter、tail_sampling
执行顺序按 pipelines 中列出的顺序依次执行
版本注意filter 已改用 OTTL 表达式,语法随版本演进
权限要求配置文件修改与服务重启

典型使用场景

  • 攒批发送:batch 把小批次合并,降低后端连接与写入压力
  • 字段脱敏:删除客户端真实地址、用户标识等敏感属性
  • 噪声过滤:丢掉健康检查与探针产生的 span,减少存储与干扰
  • 资源属性统一:为一批服务补上环境、集群、服务名等资源属性
  • 尾采样:先攒后判,按整条 trace 的结果决定是否保留

使用要点

  • batch 与 memory_limiter 通常一起配置,避免攒批把内存顶满
  • filter 表达式语法随版本演进,升级前用测试数据回归一遍
  • 删字段不可逆,下游再也看不到原始值,确认后再生效
  • 属性改写在 Collector 层集中完成,能避免每个服务重复配置
  • 调整处理后要核对后端数据量变化,确认策略确实按预期生效

处理片段

处理片段
processors:
  batch:
    timeout: 5s
    send_batch_size: 8192
  attributes:
    actions:
      - key: http.client_ip
        action: delete          # 脱敏
      - key: env
        value: prod
        action: insert
  filter:
    error_mode: ignore
    traces:
      span:
        - 'attributes["url.path"] == "/healthz"'   # 丢掉健康检查 span

常用处理器

处理器作用注意
batch攒批发送降低开销与内存限制一起配置
memory_limiter限制内存防 OOM建议放在处理链靠前位置
attributes增删改属性字段删除操作不可逆
filter丢弃不需要的数据表达式语法随版本变化
tail_sampling按 trace 结果采样需缓存整条 trace,内存占用高
过滤与脱敏集中收口之后,后端存储量与敏感字段风险会同时下降,这也是把处理器放在 Collector 而不是各服务里的主要原因。

易错点

  • filter 表达式语法随版本演进,升级前要用测试数据回归,否则可能静默过滤掉全部数据
  • 在 Collector 删字段不可逆,下游再也看不到原始值,确认无误后再启用
  • batch 配了很大的批大小而不同步限制内存,容易触发 OOM 重启
  • 处理器顺序写反(先删字段再判断条件)会导致过滤条件永远不命中

数据来源与参考

  • OpenTelemetry Collector Contrib · processors
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌