如何在Splunk中有效地采样很长时间?

时间:2014-04-03 22:28:56

标签: performance search time random-sample splunk

我想在很长一段时间内(例如几个月或几年)运行Splunk查询,但我搜索的数据足以让我只搜索数小时或数天的数据。

但是,对于我想在Splunk中回答的问题,我会对统一或统计无偏的样本数据感到满意。换句话说,我希望在过去一个月中查询返回 N 事件,而不是任何 N 连续事件。

我考虑的一种方法是仅使用date_minute=0搜索事件,以便快速过滤1/60的事件,这有助于但不是非常灵活。

有没有更好的方法在Splunk中有效地采样事件?

3 个答案:

答案 0 :(得分:2)

如果您尝试运行搜索并且对Splunk的性能不满意,那么我建议您report acceleratedata model accelerate it。或者,您可以使用tscollect创建自己的tsidx文件(通过报告和数据模型加速自动创建),然后在其上运行tstats

答案 1 :(得分:2)

我在下面的Splunk Answers页面上找到了关于采样的相关讨论。

http://answers.splunk.com/answers/3743/is-it-possible-to-get-a-sample-set-of-search-results-rather-than-the-full-search-results

date_minutedate_second进行过滤的替代方法是使用where属性或_serial函数过滤random()子句中的事件。例如,

* | where (_serial % 60) = 0 | ...

* | where (random() % 60) = 0 | ...

但是,在这两种情况下,搜索似乎都会对数据进行全面扫描。如果您需要灵活性并且结果导致更昂贵的查询,这可能仍然是可取的。否则,使用date_second方法要快得多,因为事件显然是由该字段索引的。例如,上面的两个查询在3m 20s上针对数据子集运行,其中下面的查询在11s上针对相同数据运行。

* date_second=0 | ...

答案 2 :(得分:0)

Splunk现在支持数据采样link to docs