@@ -42,6 +42,7 @@ static constexpr double percentiles[numPercentiles] = {
42
42
50.0 , 90.0 , 99.0 , 99.9 , 99.99 , 99.999 , 99.9999 };
43
43
44
44
struct latencyValues {
45
+ int64_t count;
45
46
int64_t min;
46
47
int64_t max;
47
48
int64_t mean;
@@ -54,6 +55,7 @@ using histogram_ptr =
54
55
55
56
static inline latencyValues getValues (const struct hdr_histogram *histogram) {
56
57
latencyValues values;
58
+ values.count = histogram->total_count ;
57
59
values.max = hdr_max (histogram);
58
60
values.min = hdr_min (histogram);
59
61
values.mean = static_cast <int64_t >(hdr_mean (histogram));
@@ -93,20 +95,22 @@ class latency_printer {
93
95
for (auto &[name, histogram] : values) {
94
96
auto value = getValues (histogram.get ());
95
97
logger.log (logger::Level::INFO,
96
- " {},{},{},{},{},{},{},{},{},{},{},{},ns" , name,
97
- value.min , value.max , value.mean , value.stddev ,
98
- value.percentileValues [0 ], value.percentileValues [1 ],
99
- value.percentileValues [2 ], value.percentileValues [3 ],
100
- value.percentileValues [4 ], value.percentileValues [5 ],
101
- value.percentileValues [6 ]);
98
+ " {},{},{},{},{},{},{},{},{},{},{},{},{},{},ns" , name,
99
+ value.mean , value.percentileValues [0 ],
100
+ value.percentileValues [1 ], value.percentileValues [2 ],
101
+ value.percentileValues [3 ], value.percentileValues [4 ],
102
+ value.percentileValues [5 ], value.percentileValues [6 ],
103
+ value.count , value.count * value.mean , value.min ,
104
+ value.max , value.stddev );
102
105
}
103
106
}
104
107
105
108
private:
106
109
inline void printHeader () {
107
110
logger.log (logger::Level::INFO, " Latency histogram:" );
108
111
logger.log (logger::Level::INFO,
109
- " name,min,max,mean,stdev,p{},p{},p{},p{},p{},p{},p{},unit" ,
112
+ " name,mean,p{},p{},p{},p{},p{},p{}"
113
+ " ,p{},count,sum,min,max,stdev,unit" ,
110
114
percentiles[0 ], percentiles[1 ], percentiles[2 ],
111
115
percentiles[3 ], percentiles[4 ], percentiles[5 ],
112
116
percentiles[6 ]);
0 commit comments