2016-06-02 8 views
2

Wir haben Splunkindex für bestimmte Ereignisse. Ereignisse werden nach Ereignistyp kategorisiert.Piping Timechart in Streamstats

Ich muss feste Größe (sagen wir, 5 min) Fenster finden, wo Häufigkeit (Ereignisse pro Sekunde) von Ereignissen mehr als einen voreingestellten Prozentsatz (sagen wir 50%) im Vergleich zu einem vorhergehenden Fenster fallen/steigt.

ich erfolglos versucht, etwas wie folgt aus:

index=index_of_events | eval cnt=1 | timechart span=20s limit=40 per_second(cnt) as ev by ev_type useother=f usenull=f | 
streamstats window=40 global=false first(ev) as start last(ev) as end by ev_type | 
eval diff=abs(start-end) | eval max_val=max(start, end) | 
where diff > 0 AND max > 0 | eval prc=100*diff/max_val | where prc > 50 

Ist es machbar Ansatz? Kann ich timechart direkt an streamstats leiten oder benötige ich etwas wie untable zwischen ihnen?

Gibt es einen besseren Weg, um diese Aufgabe zu erfüllen?

Wenn möglich, möchte ich auch niederfrequente Ereignisse ausschließen (egal ob 2/sec1/sec wird).

Antwort

0

Oft Zeitdiagramm am besten bis zum letzten links, versuchen Statistiken statt

(entfernen // Kommentare)

search ... 
// group by type 
| stats count by type 
// establish a 'normal' 
| streamstats window=5 global=f median(count) as floating_median by type 
// calculate delta 
| eval diff = count-floating_median 
| eval diff_percent = diff/floating_median 
// find outliers 
| eventstats max(diff_percent) as diff_percent_max by type 
| where diff_percent_max > 0.5 
// visualise 
| timechart sum(count) as count by type