如何在 Splunk 中有效地对长时间跨度进行采样



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

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

我考虑的一种方法是只搜索date_minute=0的事件,以便快速过滤 1/60 的事件,这很有帮助,但不是很灵活。

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

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

我在下面的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 过滤的替代方法是使用 _serial 属性或 random() 函数过滤 where 子句中的事件。例如

* |其中 (_serial % 60) = 0 |...

* |其中 (随机() % 60) = 0 |...

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

* date_second=0 |...

Splunk 现在支持指向文档的数据采样链接

最新更新