From c8080ca0e04e4b3cb4f914ffda7fa79522843c23 Mon Sep 17 00:00:00 2001 From: Justin Karneges Date: Mon, 14 Sep 2026 10:54:28 -0700 Subject: [PATCH] allow prometheus prefixes to override component names --- src/bin/pushpin-connmgr.rs | 2 +- src/connmgr/mod.rs | 10 ++++++---- src/proxy/proxyapp.cpp | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/bin/pushpin-connmgr.rs b/src/bin/pushpin-connmgr.rs index e3154de4b..25519b499 100644 --- a/src/bin/pushpin-connmgr.rs +++ b/src/bin/pushpin-connmgr.rs @@ -197,7 +197,7 @@ fn process_args_and_run(args: Args) -> Result<(), Box> { NetListenConfig::Unix(c) => &mut c.params, }; - let prefix = params.remove("prefix").unwrap_or_default(); + let prefix = params.remove("prefix").unwrap_or("connmgr".to_string()); if let Some(k) = params.keys().next() { return Err(format!("failed to parse prometheus: invalid param: {}", k).into()); diff --git a/src/connmgr/mod.rs b/src/connmgr/mod.rs index 600a33e83..c36dae258 100644 --- a/src/connmgr/mod.rs +++ b/src/connmgr/mod.rs @@ -165,10 +165,12 @@ impl App { let mut prometheus = None; if let Some(config) = &config.prometheus { - let combined_prefix = format!("{}connmgr", config.prefix); - - let registry = prometheus::Registry::new_custom(Some(combined_prefix), None) - .expect("failed to create prometheus registry"); + let trimmed = config.prefix.trim_end_matches('_'); + let registry = prometheus::Registry::new_custom( + (!trimmed.is_empty()).then(|| trimmed.to_string()), + None, + ) + .expect("failed to create prometheus registry"); try_register_process_collector(®istry) .expect("failed to register process collector"); diff --git a/src/proxy/proxyapp.cpp b/src/proxy/proxyapp.cpp index 26700cd19..855b102f0 100644 --- a/src/proxy/proxyapp.cpp +++ b/src/proxy/proxyapp.cpp @@ -471,7 +471,7 @@ int proxy_init(const ffi::ProxyCliArgs *argsFfi) { int statsConnectionsMaxTtl = settings.value("proxy/stats_connections_max_ttl", 60).toInt(); int statsReportInterval = settings.value("proxy/stats_report_interval", 10).toInt(); QString prometheusPort = settings.value("proxy/prometheus_port").toString(); - QString prometheusPrefix = settings.value("proxy/prometheus_prefix").toString(); + QString prometheusPrefix = settings.value("proxy/prometheus_prefix", "proxy").toString(); QList origHeadersNeedMark; foreach (const QString &s, origHeadersNeedMarkStr)