diff --git a/Cargo.toml b/Cargo.toml index 642ac3f..26be369 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,3 +20,5 @@ sentry = "0.31.5" async-tempfile = "0.4.0" uuid = "1.4.1" + +axum-prometheus = "0.4.0" diff --git a/src/main.rs b/src/main.rs index 385db1d..d2006d2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,6 @@ use std::{net::SocketAddr, time::SystemTime}; -use axum::{Router, routing::post, extract::Multipart, response::{IntoResponse, AppendHeaders}, http::{StatusCode, header}, body::StreamBody}; +use axum::{Router, routing::{post, get}, extract::Multipart, response::{IntoResponse, AppendHeaders}, http::{StatusCode, header}, body::StreamBody}; +use axum_prometheus::PrometheusMetricLayer; use tokio::{fs::{remove_file, read_dir, remove_dir, File}, io::{AsyncWriteExt, copy}, process::Command}; use tracing::{info, log}; use async_tempfile::TempFile; @@ -160,8 +161,11 @@ async fn convert_file( fn get_router() -> Router { + let (prometheus_layer, metric_handle) = PrometheusMetricLayer::pair(); + Router::new() .route("/", post(convert_file)) + .route("/metrics", get(|| async move { metric_handle.render() })) }