Telegraf 无法从测量中删除 'ms'

Telegraf unable to remove 'ms' from the measurements

我的回复是这样的,我正在尝试删除 'ms' 但没有成功。

> snmp,displayName=AWS,responseTime="004ms" 1643646155000000000

我在 'pattern' 行上尝试了一些不同的变体,但输出要么是错误“无效的 TOML 语法”,要么只是 returns 正常的数据。我想这就是我的 'pattern'。 Regex 打败了我。关于我做错了什么的任何想法?感谢您的帮助!

编辑:我可能还需要删除它周围的“”,因此在插入 InfluxDB 时它充当数字而不是字符串

[[processors.regex]]
  namepass = ["snmp"]
  [[processors.regex.tags]]
    key = "responseTime"
    pattern = "\|*ms|\*"
    replacement = ""
    result_key = "responseTime"

另一个编辑,这会删除 'ms' 但不会删除引号,influx 仍然将其视为字符串。我尝试使用 processor.converter 转换为整数,但没有成功。

[[processors.regex]]
  namepass = ["snmp"]
  [[processors.regex.fields]]
    key = "responseTime"
    pattern = "(ms.*)"
    replacement = ""
    result_key = "responseTime"

我自己解决了这个问题,这是解决方案:

[[processors.regex]]
  order = 1
  namepass = ["snmp"]
  [[processors.regex.fields]]
    key = "responseTime"
    pattern = "[^0-9]+"
    replacement = ""
    result_key = "responseTime"

  [[processors.converter]]
    order = 2
    [processors.converter.fields]
     float = ["responseTime"]