diff --git a/pgdog/src/stats/pools.rs b/pgdog/src/stats/pools.rs index f082219d0..dd3051bb3 100644 --- a/pgdog/src/stats/pools.rs +++ b/pgdog/src/stats/pools.rs @@ -69,6 +69,8 @@ impl Pools { let mut avg_idle_xact_time = vec![]; let mut total_query_time = vec![]; let mut avg_query_time = vec![]; + let mut total_wait_time = vec![]; + let mut avg_wait_time = vec![]; let mut total_close = vec![]; let mut avg_close = vec![]; let mut total_server_errors = vec![]; @@ -241,6 +243,16 @@ impl Pools { measurement: millis(averages.query_time).into(), }); + total_wait_time.push(Measurement { + labels: labels.clone(), + measurement: millis(totals.wait_time).into(), + }); + + avg_wait_time.push(Measurement { + labels: labels.clone(), + measurement: millis(averages.wait_time).into(), + }); + total_close.push(Measurement { labels: labels.clone(), measurement: totals.close.into(), @@ -604,6 +616,22 @@ impl Pools { metric_type: None, })); + metrics.push(Metric::new(PoolMetric { + name: "total_wait_time".into(), + measurements: total_wait_time, + help: "Total time spent waiting for connection.".into(), + unit: None, + metric_type: Some("counter".into()), + })); + + metrics.push(Metric::new(PoolMetric { + name: "avg_wait_time".into(), + measurements: avg_wait_time, + help: "Average time spent waiting for connection.".into(), + unit: None, + metric_type: None, + })); + metrics.push(Metric::new(PoolMetric { name: "total_prepared_evictions".into(), measurements: total_close,