我想長時間運行Splunk查詢(例如,幾個月或幾年),但我正在搜索足夠的數據,我只能夠搜索數小時或數天的數據。如何在Splunk中有效抽樣很長時間?
但是,對於我想在Splunk中回答的問題,我會對數據的統一或統計無偏的樣本感到滿意。換句話說,我寧願查詢返回N事件在過去一個月內分散,比任何連續事件N。
我考慮過的一種方式是隻搜索date_minute=0
的事件,以便快速過濾事件的1/60,這有助於但不很靈活。
有沒有更好的方法在Splunk中有效地對事件進行採樣?
我想長時間運行Splunk查詢(例如,幾個月或幾年),但我正在搜索足夠的數據,我只能夠搜索數小時或數天的數據。如何在Splunk中有效抽樣很長時間?
但是,對於我想在Splunk中回答的問題,我會對數據的統一或統計無偏的樣本感到滿意。換句話說,我寧願查詢返回N事件在過去一個月內分散,比任何連續事件N。
我考慮過的一種方式是隻搜索date_minute=0
的事件,以便快速過濾事件的1/60,這有助於但不很靈活。
有沒有更好的方法在Splunk中有效地對事件進行採樣?
我在下面的Splunk Answers頁面上找到了關於採樣的相關討論。
通過date_minute
或date_second
濾波的替代,是過濾使用_serial
屬性或random()
功能在where
子句事件。例如,
* | where (_serial % 60) = 0 | ...
或
* | where (random() % 60) = 0 | ...
然而,在兩種情況下出現的搜索做的數據進行全面掃描。如果您需要靈活性,並且結果會導致更昂貴的查詢,這可能仍然是可取的。否則,使用date_second
方法會顯着加快,因爲事件顯然是由該字段索引的。例如,上面的兩個查詢在3m 20s
的數據子集上運行,其中以下查詢在相同數據上運行11s
。
* date_second=0 | ...
如果您嘗試運行搜索並且您對Splunk的性能不滿意,那麼我會建議您使用report accelerate it或data model accelerate it。或者您可以使用tscollect
創建自己的tsidx文件(由報告和數據模型加速自動創建),然後在其上運行tstats
。
的Splunk現在支持數據採樣link to docs
謝謝!我不知道'tscollect'和'tstats'。這些看起來有用。我詢問了抽樣問題,因爲我只需要運行一次查詢,而我的理解是,創建索引的成本大致相當於運行查詢。 (儘管如果我錯了,請糾正我的錯誤!)也可能是因爲沒有有效的方式在Splunk中進行抽樣,並且始終建立索引更好。 – Arel