Splunk提取OpenShift日志中各Pod的API响应时间需求及问题
Splunk查询修正:按Pod名称统计平均API响应时间
原查询的问题点
- 搜索条件里的
log写法错误,无法正确定位目标日志字段 - 提取响应时间的正则缺少数字与
ms之间的空格,导致匹配失败 - 未按
kubernetes.pod_name分组,也没有用聚合函数计算平均值 - 误用
host字段,应该使用kubernetes.pod_name获取Pod名称
修正后的查询语句
index=apps_openshift_huge Source="automate_pod*" log=* | rex field=log "(?<response_time>\d+)\sms$" | stats avg(response_time) as avg_response_time by kubernetes.pod_name | rename avg_response_time as "平均响应时间(ms)", kubernetes.pod_name as "Pod名称" | table "Pod名称", "平均响应时间(ms)"
语句说明
index=apps_openshift_huge Source="automate_pod*" log=*:指定目标索引、日志源,并过滤出包含log字段的事件rex field=log "(?<response_time>\d+)\sms$":从log字段末尾提取响应时间,\s匹配数字和ms之间的空格,$确保只匹配日志末尾的响应时间,避免误匹配其他数字stats avg(response_time) as avg_response_time by kubernetes.pod_name:按Pod名称分组,计算每组的平均响应时间rename:将字段名改为中文,提升表格可读性table:展示最终需要的两列数据,生成符合需求的表格
内容的提问来源于stack exchange,提问作者Francis Edison
相关产品推荐
相关产品推荐

