0

我制作了一张这样的表格:

+----------+---------+---------+-------+
| _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.

4

2 回答 2

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
于 2018-03-05T16:17:02.230 回答
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 组合的所有计数总和除以秒数(最新-最早)来手动计算平均值。

于 2018-03-05T15:41:26.677 回答