我的记录如下:
{
"host":"192.168.1.2",
"metric_value_string":{"192.168.1.5":0,"192.168.1.4":44,"192.168.1.7":32,"192.168.1.8":1,"192.168.1.6":12}"
}
"metric_value_string“的类型是文本。
我想查询特定时间范围的特定主机,并根据它们的值对IP进行排序。我不知道我应该使用什么数据类型。当时我使用了logstash json filter,它为每个IP创建了一个字段:
{
"host":"192.168.1.2",
"metric_value_string":{
"192.168.1.5":0,
"192.168.1.4":44,
"192.168.1.7":32,
"192.168.1.8":1,
"192.168.1.6":12,
"192.168.1.9":12
}
"metric_value_string“数据类型是嵌套的。
任何帮助我们都将不胜感激。
发布于 2020-10-10 17:20:34
我找到了解决方案:
filter {
json{
source => "metric_value_string"
target => "metric_value_string"
}
ruby{
code => "def filter(event)
if !(event.get("metric_value_string")==nil)
arr=Array.net
event.get("metric_value_string").each_pair {|key, value | arr.push(["ip"=>key,"value"=>value])}
event.set("metric_value_string",arr)
end
return [event]
end
"
}
}
https://stackoverflow.com/questions/64239510
复制相似问题