From a02aff76bedf5495ba55659fdecc76065c75f9dc Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 12 Dec 2022 23:10:53 +0100 Subject: [PATCH] add more metrics --- backend/windmill-worker/src/worker.rs | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/backend/windmill-worker/src/worker.rs b/backend/windmill-worker/src/worker.rs index 0f17e06fe4..7fdde2bc83 100644 --- a/backend/windmill-worker/src/worker.rs +++ b/backend/windmill-worker/src/worker.rs @@ -372,6 +372,20 @@ pub async fn run_worker( ) .expect("register prometheus metric"); + let worker_sleep_duration = prometheus::register_histogram!(prometheus::HistogramOpts::new( + "worker_sleep_duration", + "Duration sleeping waiting for job", + ) + .const_label("name", &worker_name),) + .expect("register prometheus metric"); + + let worker_pull_duration = prometheus::register_histogram!(prometheus::HistogramOpts::new( + "worker_pull_duration", + "Duration pulling next job", + ) + .const_label("name", &worker_name),) + .expect("register prometheus metric"); + let worker_execution_failed = prometheus::register_int_counter_vec!( prometheus::Opts::new("worker_execution_failed", "Number of failed jobs",) .const_label("name", &worker_name), @@ -479,7 +493,7 @@ pub async fn run_worker( .await .map_err(|_| Error::InternalErr("Impossible to fetch same_worker job".to_string()))) }, - job = pull(&db) => (false, job), + job = { let _timer = worker_pull_duration.start_timer(); pull(&db) } => (false, job), } }.instrument(trace_span!("worker_get_next_job")).await; if do_break { @@ -592,7 +606,12 @@ pub async fn run_worker( } } Ok(None) => { - tokio::time::sleep(Duration::from_millis(sleep_queue * num_workers)).await + + let _timer = worker_sleep_duration + .start_timer(); + + tokio::time::sleep(Duration::from_millis(sleep_queue * num_workers)).await; + } Err(err) => { tracing::error!(worker = %worker_name, "run_worker: pulling jobs: {}", err);