@@ -65,6 +65,9 @@ impl Pools {
6565 let mut avg_query_time = vec ! [ ] ;
6666 let mut total_close = vec ! [ ] ;
6767 let mut avg_close = vec ! [ ] ;
68+ let mut total_server_errors = vec ! [ ] ;
69+ let mut avg_server_errors = vec ! [ ] ;
70+
6871 for ( user, cluster) in databases ( ) . all ( ) {
6972 for ( shard_num, shard) in cluster. shards ( ) . iter ( ) . enumerate ( ) {
7073 for ( role, pool) in shard. pools_with_roles ( ) {
@@ -191,6 +194,16 @@ impl Pools {
191194 labels : labels. clone ( ) ,
192195 measurement : averages. close . into ( ) ,
193196 } ) ;
197+
198+ total_server_errors. push ( Measurement {
199+ labels : labels. clone ( ) ,
200+ measurement : totals. errors . into ( ) ,
201+ } ) ;
202+
203+ avg_server_errors. push ( Measurement {
204+ labels : labels. clone ( ) ,
205+ measurement : averages. errors . into ( ) ,
206+ } ) ;
194207 }
195208 }
196209 }
@@ -372,6 +385,22 @@ impl Pools {
372385 metric_type : None ,
373386 } ) ) ;
374387
388+ metrics. push ( Metric :: new ( PoolMetric {
389+ name : "total_server_errors" . into ( ) ,
390+ measurements : total_server_errors,
391+ help : "Total number of errors returned by server connections." . into ( ) ,
392+ unit : None ,
393+ metric_type : Some ( "counter" . into ( ) ) ,
394+ } ) ) ;
395+
396+ metrics. push ( Metric :: new ( PoolMetric {
397+ name : "avg_server_errors" . into ( ) ,
398+ measurements : avg_server_errors,
399+ help : "Average number of errors returned by server connections." . into ( ) ,
400+ unit : None ,
401+ metric_type : None ,
402+ } ) ) ;
403+
375404 Pools { metrics }
376405 }
377406}
0 commit comments