You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telegraf数据采集:如何为输入插件指定特定采集字段

Telegraf 仅采集输入插件指定字段的配置方法

Telegraf 原生支持字段级别的采集过滤,不需要修改插件源码,针对你的CPU指标采集需求,有两种常用配置方式:


方法1:在CPU输入插件内直接配置字段白名单(推荐,作用范围仅限当前输入)

所有Telegraf输入插件都内置了fieldpass(字段白名单)、fielddrop(字段黑名单)过滤参数,直接写在[[inputs.cpu]]配置块内即可,不会影响其他输入插件的采集逻辑。

你要采集的按CPU ID区分的CPU-busy指标,对应插件内置的usage_active字段(即CPU非空闲状态的总占比),修改配置如下即可:

[[inputs.cpu]]
  percpu = true  # 设为true会按单个CPU核心输出指标,自动带cpu=cpuX的ID标签
  totalcpu = false # 不需要整机总CPU指标就设为false
  collect_cpu_time = false
  report_active = true # 开启后才会输出usage_active(CPU繁忙占比)字段
  core_tags = false
  # 字段白名单:只有写在这个列表里的字段才会被保留
  fieldpass = ["usage_active"]

如果只需要指定某几个CPU核心的指标,不需要采集全部核心,可以额外加标签过滤规则:

# 仅采集cpu0、cpu1两个核心的指标,按需修改ID列表即可
  [inputs.cpu.tagpass]
    cpu = ["cpu0", "cpu1"]

方法2:用prune处理器做更灵活的字段裁剪

如果需要跨多个输入插件统一做字段过滤,或者要同时过滤标签、指标名,可以用processors.prune处理器。
比如单独裁剪CPU输入的字段,保留核心ID标签,配置如下:

# 先保留原有[[inputs.cpu]]的基础配置,不需要在输入块里写fieldpass
[[inputs.cpu]]
  percpu = true
  totalcpu = false
  collect_cpu_time = false
  report_active = true
  core_tags = false

# 新增prune处理器段做字段过滤
[[processors.prune]]
  namepass = ["cpu"] # 仅对名为cpu的指标生效
  fieldinclude = ["usage_active"] # 保留的字段列表
  taginclude = ["cpu", "host"] # 保留的标签列表,这里留了CPU核心ID和主机名标签

配置验证方法

改完配置后不要直接启动服务,先执行测试命令看输出是否符合预期:

telegraf --config telegraf.conf --once --test

命令会直接把采集到的指标打印在终端,不会写入下游存储,确认字段、标签都对了再正式启动服务即可。

注意事项

  • fieldpass为白名单模式,优先级高于黑名单配置fielddrop,两者同时配置时只有匹配白名单的字段会被保留。
  • 若你需要的CPU-busy指标是自定义计算值(而非内置的usage_active),可以搭配processors.starlark处理器做自定义计算后再裁剪多余字段,常规场景下内置的usage_active已经可以满足CPU繁忙占比的统计需求。

内容的提问来源于stack exchange,提问作者Vinny Pem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:01:06