Add graceful shutdown to prometheus server (#1637)

Fixes prometheus server not stopping if there are open connections
This commit is contained in:
tmpolaczyk
2023-09-21 12:22:42 +02:00
committed by GitHub
parent 9e403629d5
commit a56fd32e0a
+7 -1
View File
@@ -111,10 +111,16 @@ async fn init_prometheus_with_listener(
}
});
let server = Server::builder(listener).serve(service);
let (signal, on_exit) = tokio::sync::oneshot::channel::<()>();
let server = Server::builder(listener).serve(service).with_graceful_shutdown(async {
let _ = on_exit.await;
});
let result = server.await.map_err(Into::into);
// Gracefully shutdown server, otherwise the server does not stop if it has open connections
let _ = signal.send(());
result
}