From 176d38be68b37d16230ed371a10d73a08bc1a82f Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Sun, 8 Feb 2026 09:50:07 -0800 Subject: [PATCH] Fix metric names: strip loki_process_custom_ prefix, drop internal labels Alloy's stage.metrics prefixes all metric names with loki_process_custom_. Add a relabel rule to strip the prefix so dashboards can query clean names (flyio_nginx_http_requests_total etc). Also drop component_id/component_path/filename labels. Co-Authored-By: Claude Opus 4.6 --- fly/alloy.river | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/fly/alloy.river b/fly/alloy.river index 41bd8c9..d2dedb7 100644 --- a/fly/alloy.river +++ b/fly/alloy.river @@ -110,10 +110,24 @@ prometheus.scrape "self" { scrape_interval = "15s" } -// Add instance label to all metrics +// Strip the "loki_process_custom_" prefix that Alloy adds to stage.metrics, +// then add instance label. This keeps dashboard queries clean. prometheus.relabel "instance" { forward_to = [prometheus.remote_write.prometheus.receiver] + rule { + source_labels = ["__name__"] + regex = "loki_process_custom_(.*)" + target_label = "__name__" + replacement = "$1" + } + + // Drop internal labels added by the loki pipeline + rule { + regex = "component_id|component_path|filename" + action = "labeldrop" + } + rule { target_label = "instance" replacement = "flyio-proxy"