我将tsung日志放入ElasticSearch(ES),以便可以使用Kibana过滤,可视化和比较结果。
我正在使用logstash及其JSON解析过滤器将JSON格式的tsung日志推送到ES。
Tsung日志有点复杂(IMO),将数组对象分为数组对象,多行事件和几个具有相同名称的字段,例如以下示例中的“值”。
我想改变这个事件:
{
"stats":[
{"timestamp": 1317413861, "samples": [
{"name": "users", "value": 0, "max": 1},
{"name": "users_count", "value": 1, "total": 1},
{"name": "finish_users_count", "value": 1, "total": 1}]}]}
到这个:
{"timestamp": 1317413861},{"users_value":0},{"users_max":1},{"users_count_value":1},{"users_count_total":1},{"finish_users_count_value":1},{"finish_users_count_total":1}
由于整个聪日志文件在性能测试活动结束转发到logstash,我想使用正则表达式删除CR和unusefull统计数据和样本,以便简化一点点发送事件logstash前阵列。
然后,我将使用那些JSON过滤器选项:
add_field => {"%{name}_value" => "%{value}"}
add_field => {"%{name}_max" => "%{max}"}
add_field => {"%{name}_total" => "%{total}"}
但是,我应该如何处理一个事件中包含多个值字段的事实呢?最好的事情是什么?
谢谢你的帮助。
这里需要使用ruby {}过滤器。循环访问“样本”字段中的条目,并根据名称/值/总数/最大值构造自己的字段。
在SO的其他地方也有这种类型的行为的示例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句