tokio metrics
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
5ec49b3f62
commit
cce270d938
13 changed files with 157 additions and 33 deletions
|
@ -153,6 +153,7 @@ fn body_limit_layer(server: &Server) -> DefaultBodyLimit { DefaultBodyLimit::max
|
|||
fn catch_panic(err: Box<dyn Any + Send + 'static>) -> http::Response<http_body_util::Full<bytes::Bytes>> {
|
||||
conduit_service::services()
|
||||
.server
|
||||
.metrics
|
||||
.requests_panic
|
||||
.fetch_add(1, std::sync::atomic::Ordering::Release);
|
||||
|
||||
|
|
|
@ -17,11 +17,14 @@ pub(crate) async fn spawn(
|
|||
return Err(StatusCode::SERVICE_UNAVAILABLE);
|
||||
}
|
||||
|
||||
let active = server.requests_spawn_active.fetch_add(1, Ordering::Relaxed);
|
||||
let active = server
|
||||
.metrics
|
||||
.requests_spawn_active
|
||||
.fetch_add(1, Ordering::Relaxed);
|
||||
trace!(active, "enter");
|
||||
defer! {{
|
||||
let active = server.requests_spawn_active.fetch_sub(1, Ordering::Relaxed);
|
||||
let finished = server.requests_spawn_finished.fetch_add(1, Ordering::Relaxed);
|
||||
let active = server.metrics.requests_spawn_active.fetch_sub(1, Ordering::Relaxed);
|
||||
let finished = server.metrics.requests_spawn_finished.fetch_add(1, Ordering::Relaxed);
|
||||
trace!(active, finished, "leave");
|
||||
}};
|
||||
|
||||
|
@ -45,12 +48,13 @@ pub(crate) async fn handle(
|
|||
}
|
||||
|
||||
let active = server
|
||||
.metrics
|
||||
.requests_handle_active
|
||||
.fetch_add(1, Ordering::Relaxed);
|
||||
trace!(active, "enter");
|
||||
defer! {{
|
||||
let active = server.requests_handle_active.fetch_sub(1, Ordering::Relaxed);
|
||||
let finished = server.requests_handle_finished.fetch_add(1, Ordering::Relaxed);
|
||||
let active = server.metrics.requests_handle_active.fetch_sub(1, Ordering::Relaxed);
|
||||
let finished = server.metrics.requests_handle_finished.fetch_add(1, Ordering::Relaxed);
|
||||
trace!(active, finished, "leave");
|
||||
}};
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ async fn handle_shutdown(server: &Arc<Server>, tx: &Sender<()>, handle: &axum_se
|
|||
error!("failed sending shutdown transaction to channel: {e}");
|
||||
}
|
||||
|
||||
let pending = server.requests_spawn_active.load(Ordering::Relaxed);
|
||||
let pending = server.metrics.requests_spawn_active.load(Ordering::Relaxed);
|
||||
if pending > 0 {
|
||||
let timeout = Duration::from_secs(36);
|
||||
trace!(pending, ?timeout, "Notifying for graceful shutdown");
|
||||
|
|
|
@ -21,12 +21,21 @@ pub(super) async fn serve(
|
|||
info!("Listening on {addrs:?}");
|
||||
while join_set.join_next().await.is_some() {}
|
||||
|
||||
let spawn_active = server.requests_spawn_active.load(Ordering::Relaxed);
|
||||
let handle_active = server.requests_handle_active.load(Ordering::Relaxed);
|
||||
let spawn_active = server.metrics.requests_spawn_active.load(Ordering::Relaxed);
|
||||
let handle_active = server
|
||||
.metrics
|
||||
.requests_handle_active
|
||||
.load(Ordering::Relaxed);
|
||||
debug_info!(
|
||||
spawn_finished = server.requests_spawn_finished.load(Ordering::Relaxed),
|
||||
handle_finished = server.requests_handle_finished.load(Ordering::Relaxed),
|
||||
panics = server.requests_panic.load(Ordering::Relaxed),
|
||||
spawn_finished = server
|
||||
.metrics
|
||||
.requests_spawn_finished
|
||||
.load(Ordering::Relaxed),
|
||||
handle_finished = server
|
||||
.metrics
|
||||
.requests_handle_finished
|
||||
.load(Ordering::Relaxed),
|
||||
panics = server.metrics.requests_panic.load(Ordering::Relaxed),
|
||||
spawn_active,
|
||||
handle_active,
|
||||
"Stopped listening on {addrs:?}",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue