问题描述
我正在尝试使用telegraf输入插件在json数据中使用arris正确标记某些嵌套标签。
如果我手动指定它们,我可以做到这一点而没有问题,问题取决于服务器,带有这些标签的条目数可能会有所不同,因为您会看到telegraf为它们命名,例如“ xxxx_number_yyyy”,其中第一个标签号为0,第二个是一个,依此类推。
因此,对于像这样的json代码:
{
"body": {
"item": {
"name": "mydatasource","type": "Generic","instances": [
{
"server": "server1","state": "Running","connectionsTotalCount": 20
},{
"server": "server2","connectionsTotalCount": 46
}
]
}
}
}
和Telegraf中的输入配置类似:
[[inputs.exec]]
commands = ["command that extracts data in json format"]
data_format = "json"
json_query = "body.item"
tag_keys = ["name","WANT TO ADD INSTANCE_#_SERVER HERE WITHOUT SPECIFYING THEM MANUALLY"]
json_string_fields = ["type","instances_?_state"]
telefgraf的输出如下:exec_command,host=myhost.example.com,name=mydatasource,instances_0_connectionsTotalCount=20,instances_0_server="server1",instances_0_state="Running",instances_1_connectionsTotalCount=46,instances_1_server="server2",instances_2_state="Running" 1598295890000000000
如您所见,在这种情况下,有两个,所以我很容易拥有:
tag_keys = ["name","instances_0_server","instances_1_server"]
问题是这必须适用于数十种不同的配置,并且有些可以具有数十台服务器,我想自动以这种模式添加tag_keys,我尝试使用通配符,但似乎无法与tag_keys一起使用。
有什么办法解决这个问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)