@@ -42,6 +42,7 @@ static constexpr double percentiles[numPercentiles] = {
4242 50.0 , 90.0 , 99.0 , 99.9 , 99.99 , 99.999 , 99.9999 };
4343
4444struct latencyValues {
45+ int64_t count;
4546 int64_t min;
4647 int64_t max;
4748 int64_t mean;
@@ -54,6 +55,7 @@ using histogram_ptr =
5455
5556static inline latencyValues getValues (const struct hdr_histogram *histogram) {
5657 latencyValues values;
58+ values.count = histogram->total_count ;
5759 values.max = hdr_max (histogram);
5860 values.min = hdr_min (histogram);
5961 values.mean = static_cast <int64_t >(hdr_mean (histogram));
@@ -93,20 +95,22 @@ class latency_printer {
9395 for (auto &[name, histogram] : values) {
9496 auto value = getValues (histogram.get ());
9597 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 );
102105 }
103106 }
104107
105108 private:
106109 inline void printHeader () {
107110 logger.log (logger::Level::INFO, " Latency histogram:" );
108111 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" ,
110114 percentiles[0 ], percentiles[1 ], percentiles[2 ],
111115 percentiles[3 ], percentiles[4 ], percentiles[5 ],
112116 percentiles[6 ]);
0 commit comments