Skip to content

Commit b347545

Browse files
committed
move metrics encoding into blocking task
1 parent 03450d2 commit b347545

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/web/metrics.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,17 @@ use std::{borrow::Cow, sync::Arc, time::Instant};
1616
use tracing::debug;
1717

1818
async fn fetch_and_render_metrics(
19-
fetcher: impl Fn() -> Result<Vec<MetricFamily>> + Send + 'static,
19+
fetch_metrics: impl Fn() -> Result<Vec<MetricFamily>> + Send + 'static,
2020
) -> AxumResult<impl IntoResponse> {
21-
let metrics_families = spawn_blocking(fetcher).await?;
22-
23-
let mut buffer = Vec::new();
24-
TextEncoder::new()
25-
.encode(&metrics_families, &mut buffer)
26-
.context("error encoding metrics")?;
21+
let buffer = spawn_blocking(move || {
22+
let metrics_families = fetch_metrics()?;
23+
let mut buffer = Vec::new();
24+
TextEncoder::new()
25+
.encode(&metrics_families, &mut buffer)
26+
.context("error encoding metrics")?;
27+
Ok(buffer)
28+
})
29+
.await?;
2730

2831
Ok((
2932
StatusCode::OK,

0 commit comments

Comments
 (0)