From 2c118875837c7dabb03a0d1f41eafac1ef902e1d Mon Sep 17 00:00:00 2001
From: Armando Migliaccio <armamig@gmail.com>
Date: Thu, 8 Sep 2016 09:50:56 -0700
Subject: [PATCH] Grafana Neutron: use string substitution to track jobs
 running on different nodes

This is a lot more future proof and consistent with how it's been done in
other places.

Change-Id: I57980495589dca62ae4b4661aaae64d2126ff846
---
 grafana/neutron.yaml | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/grafana/neutron.yaml b/grafana/neutron.yaml
index 3fe5043795..b817642f23 100644
--- a/grafana/neutron.yaml
+++ b/grafana/neutron.yaml
@@ -16,7 +16,7 @@ dashboard:
         - title: Unit Tests Failure Rates (Check queue)
           span: 4
           targets:
-            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-python27-ubuntu-xenial.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-neutron-python27-ubuntu-xenial.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-python27-ubuntu-xenial')
+            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-python27{,-ubuntu-trusty,-ubuntu-xenial}.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-neutron-python27{,-ubuntu-trusty,-ubuntu-xenial}.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-python27')
             - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-python34.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-neutron-python34.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-python34')
             - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-python35.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-neutron-python35.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-python35')
           type: graph
@@ -26,7 +26,7 @@ dashboard:
         - title: Unit Tests Failure Rates (Gate queue)
           span: 4
           targets:
-            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-neutron-python27-ubuntu-xenial.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-neutron-python27-ubuntu-xenial.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-python27-ubuntu-xenial')
+            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-neutron-python27{,-ubuntu-trusty,-ubuntu-xenial}.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-neutron-python27{,-ubuntu-trusty,-ubuntu-xenial}.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-python27')
             - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-neutron-python34.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-neutron-python34.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-python34')
             - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-neutron-python35.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-neutron-python35.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-python35')
           type: graph
@@ -46,8 +46,8 @@ dashboard:
         - title: Integrated Tempest Failure Rates (Gate queue)
           span: 4
           targets:
-            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-full-ubuntu-xenial.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-full-ubuntu-xenial.{SUCCESS,FAILURE})),'24hours'), 'gate-tempest-dsvm-full-ubuntu-xenial')
-            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-neutron-full-ubuntu-xenial.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-neutron-full-ubuntu-xenial.{SUCCESS,FAILURE})),'24hours'), 'gate-tempest-dsvm-neutron-full-ubuntu-xenial')
+            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-full{,-ubuntu-trusty,-ubuntu-xenial}.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-full{,-ubuntu-trusty,-ubuntu-xenial}.{SUCCESS,FAILURE})),'24hours'), 'gate-tempest-dsvm-full')
+            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-neutron-full{,-ubuntu-trusty,-ubuntu-xenial}.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-neutron-full{,-ubuntu-trusty,-ubuntu-xenial}.{SUCCESS,FAILURE})),'24hours'), 'gate-tempest-dsvm-neutron-full')
             - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-neutron-dsvm-api{,-ubuntu-trusty,-ubuntu-xenial}.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-neutron-dsvm-api{,-ubuntu-trusty,-ubuntu-xenial}.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-dsvm-api')
             - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-neutron-dvr{,-ubuntu-trusty,-ubuntu-xenial}.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-neutron-dvr{,-ubuntu-trusty,-ubuntu-xenial}.{SUCCESS,FAILURE})),'24hours'), 'gate-tempest-dsvm-neutron-dvr')
             - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-neutron-linuxbridge{,-ubuntu-trusty,-ubuntu-xenial}.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-tempest-dsvm-neutron-linuxbridge{,-ubuntu-trusty,-ubuntu-xenial}.{SUCCESS,FAILURE})),'24hours'), 'gate-tempest-dsvm-neutron-linuxbridge')
@@ -81,9 +81,9 @@ dashboard:
         - title: Functional/Fullstack Failure Rates (Experimental queue)
           span: 4
           targets:
-            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-functional-ubuntu-xenial.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-functional-ubuntu-xenial.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-dsvm-functional-ubuntu-xenial')
-            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-functional-py35-ubuntu-xenial.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-functional-py35-ubuntu-xenial.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-dsvm-functional-py35-ubuntu-xenial')
-            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-fullstack-ubuntu-xenial.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-fullstack-ubuntu-xenial.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-dsvm-fullstack-ubuntu-xenial')
+            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-functional{,-ubuntu-trusty,-ubuntu-xenial}.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-functional{,-ubuntu-trusty,-ubuntu-xenial}.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-dsvm-functional')
+            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-functional-py35{,-ubuntu-trusty,-ubuntu-xenial}.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-functional-py35{,-ubuntu-trusty,-ubuntu-xenial}.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-dsvm-functional-py35')
+            - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-fullstack{,-ubuntu-trusty,-ubuntu-xenial}.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-neutron-dsvm-fullstack{,-ubuntu-trusty,-ubuntu-xenial}.{SUCCESS,FAILURE})),'24hours'), 'gate-neutron-dsvm-fullstack-ubuntu')
           type: graph
     - title: Graphs
       height: 320px