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"]
我的回复是这样的,我正在尝试删除 '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"]