Splunk Cloud Platform

Search Manual

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.

sourcetype=access* | timechart avg(bytes) as avg_bytes

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:

... | trendline sma5(avg_bytes) as moving_avg_bytes

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.

... | eval spike=if(avg_bytes > 2 * moving_avg_bytes, 10000, 0)

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:

sourcetype=access* | timechart avg(bytes) as avg_bytes | trendline sma5(avg_bytes) as moving_avg_bytes | eval spike=if(avg_bytes > 2 * moving_avg_bytes, 10000, 0)

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.

... | where avg_bytes > 2 * moving_avg_bytes

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

See also

Related information
About advanced statistics
Commands
eval
trendline
Last modified on 28 July, 2020
Finding and removing outliers   Detecting patterns

This documentation applies to the following versions of Splunk Cloud Platform: 8.2.2112, 8.2.2201, 8.2.2202, 8.2.2203, 9.0.2205, 9.0.2208, 9.0.2209, 9.0.2303, 9.0.2305, 9.1.2308, 9.1.2312, 9.2.2403, 9.2.2406 (latest FedRAMP release)


Was this topic useful?







You must be logged into splunk.com in order to post comments. Log in now.

Please try to keep this discussion focused on the content covered in this documentation topic. If you have a more general question about Splunk functionality or are experiencing a difficulty with Splunk, consider posting a question to Splunkbase Answers.

0 out of 1000 Characters