mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-18 09:24:31 +00:00
MINOR: freq_ctr: add new functions to report float measurements
For stats reporting it can be convenient to report floats at low rates instead of discrete integers. We do have quite some precision since we currently divide counters by number of milliseconds, so we can usually add 3 digits after the decimal point.
This commit is contained in:
parent
ae03d26eea
commit
aa33f20e27
@ -104,6 +104,16 @@ static inline uint read_freq_ctr_period(struct freq_ctr *ctr, uint period)
|
||||
return div64_32(total, period);
|
||||
}
|
||||
|
||||
/* same as read_freq_ctr_period() above except that floats are used for the
|
||||
* output so that low rates can be more precise.
|
||||
*/
|
||||
static inline double read_freq_ctr_period_flt(struct freq_ctr *ctr, uint period)
|
||||
{
|
||||
ullong total = freq_ctr_total(ctr, period, -1);
|
||||
|
||||
return (double)total / (double)period;
|
||||
}
|
||||
|
||||
/* Read a 1-sec frequency counter taking history into account for missing time
|
||||
* in current period.
|
||||
*/
|
||||
@ -112,6 +122,14 @@ static inline unsigned int read_freq_ctr(struct freq_ctr *ctr)
|
||||
return read_freq_ctr_period(ctr, MS_TO_TICKS(1000));
|
||||
}
|
||||
|
||||
/* same as read_freq_ctr() above except that floats are used for the
|
||||
* output so that low rates can be more precise.
|
||||
*/
|
||||
static inline double read_freq_ctr_flt(struct freq_ctr *ctr)
|
||||
{
|
||||
return read_freq_ctr_period_flt(ctr, MS_TO_TICKS(1000));
|
||||
}
|
||||
|
||||
/* Returns the number of remaining events that can occur on this freq counter
|
||||
* while respecting <freq> events per period, and taking into account that
|
||||
* <pend> events are already known to be pending. Returns 0 if limit was reached.
|
||||
|
Loading…
Reference in New Issue
Block a user