Detecting anomalies

There are a set of commands that you can use to perform anomaly detection. See Commands for advanced statistics.

Finding spikes in your data

You want to identify spikes in your data. Spikes can show you where you have peaks (or troughs) that indicate that some metric is rising or falling sharply. There are all sorts of spikes. Traffic spikes, sales spikes, spikes in the number of returns, spikes in database load. Whatever type of spike you are interested in, you want to watch for it and then perhaps take some action to address those spikes.

You can use a moving trendline to help you see the spikes. Run a search followed by the trendline command using a field that you want to create a trendline for.

For example, on web access data, you could chart an average of the bytes field.

To add another line or bar series to the chart for the simple moving average (sma) of the last 5 values of bytes, use this command:

If you want to clearly identify spikes, you might add an additional series for spikes. The following search adds a field called "spike" that indicates when the average number of bytes exceeds twice the moving average.

The 10000 here is arbitrary and you should choose a value relevant to your data that makes the spike noticeable. Changing the formatting of the y-axis to Log scale also helps.

Putting this all together, the search is:

This search uses a simple moving average for the last 5 results (sma5). Explore with different simple moving average values to determine the best simple moving average to use to identify the spikes.

The trendline command also supports the exponential moving average (ema) and the weighted moving average (wma).

Alternatively, you can bypass the charting altogether and replace the eval command with the where command to filter your results.

And by looking at the table view or setting an alert, you will see when the avg_bytes spiked.