I am calculating a bunch of rates and I would like to take all of the rates I have calculated and divide by one of the previously calculated rates. I can get the first two columns below no problem. Here is the search I am currently using (made to be generic):
index=index Env=myEnv Name=requests | stats sum(Rate) as avgRate by _time, Server | stats avg(avgRate) as AvgRate by Server
If you need 500
from your list, then you can use something like this:
index=index Env=myEnv Name=requests | stats sum(Rate) as avgRate by _time, Server | stats avg(avgRate) as AvgRate by Server | eventstats last(rate) AS lastRate min(rate) AS minRate | eval lastRatio = rate / lastRate | eval minRatio = rate / minRate
Assuming previously calculated rate is the last available rate OR minimum rate (based on your sample values), try like this
index=index Env=myEnv Name=requests | stats sum(Rate) as avgRate by _time, Server | stats avg(avgRate) as AvgRate by Server | eventstats min(AvgRate) as previousRate | eval Ratio=AvgRate/previousRate
You can replace min(AvgRate) by last(AvgRate) OR any other appropriate function.
Which is the previously calculated rate you want to use?
It appears 500 is what you want to use but it's a bit confusing... see if this gives you ideas:
... | stats sum(Rate) as sumRate by Server,_time | eval ratio=sumRate/[search ... | stats avg(avgRate) as avgRate | return $avgRate] | table _time, Server, sumRate, ratio