Telegraf 1.24.1版本号解析:将10.2.12拆分为主/次/补丁变量
拆分Telegraf版本号为独立变量的方案
Telegraf本身没有内置的字符串拆分函数,但可以通过以下两种实用方案实现版本号拆分:
方法一:利用exec插件配合shell命令解析
在Telegraf配置中,通过exec插件调用shell命令拆分版本号,直接输出结构化字段:
[[inputs.exec]] commands = ["echo '1.24.1' | awk -F '.' '{print \"major=\"$1, \"minor=\"$2, \"patch=\"$3}'"] data_format = "influx"
执行后会生成major=1、minor=24、patch=1三个字段,可直接被Telegraf采集。
方法二:使用starlark处理器编写脚本处理
Telegraf 1.19及以上版本支持starlark处理器,可通过简单脚本拆分版本号:
[[processors.starlark]] source = ''' def apply(metric): # 假设版本号存储在tags的version字段中 version = metric.tags["version"] parts = version.split(".") metric.fields["major"] = int(parts[0]) metric.fields["minor"] = int(parts[1]) metric.fields["patch"] = int(parts[2]) return metric '''
如果版本号是固定值,可直接替换为version = "1.24.1"进行拆分。
额外说明
- 若版本号包含预发布标签(如
1.24.1-beta),需先截取-前的部分再拆分,比如在shell命令中添加cut -d '-' -f 1,或在starlark脚本中用version.split("-")[0]处理。 exec插件为Telegraf核心插件,全版本支持;starlark处理器需Telegraf 1.19+版本。
内容的提问来源于stack exchange,提问作者Alberkillo
相关产品推荐
相关产品推荐

