Splunk Search

How do I get cumulative moving average?

Explorer

Hi guys,

I am trying to compute and chart the cumulative moving average (ref. of what is it:https://en.wikipedia.org/wiki/Moving_average#Cumulative_moving_average)

The point is that I am doing the following query:

``````host=SARITA source="login.csv" | reverse | accum elapsed_time as cumulative_elapsed_time | timechart span=5h last(cumulative_elapsed_time) by server
``````

And what I get from it is the cumulative sum. Now what I still need is to get cumulative count (which means, for any "n" value, to get the amount n up to that point in time, but not the total amount of values of all that series), so I can divide the cumulative value by the cumulative count, thus having the cumulative average.

Best regards,
Brian

Tags (3)
1 Solution
SplunkTrust

Use the `streamstats` command to count the events.

``````host=SARITA source="login.csv"
| reverse
| streamstats count
| accum elapsed_time as cumulative_elapsed_time
| timechart span=5h last(cumulative_elapsed_time) by server
``````

Even better would be to let `streamstats` do the moving average for you.

``````host=SARITA source="login.csv"
| reverse
| streamstats time_window=5h avg(elapsed_time) as AvgElapsedTime by server
``````
---
If this reply helps you, Karma would be appreciated.
SplunkTrust

Use the `streamstats` command to count the events.

``````host=SARITA source="login.csv"
| reverse
| streamstats count
| accum elapsed_time as cumulative_elapsed_time
| timechart span=5h last(cumulative_elapsed_time) by server
``````

Even better would be to let `streamstats` do the moving average for you.

``````host=SARITA source="login.csv"
| reverse
| streamstats time_window=5h avg(elapsed_time) as AvgElapsedTime by server
``````
---
If this reply helps you, Karma would be appreciated.
Explorer

Thanks!! I'll try the streamstats tomorrow.

The problem with your suggestion of making streamstats to do the moving average for me is that the time window must be from the first measure until that point n in question, and not 5h....

SplunkTrust

I chose the `time_window` option based on your use of `timechart span=5h`, but you can use another option that works better for your use case.

---
If this reply helps you, Karma would be appreciated.
Explorer

Thanks man! I used the default (non specified) time-frame. I read that the limit is 10,000 events, but it's ok. I only have 2 events per day.

Thank you very much!!!

Get Updates on the Splunk Community!

Registration for Splunk University is Now Open!

Are you ready for an adventure in learning?   Brace yourselves because Splunk University is back, and it's ...

Splunkbase | Splunk Dashboard Examples App for SimpleXML End of Life

The Splunk Dashboard Examples App for SimpleXML will reach end of support on Dec 19, 2024, after which no new ...

Understanding Generative AI Techniques and Their Application in Cybersecurity

Watch On-Demand Artificial intelligence is the talk of the town nowadays, with industries of all kinds ...