I have a search that utilizes timechart to sum the total amount of data indexed by host with 1 day span. I would like to know how to get the an average of the daily sum for each host.
Also, I am using timechart, but it groups everything that is not the top 10 into others category. Is there anyway to show all results, or utilize stats for this calculation?
Any assistance would be appreciated.
The search that I am using is:
index=internal source=*metrics.log group="perhost_thruput" | eval GB=kb/1048576 | timechart sum(GB) as "total" by series span=1d
This search run across seven days produces seven points of data for each host. What I would like to do is produce 1 point of data that would be the average of the 7 days, or 30 days, or whatever timeframe the search was ran.
Assuming you just want a daily average, you can do this:
index=_internal source=*metrics.log group="per_host_thruput" | eval GB=kb/1048576 | stats sum(GB) as total by series | addinfo | eval days = (info_max_time - info_min_time) / 86400 | fields - info* | eval daily_average = total / days
That's throwing out your
timechart entirely. If you somehow want the daily average appended to your timechart you can do this:
index=_internal source=*metrics.log group="per_host_thruput" | eval GB=kb/1048576 | timechart sum(GB) as "total" by series span=1d limit=0 | appendpipe [stats avg(*) as *]
limit=0 will make your
OTHER go away, be wary of huge host counts though. The
appendpipe will add a row to the bottom with your averages per span.