Fix router keep nonzero metrics after worker is deleted (#14819)
This commit is contained in:
@@ -8,6 +8,7 @@ use dashmap::DashMap;
|
|||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
use crate::core::{ConnectionMode, RuntimeType, Worker, WorkerType};
|
use crate::core::{ConnectionMode, RuntimeType, Worker, WorkerType};
|
||||||
|
use crate::observability::metrics::RouterMetrics;
|
||||||
|
|
||||||
/// Unique identifier for a worker
|
/// Unique identifier for a worker
|
||||||
#[derive(Debug, Clone, Hash, Eq, PartialEq)]
|
#[derive(Debug, Clone, Hash, Eq, PartialEq)]
|
||||||
@@ -138,8 +139,8 @@ impl WorkerRegistry {
|
|||||||
conn_workers.retain(|id| id != worker_id);
|
conn_workers.retain(|id| id != worker_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO we may even remove it from Prometheus exports
|
|
||||||
worker.set_healthy(false);
|
worker.set_healthy(false);
|
||||||
|
RouterMetrics::remove_worker_metrics(worker.url());
|
||||||
|
|
||||||
Some(worker)
|
Some(worker)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -536,6 +536,15 @@ impl RouterMetrics {
|
|||||||
.increment(1);
|
.increment(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO delete the metrics (instead of setting them to zero)
|
||||||
|
pub fn remove_worker_metrics(worker_url: &str) {
|
||||||
|
gauge!("sgl_router_cb_state","worker" => worker_url.to_string()).set(0.0);
|
||||||
|
gauge!("sgl_router_worker_health","worker" => worker_url.to_string()).set(0.0);
|
||||||
|
gauge!("sgl_router_worker_load","worker" => worker_url.to_string()).set(0.0);
|
||||||
|
gauge!("sgl_router_running_requests","worker" => worker_url.to_string()).set(0.0);
|
||||||
|
gauge!("sgl_router_tree_size","worker" => worker_url.to_string()).set(0.0);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_job_queue_depth(depth: usize) {
|
pub fn set_job_queue_depth(depth: usize) {
|
||||||
gauge!("sgl_router_job_queue_depth").set(depth as f64);
|
gauge!("sgl_router_job_queue_depth").set(depth as f64);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user