如何解决在logstash中使用KV时,我的密钥带有转义字符,如何在Ruby中读取此值?
我有来自Kafka的数据,数据看起来像这样:
"x-vcap-request-id":"smitshah","x-cf-applicationid":"test","x-cf-instanceid":"test2","sec-ch-ua":"\"something\";\"willwork\""
它与JSON类似,但事实并非如此。所以我想到了使用KV滤波器,
kv {
source => "header_v1"
value_split => ":"
field_split => ","
}
但是现在我以这种方式获取密钥:
所以当我做event.get('\"x-vcap-request-id\"')
时,我得到的结果是空的。
我该如何解决?
解决方法
对Kafka一无所知,但屏幕上显示的内容是在Ruby a Hash(地图)中,尽管图像上仅可见按键。
在Ruby中,如果Hash的名称是event(我在这里猜),那么您可以像这样event["x-vcap-request-id"]
我使用字符串作为键,因为您的screeenshot建议使用字符串作为键,但是在Ruby键中大多数时候都是使用Symbols(一种独特的固定字符串),因此它也可以是event[:x-vcap-request-id]
解决方案很简单,或者我可能忽略了,这是我的解决方案:
添加了remove_char_key
并转义了\
字符,它解决了这个问题:
kv {
remove_char_key => "\""
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。