Repository: EnMasseProject/enmasse
Pull request #2615 (2019-04-10 17:13:24)

Add 'phase' of address spaces


Patch:
diff --git a/address-space-controller/src/main/java/io/enmasse/controller/CreateController.java b/address-space-controller/src/main/java/io/enmasse/controller/CreateController.java
index dec2a52f3..6a0b5a642 100644
--- a/address-space-controller/src/main/java/io/enmasse/controller/CreateController.java
+++ b/address-space-controller/src/main/java/io/enmasse/controller/CreateController.java
@@ -147,9 +147,11 @@ public class CreateController implements Controller {
             eventLogger.log(AddressSpaceCreated, "Created address space", Normal, ControllerKind.AddressSpace, addressSpace.getMetadata().getName());
             addressSpace.putAnnotation(AnnotationKeys.APPLIED_INFRA_CONFIG, mapper.writeValueAsString(desiredInfraConfig));
             addressSpace.putAnnotation(AnnotationKeys.APPLIED_PLAN, addressSpace.getSpec().getPlan());
+            addressSpace.getStatus().setPhase(Phase.Configuring);
         } else if (currentInfraConfig == null || !currentInfraConfig.equals(desiredInfraConfig)) {
 
             if (version.equals(desiredInfraConfig.getVersion())) {
+                addressSpace.getStatus().setPhase(Phase.Configuring);
                 if (checkExceedsQuota(addressSpaceType, addressSpacePlan, addressSpace)) {
                     return addressSpace;
                 }
@@ -168,6 +170,7 @@ public class CreateController implements Controller {
                 log.info("Version of desired config ({}) does not match controller version ({}), skipping upgrade", desiredInfraConfig.getVersion(), version);
             }
         } else if (!addressSpace.getSpec().getPlan().equals(addressSpace.getAnnotation(AnnotationKeys.APPLIED_PLAN))) {
+            addressSpace.getStatus().setPhase(Phase.Configuring);
             if (checkExceedsQuota(addressSpaceType, addressSpacePlan, addressSpace)) {
                 return addressSpace;
             }
diff --git a/address-space-controller/src/main/java/io/enmasse/controller/StatusController.java b/address-space-controller/src/main/java/io/enmasse/controller/StatusController.java
index 5b2b564ea..2e9af76cd 100644
--- a/address-space-controller/src/main/java/io/enmasse/controller/StatusController.java
+++ b/address-space-controller/src/main/java/io/enmasse/controller/StatusController.java
@@ -43,6 +43,13 @@ public class StatusController implements Controller {
         checkComponentsReady(addressSpace);
         checkAuthServiceReady(addressSpace);
         checkExposedEndpoints(addressSpace);
+        if (addressSpace.getStatus().isReady()) {
+            addressSpace.getStatus().setPhase(Phase.Active);
+        } else {
+            if (Phase.Active.equals(addressSpace.getStatus().getPhase())) {
+                addressSpace.getStatus().setPhase(Phase.Failed);
+            }
+        }
         return addressSpace;
     }
 
diff --git a/ansible/roles/cluster_admin/tasks/main.yml b/ansible/roles/cluster_admin/tasks/main.yml
index 2291258f1..f7bb0beff 100644
--- a/ansible/roles/cluster_admin/tasks/main.yml
+++ b/ansible/roles/cluster_admin/tasks/main.yml
@@ -56,6 +56,9 @@
 - import_role:
     name: service-monitors
   when: service_monitors
+- import_role:
+    name: grafana-dashboards
+  when: service_monitors
 - import_role:
     name: alerting
   when: alerting
diff --git a/ansible/roles/grafana-dashboards/tasks/main.yaml b/ansible/roles/grafana-dashboards/tasks/main.yaml
new file mode 100644
index 000000000..ae917b908
--- /dev/null
+++ b/ansible/roles/grafana-dashboards/tasks/main.yaml
@@ -0,0 +1,3 @@
+---
+- name: Apply the Grafana Dashboards
+  shell: oc apply -n {{ namespace }} -f {{ playbook_dir }}/install/grafana
\ No newline at end of file
diff --git a/ansible/roles/monitoring-infrastructure/tasks/main.yml b/ansible/roles/monitoring-infrastructure/tasks/main.yml
index 51b02a601..912b9752e 100644
--- a/ansible/roles/monitoring-infrastructure/tasks/main.yml
+++ b/ansible/roles/monitoring-infrastructure/tasks/main.yml
@@ -18,7 +18,4 @@
 
 
 - name: Deploy Kube-state-metrics
-  shell: oc apply -n {{ namespace }} -f {{ playbook_dir }}/install/kube-state-metrics
-
-- name: Apply the Grafana configuration
-  shell: oc apply -n {{ namespace }} -f {{ playbook_dir }}/install/grafana
\ No newline at end of file
+  shell: oc apply -n {{ namespace }} -f {{ playbook_dir }}/install/kube-state-metrics
\ No newline at end of file
diff --git a/ansible/roles/project/tasks/main.yml b/ansible/roles/project/tasks/main.yml
index 9342797a9..677497916 100644
--- a/ansible/roles/project/tasks/main.yml
+++ b/ansible/roles/project/tasks/main.yml
@@ -4,5 +4,7 @@
   register: namespace_exists
   failed_when: namespace_exists.stderr != '' and 'already exists' not in namespace_exists.stderr
   changed_when: namespace_exists.rc == 0
+- name: Label namespace
+  shell: oc label namespace {{ namespace }} monitoring-key=middleware --overwrite
 - name: Select project namespace
   shell: oc project {{ namespace }}
diff --git a/api-model/src/main/java/io/enmasse/address/model/AddressSpaceStatus.java b/api-model/src/main/java/io/enmasse/address/model/AddressSpaceStatus.java
index a6126d1d0..311c4ca82 100644
--- a/api-model/src/main/java/io/enmasse/address/model/AddressSpaceStatus.java
+++ b/api-model/src/main/java/io/enmasse/address/model/AddressSpaceStatus.java
@@ -38,6 +38,8 @@ import io.sundr.builder.annotations.Inline;
 public class AddressSpaceStatus {
     @JsonProperty("isReady")
     private boolean ready = false;
+    @JsonProperty("phase")
+    private Phase phase;
     @JsonSetter(nulls = Nulls.AS_EMPTY)
     private List<@Valid EndpointStatus> endpointStatuses = new ArrayList<>();
     @JsonSetter(nulls = Nulls.AS_EMPTY)
@@ -50,12 +52,14 @@ public class AddressSpaceStatus {
 
     public AddressSpaceStatus(boolean ready) {
         this.ready = ready;
+        this.phase = Phase.Pending;
     }
 
     public AddressSpaceStatus(AddressSpaceStatus other) {
         this.ready = other.isReady();
         this.endpointStatuses = new ArrayList<>(other.getEndpointStatuses());
         this.messages.addAll(other.getMessages());
+        this.phase = other.getPhase();
     }
 
     public boolean isReady() {
@@ -79,6 +83,14 @@ public class AddressSpaceStatus {
         return messages;
     }
 
+    public Phase getPhase() {
+        return phase;
+    }
+
+    public void setPhase(Phase phase) {
+        this.phase = phase;
+    }
+
     public AddressSpaceStatus appendMessage(String message) {
         this.messages.add(message);
         return this;
@@ -104,19 +116,21 @@ public class AddressSpaceStatus {
         if (o == null || getClass() != o.getClass()) return false;
         AddressSpaceStatus status = (AddressSpaceStatus) o;
         return ready == status.ready &&
+                phase == status.phase &&
                 Objects.equals(endpointStatuses, status.endpointStatuses) &&
                 Objects.equals(messages, status.messages);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(ready, endpointStatuses, messages);
+        return Objects.hash(ready, phase, endpointStatuses, messages);
     }
 
     @Override
     public String toString() {
         return new StringBuilder()
                 .append("{ready=").append(ready)
+                .append(",").append("phase=").append(phase)
                 .append(",").append("endpointStatuses=").append(endpointStatuses)
                 .append(",").append("messages=").append(messages)
                 .append("}")
diff --git a/api-model/src/main/java/io/enmasse/common/model/CustomResources.java b/api-model/src/main/java/io/enmasse/common/model/CustomResources.java
index d51cae2a6..b71e948a4 100644
--- a/api-model/src/main/java/io/enmasse/common/model/CustomResources.java
+++ b/api-model/src/main/java/io/enmasse/common/model/CustomResources.java
@@ -15,6 +15,11 @@ public final class CustomResources {
         String singular = kind.toLowerCase();
         String listKind = kind + "List";
         String plural = singular + "s";
+        if (singular.endsWith("s")) {
+            plural = singular + "es";
+        } else if (singular.endsWith("y")) {
+            plural = singular.substring(0, singular.length() - 1) + "ies";
+        }
         return new CustomResourceDefinitionBuilder()
                         .editOrNewMetadata()
                         .withName(plural + "." + group)
diff --git a/api-server/src/main/java/io/enmasse/api/v1/http/HttpAddressSpaceService.java b/api-server/src/main/java/io/enmasse/api/v1/http/HttpAddressSpaceService.java
index 292e2d9b3..9470342b9 100644
--- a/api-server/src/main/java/io/enmasse/api/v1/http/HttpAddressSpaceService.java
+++ b/api-server/src/main/java/io/enmasse/api/v1/http/HttpAddressSpaceService.java
@@ -419,6 +419,11 @@ public class HttpAddressSpaceService {
                     "Ready",
                     0,
                     "string"),
+            new TableColumnDefinition("The phase of this address space.",
+                    "",
+                    "Phase",
+                    0,
+                    "string"),
             new TableColumnDefinition("The timestamp representing server time when this address space was created.",
                     "",
                     "Age",
@@ -458,6 +463,7 @@ public class HttpAddressSpaceService {
                                 addressSpace.getSpec().getType(),
                                 addressSpace.getSpec().getPlan(),
                                 addressSpace.getStatus().isReady(),
+                                addressSpace.getStatus().getPhase(),
                                 Optional.ofNullable(addressSpace.getMetadata().getCreationTimestamp())
                                         .map(s -> TimeUtil.formatHumanReadable(Duration.between(TimeUtil.parseRfc3339(s), now)))
                                         .orElse(""),
diff --git a/documentation/assemblies/assembly-monitoring.adoc b/documentation/assemblies/assembly-monitoring.adoc
index 3d4c8e2af..b49845cc8 100644
--- a/documentation/assemblies/assembly-monitoring.adoc
+++ b/documentation/assemblies/assembly-monitoring.adoc
@@ -15,6 +15,8 @@ include::../modules/proc-deploy-service-monitors.adoc[leveloffset=+1]
 
 include::../modules/proc-deploy-prometheus-rules.adoc[leveloffset=+1]
 
+include::../modules/proc-deploy-grafana-dashboards.adoc[leveloffset=+1]
+
 include::../modules/proc-restart-component.adoc[leveloffset=+1]
 
 include::../modules/proc-get-logs-router.adoc[leveloffset=+1]
diff --git a/documentation/modules/proc-deploy-grafana-dashboards.adoc b/documentation/modules/proc-deploy-grafana-dashboards.adoc
new file mode 100644
index 000000000..c2145e793
--- /dev/null
+++ b/documentation/modules/proc-deploy-grafana-dashboards.adoc
@@ -0,0 +1,29 @@
+// Module included in the following assemblies:
+//
+// assembly-monitoring-kube.adoc
+// assembly-monitoring-oc.adoc
+
+[id='deploy-grafana-dashboards-{context}']
+= Deploying Grafana dashboards for graphing metrics
+
+You must deploy Grafana dashboards to graph {ProductName} metrics.
+
+.Prerequisites
+
+* A deployment of Grafana using the link:https://github.com/integr8ly/grafana-operator[Grafana Operator^] is required to deploy the Grafana dashboards.
+
+.Procedure
+
+. Select the {ProductName} namespace:
++
+[options="nowrap",subs="+quotes,attributes"]
+----
+{cmdcli} project _{ProductNamespace}_
+----
+
+. Deploy the `grafana-dashboards`:
++
+[options="nowrap",subs="attributes"]
+----
+{cmdcli} apply -f /install/components/grafana
+----
diff --git a/documentation/modules/proc-deploy-monitoring-infrastructure.adoc b/documentation/modules/proc-deploy-monitoring-infrastructure.adoc
index 39ea8db41..97c6b8e07 100644
--- a/documentation/modules/proc-deploy-monitoring-infrastructure.adoc
+++ b/documentation/modules/proc-deploy-monitoring-infrastructure.adoc
@@ -1,12 +1,11 @@
 // Module included in the following assemblies:
 //
-// assembly-monitoring-kube.adoc
-// assembly-monitoring-oc.adoc
+// assembly-monitoring.adoc
 
 [id='deploy-monitoring-infrastructure-{context}']
 = Installing monitoring infrastructure
 
-If you do not have a pre-existing infrastructure for monitoring, you must install one, which includes Prometheus, Alertmanager, Grafana, and `kube-state-metrics`.
+If you do not have a pre-existing infrastructure for monitoring, you must install one, which includes Prometheus, Alertmanager, and `kube-state-metrics`.
 
 .Prerequisites
 
diff --git a/templates/grafana/010-ConfigMap-grafana-config.yaml b/templates/grafana/010-ConfigMap-grafana-config.yaml
deleted file mode 100644
index 22cd30a0f..000000000
--- a/templates/grafana/010-ConfigMap-grafana-config.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  labels:
-    app: enmasse
-  name: grafana-config
-data:
-  datasource.yaml: |
-    apiVersion: 1
-    datasources:
-    - name: Prometheus
-      type: prometheus
-      access: proxy
-      url: http://prometheus-k8s:9090
-      jsonData:
-        timeInterval: 60s
-    - name: AlertManager
-      type: camptocamp-prometheus-alertmanager-datasource
-      url: http://alertmanager-main:9093
-      access: proxy
-      jsonData:
-        timeInterval: 60s
-        severity_critical: "4"
-        severity_high: "3"
-        severity_warning: "2"
-        severity_info: "1"
-      editable: true
-  dashboard.yaml: |
-    apiVersion: 1
-    providers:
-    - name: 'EnMasse'
-      org_id: 1
-      folder: ''
-      type: 'file'
-      options:
-        path: '/etc/grafana/dashboards'
diff --git a/templates/grafana/010-GrafanaDashboard-brokers.yaml b/templates/grafana/010-GrafanaDashboard-brokers.yaml
new file mode 100644
index 000000000..c8c2ef02f
--- /dev/null
+++ b/templates/grafana/010-GrafanaDashboard-brokers.yaml
@@ -0,0 +1,514 @@
+apiVersion: integreatly.org/v1alpha1
+kind: GrafanaDashboard
+metadata:
+  labels:
+    app: enmasse
+  name: enmasse-brokers
+spec:
+  name: enmasse-brokers.json
+  json: |
+    {
+      "annotations": {
+        "list": [
+          {
+            "builtIn": 1,
+            "datasource": "-- Grafana --",
+            "enable": true,
+            "hide": true,
+            "iconColor": "rgba(0, 211, 255, 1)",
+            "name": "Annotations & Alerts",
+            "type": "dashboard"
+          }
+        ]
+      },
+      "editable": true,
+      "gnetId": null,
+      "graphTooltip": 0,
+      "id": 2,
+      "iteration": 1554326761704,
+      "links": [],
+      "panels": [
+        {
+          "collapsed": false,
+          "gridPos": {
+            "h": 1,
+            "w": 24,
+            "x": 0,
+            "y": 0
+          },
+          "id": 14,
+          "panels": [],
+          "title": "Number of Brokers",
+          "type": "row"
+        },
+        {
+          "cacheTimeout": null,
+          "colorBackground": false,
+          "colorValue": false,
+          "colors": [
+            "#299c46",
+            "rgba(237, 129, 40, 0.89)",
+            "#d44a3a"
+          ],
+          "datasource": "Prometheus",
+          "format": "none",
+          "gauge": {
+            "maxValue": 100,
+            "minValue": 0,
+            "show": false,
+            "thresholdLabels": false,
+            "thresholdMarkers": true
+          },
+          "gridPos": {
+            "h": 4,
+            "w": 7,
+            "x": 0,
+            "y": 1
+          },
+          "id": 6,
+          "interval": null,
+          "links": [],
+          "mappingType": 1,
+          "mappingTypes": [
+            {
+              "name": "value to text",
+              "value": 1
+            },
+            {
+              "name": "range to text",
+              "value": 2
+            }
+          ],
+          "maxDataPoints": 100,
+          "nullPointMode": "connected",
+          "nullText": null,
+          "postfix": "",
+          "postfixFontSize": "50%",
+          "prefix": "",
+          "prefixFontSize": "50%",
+          "rangeMaps": [
+            {
+              "from": "null",
+              "text": "N/A",
+              "to": "null"
+            }
+          ],
+          "sparkline": {
+            "fillColor": "rgba(31, 118, 189, 0.18)",
+            "full": false,
+            "lineColor": "rgb(31, 120, 193)",
+            "show": false
+          },
+          "tableColumn": "",
+          "targets": [
+            {
+              "expr": "sum(up{pod=~\"broker.+\"})",
+              "format": "time_series",
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": "",
+          "title": "Brokers",
+          "type": "singlestat",
+          "valueFontSize": "80%",
+          "valueMaps": [
+            {
+              "op": "=",
+              "text": "N/A",
+              "value": "null"
+            }
+          ],
+          "valueName": "avg"
+        },
+        {
+          "collapsed": false,
+          "gridPos": {
+            "h": 1,
+            "w": 24,
+            "x": 0,
+            "y": 5
+          },
+          "id": 10,
+          "panels": [],
+          "title": "Metrics",
+          "type": "row"
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 9,
+            "w": 8,
+            "x": 0,
+            "y": 6
+          },
+          "id": 16,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "minSpan": 8,
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "repeat": "broker_metrics",
+          "repeatDirection": "h",
+          "scopedVars": {
+            "broker_metrics": {
+              "selected": true,
+              "text": "artemis_connection_count",
+              "value": "artemis_connection_count"
+            }
+          },
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "$broker_metrics{pod=~\"[[broker]]\"}",
+              "format": "time_series",
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "$broker_metrics",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 9,
+            "w": 8,
+            "x": 8,
+            "y": 6
+          },
+          "id": 17,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "minSpan": 8,
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "repeat": null,
+          "repeatDirection": "h",
+          "repeatIteration": 1554326761704,
+          "repeatPanelId": 16,
+          "scopedVars": {
+            "broker_metrics": {
+              "selected": true,
+              "text": "artemis_consumer_count",
+              "value": "artemis_consumer_count"
+            }
+          },
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "$broker_metrics{pod=~\"[[broker]]\"}",
+              "format": "time_series",
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "$broker_metrics",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 9,
+            "w": 8,
+            "x": 16,
+            "y": 6
+          },
+          "id": 18,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "minSpan": 8,
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "repeat": null,
+          "repeatDirection": "h",
+          "repeatIteration": 1554326761704,
+          "repeatPanelId": 16,
+          "scopedVars": {
+            "broker_metrics": {
+              "selected": true,
+              "text": "artemis_message_count",
+              "value": "artemis_message_count"
+            }
+          },
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "$broker_metrics{pod=~\"[[broker]]\"}",
+              "format": "time_series",
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "$broker_metrics",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        }
+      ],
+      "refresh": "1m",
+      "schemaVersion": 16,
+      "style": "dark",
+      "tags": [],
+      "templating": {
+        "list": [
+          {
+            "allValue": null,
+            "current": {
+              "text": "All",
+              "value": "$__all"
+            },
+            "datasource": "Prometheus",
+            "hide": 0,
+            "includeAll": true,
+            "label": "broker",
+            "multi": false,
+            "name": "broker",
+            "options": [],
+            "query": "label_values(pod)",
+            "refresh": 2,
+            "regex": "broker.+",
+            "skipUrlSync": false,
+            "sort": 0,
+            "tagValuesQuery": "",
+            "tags": [],
+            "tagsQuery": "",
+            "type": "query",
+            "useTags": false
+          },
+          {
+            "allValue": null,
+            "current": {
+              "text": "artemis_connection_count + artemis_consumer_count + artemis_message_count",
+              "value": [
+                "artemis_connection_count",
+                "artemis_consumer_count",
+                "artemis_message_count"
+              ]
+            },
+            "datasource": "Prometheus",
+            "hide": 0,
+            "includeAll": true,
+            "label": "broker_metrics",
+            "multi": true,
+            "name": "broker_metrics",
+            "options": [],
+            "query": "metrics(artemis.*)",
+            "refresh": 1,
+            "regex": "",
+            "skipUrlSync": false,
+            "sort": 0,
+            "tagValuesQuery": "",
+            "tags": [],
+            "tagsQuery": "",
+            "type": "query",
+            "useTags": false
+          }
+        ]
+      },
+      "time": {
+        "from": "now-1h",
+        "to": "now"
+      },
+      "timepicker": {
+        "refresh_intervals": [
+          "5s",
+          "10s",
+          "30s",
+          "1m",
+          "5m",
+          "15m",
+          "30m",
+          "1h",
+          "2h",
+          "1d"
+        ],
+        "time_options": [
+          "5m",
+          "15m",
+          "1h",
+          "6h",
+          "12h",
+          "24h",
+          "2d",
+          "7d",
+          "30d"
+        ]
+      },
+      "timezone": "",
+      "title": "Brokers",
+      "uid": "CfCWuJ6mz",
+      "version": 7
+    }
\ No newline at end of file
diff --git a/templates/grafana/010-ConfigMap-grafana-dashboards.yaml b/templates/grafana/010-GrafanaDashboard-components.yaml
similarity index 98%
rename from templates/grafana/010-ConfigMap-grafana-dashboards.yaml
rename to templates/grafana/010-GrafanaDashboard-components.yaml
index 92eb4bc71..10963abda 100644
--- a/templates/grafana/010-ConfigMap-grafana-dashboards.yaml
+++ b/templates/grafana/010-GrafanaDashboard-components.yaml
@@ -1,11 +1,12 @@
-apiVersion: v1
-kind: ConfigMap
+apiVersion: integreatly.org/v1alpha1
+kind: GrafanaDashboard
 metadata:
   labels:
     app: enmasse
-  name: grafana-dashboards
-data:
-  dashboard.json: |
+  name: enmasse-components
+spec:
+  name: enmasse-components.json
+  json: |
     {
       "annotations": {
         "list": [
@@ -23,12 +24,12 @@ data:
       "editable": true,
       "gnetId": null,
       "graphTooltip": 0,
-      "iteration": 1551910554391,
+      "iteration": 1554464978066,
       "links": [],
       "panels": [
         {
           "columns": [],
-          "datasource": "AlertManager",
+          "datasource": "Prometheus",
           "description": "",
           "fontSize": "100%",
           "gridPos": {
@@ -151,7 +152,10 @@ data:
           "targets": [
             {
               "annotations": false,
-              "expr": "",
+              "expr": "ALERTS",
+              "format": "table",
+              "instant": true,
+              "intervalFactor": 1,
               "labelSelector": "*",
               "legendFormat": "",
               "refId": "A",
@@ -822,5 +826,5 @@ data:
       "timezone": "",
       "title": "EnMasse",
       "uid": "-9RKOzbmk",
-      "version": 4
+      "version": 1
     }
\ No newline at end of file
diff --git a/templates/grafana/010-GrafanaDashboard-routers.yaml b/templates/grafana/010-GrafanaDashboard-routers.yaml
new file mode 100644
index 000000000..7157fd94c
--- /dev/null
+++ b/templates/grafana/010-GrafanaDashboard-routers.yaml
@@ -0,0 +1,1561 @@
+apiVersion: integreatly.org/v1alpha1
+kind: GrafanaDashboard
+metadata:
+  labels:
+    app: enmasse
+  name: enmasse-routers
+spec:
+  name: enmasse-routers.json
+  json: |
+    {
+      "annotations": {
+        "list": [
+          {
+            "builtIn": 1,
+            "datasource": "-- Grafana --",
+            "enable": true,
+            "hide": true,
+            "iconColor": "rgba(0, 211, 255, 1)",
+            "name": "Annotations & Alerts",
+            "type": "dashboard"
+          }
+        ]
+      },
+      "editable": true,
+      "gnetId": null,
+      "graphTooltip": 0,
+      "id": 2,
+      "iteration": 1554463529150,
+      "links": [],
+      "panels": [
+        {
+          "collapsed": false,
+          "gridPos": {
+            "h": 1,
+            "w": 24,
+            "x": 0,
+            "y": 0
+          },
+          "id": 4,
+          "panels": [],
+          "title": "Row title",
+          "type": "row"
+        },
+        {
+          "columns": [],
+          "datasource": "Prometheus",
+          "fontSize": "100%",
+          "gridPos": {
+            "h": 5,
+            "w": 24,
+            "x": 0,
+            "y": 1
+          },
+          "id": 2,
+          "links": [],
+          "pageSize": null,
+          "scroll": true,
+          "showHeader": true,
+          "sort": {
+            "col": 0,
+            "desc": true
+          },
+          "styles": [
+            {
+              "alias": "Time",
+              "dateFormat": "YYYY-MM-DD HH:mm:ss",
+              "pattern": "Time",
+              "type": "date"
+            },
+            {
+              "alias": "# of Routers",
+              "colorMode": null,
+              "colors": [
+                "rgba(245, 54, 54, 0.9)",
+                "rgba(237, 129, 40, 0.89)",
+                "rgba(50, 172, 45, 0.97)"
+              ],
+              "dateFormat": "YYYY-MM-DD HH:mm:ss",
+              "decimals": 2,
+              "mappingType": 1,
+              "pattern": "Value",
+              "thresholds": [],
+              "type": "number",
+              "unit": "short"
+            },
+            {
+              "alias": "",
+              "colorMode": null,
+              "colors": [
+                "rgba(245, 54, 54, 0.9)",
+                "rgba(237, 129, 40, 0.89)",
+                "rgba(50, 172, 45, 0.97)"
+              ],
+              "decimals": 2,
+              "pattern": "/.*/",
+              "thresholds": [],
+              "type": "number",
+              "unit": "short"
+            }
+          ],
+          "targets": [
+            {
+              "expr": "sum(up{pod=~\"qdrouterd.+\"}) by (job)",
+              "format": "table",
+              "instant": true,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "title": "Routers",
+          "transform": "table",
+          "type": "table"
+        },
+        {
+          "collapsed": false,
+          "gridPos": {
+            "h": 1,
+            "w": 24,
+            "x": 0,
+            "y": 6
+          },
+          "id": 6,
+          "panels": [],
+          "title": "Metrics",
+          "type": "row"
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 8,
+            "x": 0,
+            "y": 7
+          },
+          "id": 8,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "connections{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Connections",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 8,
+            "x": 8,
+            "y": 7
+          },
+          "id": 10,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "links{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Links",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 8,
+            "x": 16,
+            "y": 7
+          },
+          "id": 9,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "addresses{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Addresses",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 12,
+            "x": 0,
+            "y": 14
+          },
+          "id": 12,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "auto_links{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Auto Links",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 12,
+            "x": 12,
+            "y": 14
+          },
+          "id": 11,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "link_routes{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Link Routes",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 0,
+            "y": 21
+          },
+          "id": 13,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "presettled_deliveries{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Presettled Deliveries",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 6,
+            "y": 21
+          },
+          "id": 14,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "dropped_presettled_deliveries{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Dropped Presettled Deliveries",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 12,
+            "y": 21
+          },
+          "id": 17,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "accepted_deliveries{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Accepted Deliveries",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 18,
+            "y": 21
+          },
+          "id": 18,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "released_deliveries{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Released Deliveries",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 0,
+            "y": 28
+          },
+          "id": 15,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "rejected_deliveries{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Rejected Deliveries",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 6,
+            "y": 28
+          },
+          "id": 21,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "modified_deliveries{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Modified Deliveries",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 12,
+            "y": 28
+          },
+          "id": 19,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "deliveries_ingress{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Deliveries Ingress",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 18,
+            "y": 28
+          },
+          "id": 16,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "deliveries_egress{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Deliveries Egress",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 0,
+            "y": 35
+          },
+          "id": 20,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "deliveries_transit{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Deliveries Transit",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 6,
+            "y": 35
+          },
+          "id": 23,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "deliveries_ingress_route_container{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Deliveries Ingress Route Container",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "Prometheus",
+          "fill": 1,
+          "gridPos": {
+            "h": 7,
+            "w": 6,
+            "x": 12,
+            "y": 35
+          },
+          "id": 22,
+          "legend": {
+            "avg": false,
+            "current": false,
+            "max": false,
+            "min": false,
+            "show": false,
+            "total": false,
+            "values": false
+          },
+          "lines": true,
+          "linewidth": 1,
+          "links": [],
+          "nullPointMode": "null",
+          "percentage": false,
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "deliveries_egress_route_container{job=~\"[[router_set]]\",pod=~\"[[router]]\"}",
+              "format": "time_series",
+              "instant": false,
+              "intervalFactor": 1,
+              "refId": "A"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Deliveries Egress Route Container",
+          "tooltip": {
+            "shared": true,
+            "sort": 0,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        }
+      ],
+      "refresh": false,
+      "schemaVersion": 16,
+      "style": "dark",
+      "tags": [],
+      "templating": {
+        "list": [
+          {
+            "allValue": null,
+            "current": {
+              "text": "All",
+              "value": "$__all"
+            },
+            "datasource": "Prometheus",
+            "hide": 0,
+            "includeAll": true,
+            "label": "router_set",
+            "multi": true,
+            "name": "router_set",
+            "options": [],
+            "query": "label_values(job)",
+            "refresh": 2,
+            "regex": "qdrouterd.+",
+            "skipUrlSync": false,
+            "sort": 0,
+            "tagValuesQuery": "",
+            "tags": [],
+            "tagsQuery": "",
+            "type": "query",
+            "useTags": false
+          },
+          {
+            "allValue": null,
+            "current": {
+              "text": "All",
+              "value": "$__all"
+            },
+            "datasource": "Prometheus",
+            "hide": 0,
+            "includeAll": true,
+            "label": "router",
+            "multi": true,
+            "name": "router",
+            "options": [],
+            "query": "label_values(pod)",
+            "refresh": 2,
+            "regex": "qdrouterd.+",
+            "skipUrlSync": false,
+            "sort": 0,
+            "tagValuesQuery": "",
+            "tags": [],
+            "tagsQuery": "",
+            "type": "query",
+            "useTags": false
+          }
+        ]
+      },
+      "time": {
+        "from": "now-15m",
+        "to": "now"
+      },
+      "timepicker": {
+        "refresh_intervals": [
+          "5s",
+          "10s",
+          "30s",
+          "1m",
+          "5m",
+          "15m",
+          "30m",
+          "1h",
+          "2h",
+          "1d"
+        ],
+        "time_options": [
+          "5m",
+          "15m",
+          "1h",
+          "6h",
+          "12h",
+          "24h",
+          "2d",
+          "7d",
+          "30d"
+        ]
+      },
+      "timezone": "",
+      "title": "Routers",
+      "uid": "ThjTOL6ik",
+      "version": 2
+    }
\ No newline at end of file
diff --git a/templates/grafana/010-Service-grafana.yaml b/templates/grafana/010-Service-grafana.yaml
deleted file mode 100644
index a6be5c357..000000000
--- a/templates/grafana/010-Service-grafana.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: enmasse
-  name: grafana
-spec:
-  ports:
-  - name: grafana
-    port: 3000
-    targetPort: 3000
-  selector:
-    name: grafana
diff --git a/templates/grafana/020-PersistentVolumeClaim-grafana-data.yaml b/templates/grafana/020-PersistentVolumeClaim-grafana-data.yaml
deleted file mode 100644
index b3cc6273e..000000000
--- a/templates/grafana/020-PersistentVolumeClaim-grafana-data.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  labels:
-    app: enmasse
-  name: grafana-data
-spec:
-  accessModes:
-  - ReadWriteOnce
-  resources:
-    requests:
-      storage: 1Gi
diff --git a/templates/grafana/030-Deployment-grafana.yaml b/templates/grafana/030-Deployment-grafana.yaml
deleted file mode 100644
index e2c3ec386..000000000
--- a/templates/grafana/030-Deployment-grafana.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  labels:
-    app: enmasse
-  name: grafana
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: enmasse
-      name: grafana
-  template:
-    metadata:
-      labels:
-        app: enmasse
-        name: grafana
-    spec:
-      affinity:
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-            - weight: 1
-              preference:
-                matchExpressions:
-                  - key: node-role.enmasse.io/operator-infra
-                    operator: In
-                    values:
-                      - "true"
-      containers:
-      - name: grafana
-        image: ${GRAFANA_IMAGE}
-        imagePullPolicy: ${IMAGE_PULL_POLICY}
-        ports:
-        - containerPort: 3000
-          name: grafana
-        volumeMounts:
-        - mountPath: /etc/grafana/provisioning
-          name: grafana-config
-          readOnly: true
-        - mountPath: /etc/grafana/dashboards
-          name: grafana-dashboards
-          readOnly: true
-        - mountPath: /usr/share/grafana/data
-          name: grafana-data
-          readOnly: false
-        env:
-        - name: GF_INSTALL_PLUGINS
-          value: "camptocamp-prometheus-alertmanager-datasource"
-        - name: GF_PATHS_DATA
-          value: /usr/share/grafana/data
-      volumes:
-      - name: grafana-config
-        configMap:
-          name: grafana-config
-          items:
-          - key: dashboard.yaml
-            path: dashboards/dashboard.yaml
-          - key: datasource.yaml
-            path: datasources/datasource.yaml
-      - name: grafana-dashboards
-        configMap:
-          name: grafana-dashboards
-      - name: grafana-data
-        persistentVolumeClaim:
-          claimName: grafana-data
diff --git a/templates/grafana/060-Route-grafana.yaml b/templates/grafana/060-Route-grafana.yaml
deleted file mode 100644
index 8e45bb1b2..000000000
--- a/templates/grafana/060-Route-grafana.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-apiVersion: v1
-kind: Route
-metadata:
-  labels:
-    app: enmasse
-  name: grafana
-spec:
-  port:
-    targetPort: grafana
-  tls:
-    termination: edge
-  to:
-    kind: Service
-    name: grafana
diff --git a/templates/kube-state-metrics/060-ServiceMonitor-kube-state-metrics.yaml b/templates/kube-state-metrics/060-ServiceMonitor-kube-state-metrics.yaml
index 553111a6d..d6c84f715 100644
--- a/templates/kube-state-metrics/060-ServiceMonitor-kube-state-metrics.yaml
+++ b/templates/kube-state-metrics/060-ServiceMonitor-kube-state-metrics.yaml
@@ -2,6 +2,7 @@ apiVersion: monitoring.coreos.com/v1
 kind: ServiceMonitor
 metadata:
   labels:
+    monitoring-key: 'middleware'
     app: enmasse
   name: kube-state-metrics
 spec:
diff --git a/templates/prometheus-rules/010-PrometheusRules-prometheus.yaml b/templates/prometheus-rules/010-PrometheusRules-prometheus.yaml
index dc0c6703a..f238b7cc9 100644
--- a/templates/prometheus-rules/010-PrometheusRules-prometheus.yaml
+++ b/templates/prometheus-rules/010-PrometheusRules-prometheus.yaml
@@ -2,6 +2,7 @@ apiVersion: monitoring.coreos.com/v1
 kind: PrometheusRule
 metadata:
   labels:
+    monitoring-key: middleware
     prometheus: k8s
     role: alert-rules
   name: prometheus-k8s-rules
diff --git a/templates/service-monitors/010-ServiceMonitor-enmasse.yaml b/templates/service-monitors/010-ServiceMonitor-enmasse.yaml
index a4c2a7ce2..4b1c46b7e 100644
--- a/templates/service-monitors/010-ServiceMonitor-enmasse.yaml
+++ b/templates/service-monitors/010-ServiceMonitor-enmasse.yaml
@@ -3,6 +3,7 @@ kind: ServiceMonitor
 metadata:
   name: enmasse
   labels:
+    monitoring-key: middleware
     app: enmasse
 spec:
   selector:


Test patch:
diff --git a/api-model/src/test/java/io/enmasse/common/model/CustomResourcesTest.java b/api-model/src/test/java/io/enmasse/common/model/CustomResourcesTest.java
new file mode 100644
index 000000000..7f8df3a66
--- /dev/null
+++ b/api-model/src/test/java/io/enmasse/common/model/CustomResourcesTest.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2019, EnMasse authors.
+ * License: Apache License 2.0 (see the file LICENSE or http://apache.org/licenses/LICENSE-2.0.html).
+ */
+package io.enmasse.common.model;
+
+import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class CustomResourcesTest {
+    @Test
+    public void testPural() {
+        CustomResourceDefinition a = CustomResources.createCustomResource("enmasse.io", "v1alpha1", "Address");
+        CustomResourceDefinition b = CustomResources.createCustomResource("enmasse.io", "v1alpha1", "Addressy");
+        CustomResourceDefinition c = CustomResources.createCustomResource("enmasse.io", "v1alpha1", "Addr");
+
+        assertEquals("addresses", a.getSpec().getNames().getPlural());
+        assertEquals("addressies", b.getSpec().getNames().getPlural());
+        assertEquals("addrs", c.getSpec().getNames().getPlural());
+    }
+}
diff --git a/api-server/src/test/java/io/enmasse/api/v1/http/HttpAddressSpaceServiceTest.java b/api-server/src/test/java/io/enmasse/api/v1/http/HttpAddressSpaceServiceTest.java
index 79acc8725..4c144867c 100644
--- a/api-server/src/test/java/io/enmasse/api/v1/http/HttpAddressSpaceServiceTest.java
+++ b/api-server/src/test/java/io/enmasse/api/v1/http/HttpAddressSpaceServiceTest.java
@@ -142,7 +142,7 @@ public class HttpAddressSpaceServiceTest {
         assertThat(response.getStatus(), is(200));
         Table data = (Table) response.getEntity();
 
-        assertThat(data.getColumnDefinitions().size(), is(6));
+        assertThat(data.getColumnDefinitions().size(), is(7));
         assertThat(data.getRows().size(), is(2));
     }
 
@@ -171,7 +171,7 @@ public class HttpAddressSpaceServiceTest {
         assertThat(response.getStatus(), is(200));
         Table data = ((Table) response.getEntity());
 
-        assertThat(data.getColumnDefinitions().size(), is(6));
+        assertThat(data.getColumnDefinitions().size(), is(7));
         assertThat(data.getRows().get(0).getObject().getMetadata().getName(), is(a1.getMetadata().getName()));
     }
 
diff --git a/api-server/src/test/java/io/enmasse/api/v1/http/HttpClusterAddressSpaceServiceTest.java b/api-server/src/test/java/io/enmasse/api/v1/http/HttpClusterAddressSpaceServiceTest.java
index 29c5cddbb..18770ede0 100644
--- a/api-server/src/test/java/io/enmasse/api/v1/http/HttpClusterAddressSpaceServiceTest.java
+++ b/api-server/src/test/java/io/enmasse/api/v1/http/HttpClusterAddressSpaceServiceTest.java
@@ -117,7 +117,7 @@ public class HttpClusterAddressSpaceServiceTest {
         assertThat(response.getStatus(), is(200));
         Table data = (Table) response.getEntity();
 
-        assertThat(data.getColumnDefinitions().size(), is(6));
+        assertThat(data.getColumnDefinitions().size(), is(7));
         assertThat(data.getRows().size(), is(2));
     }
 
diff --git a/systemtests/scripts/docker-logs.sh b/systemtests/scripts/pod-logs.sh
similarity index 76%
rename from systemtests/scripts/docker-logs.sh
rename to systemtests/scripts/pod-logs.sh
index 974678c9c..70772a56c 100755
--- a/systemtests/scripts/docker-logs.sh
+++ b/systemtests/scripts/pod-logs.sh
@@ -17,7 +17,9 @@ while [[ true ]]; do
     for POD in ${PODS}; do
         CONTAINERS=$(${CMD} get pods ${POD} -o=jsonpath='{.spec.containers[*].name}')
         for CONTAINER in ${CONTAINERS}; do
-            ${CMD} logs ${POD} --container=${CONTAINER} > ${LOG_DIR}/${POD}.${CONTAINER}.log
+            if [[ $(${CMD} logs ${POD} --container=${CONTAINER}) ]]; then
+                ${CMD} logs ${POD} --container=${CONTAINER} > ${LOG_DIR}/${POD}.${CONTAINER}.log
+            fi
         done
     done
     sleep 2
diff --git a/systemtests/scripts/run_test_component.sh b/systemtests/scripts/run_test_component.sh
index 20f573ae9..924587f9f 100755
--- a/systemtests/scripts/run_test_component.sh
+++ b/systemtests/scripts/run_test_component.sh
@@ -34,8 +34,8 @@ export KUBERNETES_NAMESPACE=${OPENSHIFT_PROJECT}
 export_required_env
 
 #start docker logging
-DOCKER_LOG_DIR="${ARTIFACTS_DIR}/docker-logs"
-${CURDIR}/docker-logs.sh ${DOCKER_LOG_DIR} ${KUBERNETES_NAMESPACE} > /dev/null 2> /dev/null &
+DOCKER_LOG_DIR="${ARTIFACTS_DIR}/pod-logs"
+${CURDIR}/pod-logs.sh ${DOCKER_LOG_DIR} ${KUBERNETES_NAMESPACE} > /dev/null 2> /dev/null &
 LOGS_PID=$!
 info "process for syncing docker logs is running with PID: ${LOGS_PID}"
 
diff --git a/systemtests/scripts/run_test_kubernetes.sh b/systemtests/scripts/run_test_kubernetes.sh
index 37361c145..ae892df8a 100755
--- a/systemtests/scripts/run_test_kubernetes.sh
+++ b/systemtests/scripts/run_test_kubernetes.sh
@@ -91,8 +91,8 @@ get_kubernetes_info ${LOG_DIR} pods default "-before"
 
 if [[ -z "${DISABLE_LOG_SYNC}" ]]; then
     #start docker logging
-    DOCKER_LOG_DIR="${ARTIFACTS_DIR}/docker-logs"
-    ${CURDIR}/docker-logs.sh ${DOCKER_LOG_DIR} ${KUBERNETES_NAMESPACE} > /dev/null 2> /dev/null &
+    DOCKER_LOG_DIR="${ARTIFACTS_DIR}/pod-logs"
+    ${CURDIR}/pod-logs.sh ${DOCKER_LOG_DIR} ${KUBERNETES_NAMESPACE} > /dev/null 2> /dev/null &
     LOGS_PID=$!
     echo "process for syncing docker logs is running with PID: ${LOGS_PID}"
 fi