splunk - 如何构造一个 splunk 查询以生成字段为空或不为空的事件计数?
问题描述
我正在处理一些可能有也可能没有用户名字段的访问日志。我不需要做任何花哨的事情,我只想生成一个查询,该查询返回一个统计表,其中包含该字段为空或不为空的事件计数。例如,我的日志结构如下:
<timestamp><field1><field2><user_name><field4>
对于匿名连接,不会记录 user_name,因此这些值为 null。我可以很容易地获得所有非空值:
<base_query> user_name="*" | stats count
这给了我一个很好的非空用户名字段表:
count
------
812093
我还可以通过更多的工作来计算空字段,但这似乎很混乱:
<base_query> | fillnull user_name value=NULL| search user_name=NULL | stats count
然后我得到一个带有 null user_name 字段的条目计数。
count
-----
31215
但是,我真正想要的是一个将这两者组合到一个统计表中的单个查询,理想情况下:
not_null | null
----------------
812093 | 31215
谢谢!
解决方案
有一个函数 "isNull(field)" ,你可以用它来评估然后计数
index=indxname search_condition
| eval countByFieldExists=if(isnull(field),"notExist","Exists")
| stats count by countByFieldExists
像这样的东西应该适合你
推荐阅读
- python - 如何通过 Emukit python 包使用外部模型数据
- c++ - Arduino - 测量一个按钮按下和释放之间的时间间隔 - 将速度添加到 MIDI 键盘
- python - 带有按位逻辑运算符的python列表理解
- javascript - 如何在 useEffect 中使用 setState 中设置的新值调用函数?
- apache-spark - Pyspark:在大型数据帧上调用 .toJSON() 是最佳做法吗?
- angular - 当过滤器为空时,它返回空数组
- android - 如何从 Mapview 获取 UserLocation
- vue.js - 这个 main.js 的 vuejs 3 版本
- sql-server - Power Automate Bad Gateway 错误 Microsoft Lists to SQL Server
- javascript - javascript:将数字转换为时间