We are trying to achieve reporting functionality based on information from Yammer metrics.
Yammer metrics provides information about Timers and Meters as shown below:
METER_METRIC:
count = 1
mean rate = 0.01 count/s
1-minute rate = 0.00 count/s
5-minute rate = 0.00 count/s
15-minute rate = 0.00 count/s
TIMER_METRIC:
count = 1
mean rate = 0.01 calls/s
1-minute rate = 0.01 calls/s
5-minute rate = 0.00 calls/s
15-minute rate = 0.00 calls/s
min = 89.77ms
max = 89.77ms
mean = 89.77ms
stddev = 0.00ms
median = 89.77ms
75% <= 89.77ms
95% <= 89.77ms
98% <= 89.77ms
99% <= 89.77ms
99.9% <= 89.77ms
I read an overview and am able to get the application statistics as shown above. The Timer and Meter metrics have information about the 1-minute rate, 5-minute rate and 15-minute rate.
Question:
What do the minute rates of the Timer and Meter metrics indicate and how those are getting calculated?
All (mean|1-min|5-minute|15-minute)-rate
metrics indicate throughput; i.e., how many units of information (events) where processed per second.
Mean rate
Calculates the rate at which events have occurred since the meter was created. But that's not very useful because it doesn't represent what is happening right now.
Minute rates
Calculates the rate at which events have ocurred using a technique called Exponentially-weighted moving average (EWMA).
This rate has the same exponential decay factor as the fifteen-minute load average in the top
Unix command.
More Information
Take a look at the source code of Timer.java, Meter.java and EWMA.java
If you have more time, take a look at a talk about the topic by Coda Hale: Metrics, Metrics, Everywhere - Coda Hale