我制作了这样一张桌子:
+----------+---------+---------+-------+
| _time | field_1 | field_2 | count |
+----------+---------+---------+-------+
| 08:00:00 | A | 1 | 2 |
+----------+---------+---------+-------+
| 08:00:00 | B | 1 | 4 |
+----------+---------+---------+-------+
| 08:00:03 | B | 3 | 1 |
+----------+---------+---------+-------+
| 08:00:03 | A | 2 | 3 |
+----------+---------+---------+-------+
我想知道:
什么是平均值&最大计数,每(field_1 + field_2)组合,每秒。
问题是_time缺少几秒钟,因此stats count
结果只给出了现有时间段的聚合结果。
如何为每个(field_1 + field_2)组合扩展此表以包含每个缺失时间秒,只需填充count = 0?只要我能做到这一点,我就可以通过stats avg(count) max(count) by field_1 field_2
来获得结果。
答案 0 :(得分:1)
我也在这里发布了我的问题:https://answers.splunk.com/answers/624043/how-to-produce-rows-for-non-existing-time-buckets.html,我得到了一个很好的答案来填补丢失的时间段。
<your base search>
| eval field= field_1 + "|" + field_2
| timechart limit=0 span=1s count by field
| fillnull value=0
| untable _time field count
| eval temp = split(field,"|")
| eval field_1 = mvindex(temp,0)
| eval field_2 = mvindex(temp,1)
| stats sum(count) as count by field_1 field_2 _time | sort- _time
答案 1 :(得分:0)
没有数据就很难调试。但是,不是为每个field1 / field2组合的每个缺失秒添加额外的条目,而是可以执行以下操作:
your_query
| eventstats earliest(_time) as etime, latest(_time) as ltime by field1, field2
| stats sum(count) as c, max(count) as maxCount, values(etime) as etime, values(ltime) as ltime by field1, field2
| eval avgCount = c/(ltime-etime)
| table field1, field2, avgCount, maxCount
这将找到每个field1 + field2组合的最新时间和最早时间。然后,通过将field1 + field2组合的所有计数的总和除以秒数(最新最早)来手动计算平均值。