2014-04-03 31 views
5

Chciałbym uruchomić kwerendę Splunk przez długi okres czasu (np. Miesięcy lub lat), ale przeszukuję wystarczającą ilość danych, aby móc przeszukiwać tylko godziny lub dni danych.Jak mogę efektywnie próbować długi okres w Splunk?

Jednak na pytanie, które chcę odpowiedzieć w Splunk, byłbym zadowolony z jednolitego lub statystycznie bezstronnego próbki danych. Innymi słowy, wolałbym, aby zdarzenia zwracające zapytania były rozłożone w ciągu ostatniego miesiąca, niż jakiekolwiek kolejne zdarzenia.

Jednym ze sposobów, które rozważałem było wyszukiwanie zdarzeń tylko z date_minute=0, aby szybko filtrować 1/60 wydarzeń, co pomaga, ale nie jest zbyt elastyczne.

Czy istnieje lepszy sposób skutecznego próbkowania zdarzeń w Splunk?

Odpowiedz

2

Znalazłem pokrewną dyskusję na temat próbkowania na stronie Splunk Answers poniżej.

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

Alternatywą do filtrowania przez date_minute lub date_second, jest filtrowanie zdarzeń w where klauzuli pomocą właściwości _serial lub funkcji random(). Na przykład,

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

lub

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

Jednak w obu przypadkach pojawia wyszukiwania, aby zrobić pełne skanowanie danych. Może to być nadal pożądane, jeśli potrzebujesz elastyczności, a wynik jest podawany w droższe zapytanie. W przeciwnym razie użycie metody date_second jest znacznie szybsze, ponieważ zdarzenia są najwyraźniej indeksowane przez to pole. Na przykład dwa powyższe zapytania działały pod numerem 3m 20s w podzbiorze danych, w którym poniższe zapytanie było uruchamiane w postaci 11s na tych samych danych.

 
* date_second=0 | ... 
1

Jeśli próbujesz uruchomić wyszukiwanie i nie jesteś zadowolony z wydajności Splunk, to proponuję Ci albo report accelerate lub data model accelerate it. Można również utworzyć własne pliki tsidx (utworzone automatycznie przy użyciu przyspieszenia modelu i danych) za pomocą tscollect, a następnie uruchomić na nim tstats.

+0

dziękuję! Nie wiedziałem o 'tscollect' i' tstats'. Te wyglądają na pomocne. Pytałem o próbkowanie, ponieważ potrzebuję tylko raz uruchomić kwerendę i rozumiem, że koszt utworzenia indeksu jest w przybliżeniu równoznaczny z uruchomieniem zapytania. (Choć proszę, popraw mnie, jeśli się mylę!) Możliwe, że odpowiedź brzmi: nie ma skutecznego sposobu próbkowania w Splunk i zawsze lepiej budować indeks. – Arel