From b13ae9bd5f3258a23bdcca0df64e3765d73f3ce1 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Mon, 11 May 2026 08:15:35 -0500 Subject: [PATCH] fix(grafana): correct PromEx status_info metric name in towerops dashboards The dashboards referenced `towerops_prom_ex_status_info` but PromEx exports this as `towerops_prom_ex_prom_ex_status_info`. The template job dropdown was empty because Grafana couldn't find any job values for the wrong metric. --- .../grafana/files/dashboards/towerops-application.json | 8 ++++---- ansible/roles/grafana/files/dashboards/towerops-beam.json | 8 ++++---- ansible/roles/grafana/files/dashboards/towerops-ecto.json | 8 ++++---- ansible/roles/grafana/files/dashboards/towerops-oban.json | 8 ++++---- .../files/dashboards/towerops-phoenix-live-view.json | 8 ++++---- .../roles/grafana/files/dashboards/towerops-phoenix.json | 8 ++++---- 6 files changed, 24 insertions(+), 24 deletions(-) diff --git a/ansible/roles/grafana/files/dashboards/towerops-application.json b/ansible/roles/grafana/files/dashboards/towerops-application.json index 619f2fd..9e00e9c 100644 --- a/ansible/roles/grafana/files/dashboards/towerops-application.json +++ b/ansible/roles/grafana/files/dashboards/towerops-application.json @@ -572,14 +572,14 @@ { "allValue": null, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, job)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "hide": 0, "includeAll": false, "label": "Prometheus Job", "multi": false, "name": "job", "options": [], - "query": "label_values(towerops_prom_ex_status_info, job)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "refresh": 2, "regex": "", "skipUrlSync": false, @@ -593,14 +593,14 @@ { "allValue": null, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, instance)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, instance)", "hide": 0, "includeAll": false, "label": "Application Instance", "multi": false, "name": "instance", "options": [], - "query": "label_values(towerops_prom_ex_status_info{job=\"$job\"}, instance)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info{job=\"$job\"}, instance)", "refresh": 2, "regex": "", "skipUrlSync": false, diff --git a/ansible/roles/grafana/files/dashboards/towerops-beam.json b/ansible/roles/grafana/files/dashboards/towerops-beam.json index 012cfae..e88a776 100644 --- a/ansible/roles/grafana/files/dashboards/towerops-beam.json +++ b/ansible/roles/grafana/files/dashboards/towerops-beam.json @@ -2240,14 +2240,14 @@ { "allValue": null, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, job)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "hide": 0, "includeAll": false, "label": "Prometheus Job", "multi": false, "name": "job", "options": [], - "query": "label_values(towerops_prom_ex_status_info, job)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "refresh": 2, "regex": "", "skipUrlSync": false, @@ -2261,14 +2261,14 @@ { "allValue": null, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, instance)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, instance)", "hide": 0, "includeAll": false, "label": "Application Instance", "multi": false, "name": "instance", "options": [], - "query": "label_values(towerops_prom_ex_status_info{job=\"$job\"}, instance)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info{job=\"$job\"}, instance)", "refresh": 2, "regex": "", "skipUrlSync": false, diff --git a/ansible/roles/grafana/files/dashboards/towerops-ecto.json b/ansible/roles/grafana/files/dashboards/towerops-ecto.json index ca743dc..4fe60f7 100644 --- a/ansible/roles/grafana/files/dashboards/towerops-ecto.json +++ b/ansible/roles/grafana/files/dashboards/towerops-ecto.json @@ -1142,14 +1142,14 @@ { "allValue": null, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, job)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "hide": 0, "includeAll": false, "label": "Prometheus Job", "multi": false, "name": "job", "options": [], - "query": "label_values(towerops_prom_ex_status_info, job)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "refresh": 2, "regex": "", "skipUrlSync": false, @@ -1163,14 +1163,14 @@ { "allValue": null, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, instance)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, instance)", "hide": 0, "includeAll": false, "label": "Application Instance", "multi": false, "name": "instance", "options": [], - "query": "label_values(towerops_prom_ex_status_info{job=\"$job\"}, instance)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info{job=\"$job\"}, instance)", "refresh": 2, "regex": "", "skipUrlSync": false, diff --git a/ansible/roles/grafana/files/dashboards/towerops-oban.json b/ansible/roles/grafana/files/dashboards/towerops-oban.json index 077efc7..bb1ac82 100644 --- a/ansible/roles/grafana/files/dashboards/towerops-oban.json +++ b/ansible/roles/grafana/files/dashboards/towerops-oban.json @@ -2754,14 +2754,14 @@ "value": "elixir_app" }, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, job)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "hide": 0, "includeAll": false, "label": "Prometheus Job", "multi": false, "name": "job", "options": [], - "query": "label_values(towerops_prom_ex_status_info, job)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "refresh": 2, "regex": "", "skipUrlSync": false, @@ -2780,14 +2780,14 @@ "value": "elixir_app_one:4000" }, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, instance)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, instance)", "hide": 0, "includeAll": false, "label": "Application Instance", "multi": false, "name": "instance", "options": [], - "query": "label_values(towerops_prom_ex_status_info{job=\"$job\"}, instance)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info{job=\"$job\"}, instance)", "refresh": 2, "regex": "", "skipUrlSync": false, diff --git a/ansible/roles/grafana/files/dashboards/towerops-phoenix-live-view.json b/ansible/roles/grafana/files/dashboards/towerops-phoenix-live-view.json index f54ba2f..1f14ed6 100644 --- a/ansible/roles/grafana/files/dashboards/towerops-phoenix-live-view.json +++ b/ansible/roles/grafana/files/dashboards/towerops-phoenix-live-view.json @@ -1294,14 +1294,14 @@ { "allValue": null, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, job)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "hide": 0, "includeAll": false, "label": "Prometheus Job", "multi": false, "name": "job", "options": [], - "query": "label_values(towerops_prom_ex_status_info, job)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "refresh": 2, "regex": "", "skipUrlSync": false, @@ -1315,14 +1315,14 @@ { "allValue": null, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, instance)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, instance)", "hide": 0, "includeAll": false, "label": "Application Instance", "multi": false, "name": "instance", "options": [], - "query": "label_values(towerops_prom_ex_status_info{job=\"$job\"}, instance)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info{job=\"$job\"}, instance)", "refresh": 2, "regex": "", "skipUrlSync": false, diff --git a/ansible/roles/grafana/files/dashboards/towerops-phoenix.json b/ansible/roles/grafana/files/dashboards/towerops-phoenix.json index 0a27be4..1caa9a0 100644 --- a/ansible/roles/grafana/files/dashboards/towerops-phoenix.json +++ b/ansible/roles/grafana/files/dashboards/towerops-phoenix.json @@ -1878,14 +1878,14 @@ { "allValue": null, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, job)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "hide": 0, "includeAll": false, "label": "Prometheus Job", "multi": false, "name": "job", "options": [], - "query": "label_values(towerops_prom_ex_status_info, job)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info, job)", "refresh": 2, "regex": "", "skipUrlSync": false, @@ -1899,14 +1899,14 @@ { "allValue": null, "datasource": "Prometheus", - "definition": "label_values(towerops_prom_ex_status_info, instance)", + "definition": "label_values(towerops_prom_ex_prom_ex_status_info, instance)", "hide": 0, "includeAll": false, "label": "Application Instance", "multi": false, "name": "instance", "options": [], - "query": "label_values(towerops_prom_ex_status_info{job=\"$job\"}, instance)", + "query": "label_values(towerops_prom_ex_prom_ex_status_info{job=\"$job\"}, instance)", "refresh": 2, "regex": "", "skipUrlSync": false,