【问题标题】:How can I efficiently sample a long time span in Splunk?如何在 Splunk 中有效地对长时间跨度进行采样?
【发布时间】:2014-05-16 00:32:57
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: performance search time random-sample splunk


    【解决方案1】:

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

    【讨论】:

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

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

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

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

      * date_second=0 | ...

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 谢谢!我不知道tscollecttstats。这些看起来很有帮助。我问的是采样,因为我只需要运行一次查询,我的理解是创建索引的成本大致相当于运行查询。 (虽然如果我错了,请纠正我!)也可能是答案是在 Splunk 中没有有效的采样方法,你总是最好建立一个索引。
        猜你喜欢
        • 2019-01-26
        • 1970-01-01
        • 1970-01-01
        • 2021-02-25
        • 2017-11-18
        • 1970-01-01
        • 2017-03-03
        • 2021-10-01
        • 1970-01-01
        相关资源
        最近更新 更多