diff --git a/crates/libpk/src/_config.rs b/crates/libpk/src/_config.rs index 5af40a94..6a489c93 100644 --- a/crates/libpk/src/_config.rs +++ b/crates/libpk/src/_config.rs @@ -88,6 +88,7 @@ pub struct ScheduledTasksConfig { pub set_guild_count: bool, pub expected_gateway_count: usize, pub gateway_url: String, + pub prometheus_url: String, } fn _metrics_default() -> bool { diff --git a/crates/scheduled_tasks/src/tasks.rs b/crates/scheduled_tasks/src/tasks.rs index 98396a3f..c7308ed3 100644 --- a/crates/scheduled_tasks/src/tasks.rs +++ b/crates/scheduled_tasks/src/tasks.rs @@ -92,12 +92,14 @@ pub async fn update_discord_stats(ctx: AppCtx) -> anyhow::Result<()> { let mut guild_count = 0; let mut channel_count = 0; + let mut url = cfg.gateway_url.clone(); for idx in 0..cfg.expected_gateway_count { - let res = client - .get(format!("http://cluster{idx}.{}/stats", cfg.gateway_url)) - .send() - .await?; + if url.contains("{clusterid}") { + url = url.replace("{clusterid}", &idx.to_string()); + } + + let res = client.get(&url).send().await?; let stat: GatewayStatus = res.json().await?; @@ -163,6 +165,11 @@ pub async fn update_stats_api(ctx: AppCtx) -> anyhow::Result<()> { .build() .expect("error making client"); + let cfg = config + .scheduled_tasks + .as_ref() + .expect("missing scheduled_tasks config"); + #[derive(serde::Deserialize, Debug)] struct PrometheusResult { data: PrometheusResultData, @@ -178,11 +185,9 @@ pub async fn update_stats_api(ctx: AppCtx) -> anyhow::Result<()> { macro_rules! prom_instant_query { ($t:ty, $q:expr) => {{ + tracing::info!("Query: {}", $q); let resp = client - .get(format!( - "http://vm.svc.pluralkit.net/select/0/prometheus/api/v1/query?query={}", - $q - )) + .get(format!("{}/api/v1/query?query={}", cfg.prometheus_url, $q)) .send() .await?;