【问题标题】:Splunk panel for calculating grater then operation用于计算大于运算的 Splunk 面板
【发布时间】:2021-08-25 21:07:04
【问题描述】:

分享应用程序日志:

2021-08-25T20:45:17.382Z level=info module=xyz pid=45 message="queryAPI, Execution Time(ms):,617.195517, pId:45" 
2021-08-25T20:45:17.382Z level=info module=xyz pid=45 message="queryAPI, Execution Time(ms):,231.195517, pId:45"

问题:在 splunk 仪表板中查找耗时超过 500 毫秒的 API 总数?

请分享 splunk 查询以找出以下数据。

两列表格中的预期输出显示:
延迟的 API 名称:queryAPI
总出现次数:1

【问题讨论】:

  • 您是否已经有任何已建立的领域?
  • @PM77-1 感谢您的提问。应该只显示 2 列。 API 名称和慢响应调用总数。
  • 没有回答@PM77-1 的问题,fregp :) ....您已经提取了哪些字段?

标签: splunk splunk-query splunk-formula splunk-dashboard


【解决方案1】:

根据您的样本数据:

2021-08-25T20:45:17.382Z level=info module=xyz pid=45 message="queryAPI, Execution Time(ms):,617.195517, pId:45"
2021-08-25T20:45:17.382Z level=info module=xyz pid=45 message="queryAPI, Execution Time(ms):,231.195517, pId:45"

这样的事情应该可以工作:

index=ndx sourcetype=srctp message=*
| rex field=message "(?<apiname>\w+).+\,(?<exectime>\d+\.\d+).+:(?<pid>\d+)$"
| where exectime>500
| stats values(exectime) as longtimes by apiname pid

我假设您已经提取了 message 字段,并从 message 字段中提取了 apinameexectimepid

https://regex101.com/r/YBKtFc/1

【讨论】:

  • 正则表达式不适用于此消息的开头和结尾有双引号。 message="queryAPI, Execution Time(ms):,231.195517, pId:45" .. 你能帮忙获取每个 API 的计数超过 500 吗?谢谢
  • @fregp - 那么我的理解是否正确,message 字段尚未提取?
  • 是的,你的权利,我正在尝试提取与每个 API 缓慢相关的字段并显示记录。你能检查一下吗
  • @fregp - 像这样扩展regex| rex field=_raw "message[[:punct:]]+(?&lt;apiname&gt;\w+).+\,(?&lt;exectime&gt;\d+\.\d+).+:(?&lt;pid&gt;\d+)"
猜你喜欢
  • 1970-01-01
  • 2013-02-16
  • 2012-04-23
  • 2014-05-06
  • 2019-02-11
  • 1970-01-01
  • 1970-01-01
  • 2011-08-24
  • 2020-12-01
相关资源
最近更新 更多