diff --git a/grafana/values.yaml b/grafana/values.yaml
index 7c62ad8fc..9add9ab8f 100644
--- a/grafana/values.yaml
+++ b/grafana/values.yaml
@@ -7778,9 +7778,10 @@ conf:
           id: 24
           interval: "> 60s"
           links:
-          - dashboard: Keystone
+          - dashboard: Openstack Service
             name: Drilldown dashboard
-            title: Keystone
+            params: var-Service=keystone
+            title: Openstack Service
             type: dashboard
           mappingType: 1
           mappingTypes:
@@ -7809,8 +7810,7 @@ conf:
           targets:
           - column: value
             condition: ''
-            dsType: influxdb
-            expr: check_keystone_api{job="openstack-metrics", region="$region"}
+            expr: openstack_check_keystone_api{job="openstack-metrics", region="$region"}
             fill: ''
             format: time_series
             function: last
@@ -7868,9 +7868,10 @@ conf:
           id: 23
           interval: "> 60s"
           links:
-          - dashboard: Glance
+          - dashboard: Openstack Service
             name: Drilldown dashboard
-            title: Glance
+            params: var-Service=glance
+            title: Openstack Service
             type: dashboard
           mappingType: 1
           mappingTypes:
@@ -7899,8 +7900,7 @@ conf:
           targets:
           - column: value
             condition: ''
-            dsType: influxdb
-            expr: check_glance_api{job="openstack-metrics", region="$region"}
+            expr: openstack_check_glance_api{job="openstack-metrics", region="$region"}
             fill: ''
             format: time_series
             function: last
@@ -7958,9 +7958,10 @@ conf:
           id: 22
           interval: "> 60s"
           links:
-          - dashboard: Heat
+          - dashboard: Openstack Service
             name: Drilldown dashboard
-            title: Heat
+            params: var-Service=heat
+            title: Openstack Service
             type: dashboard
           mappingType: 1
           mappingTypes:
@@ -7989,8 +7990,7 @@ conf:
           targets:
           - column: value
             condition: ''
-            dsType: influxdb
-            expr: check_heat_api{job="openstack-metrics", region="$region"}
+            expr: openstack_check_heat_api{job="openstack-metrics", region="$region"}
             fill: ''
             format: time_series
             function: last
@@ -8048,9 +8048,10 @@ conf:
           id: 21
           interval: "> 60s"
           links:
-          - dashboard: Neutron
+          - dashboard: Openstack Service
             name: Drilldown dashboard
-            title: Neutron
+            params: var-Service=neutron
+            title: Openstack Service
             type: dashboard
           mappingType: 1
           mappingTypes:
@@ -8079,8 +8080,7 @@ conf:
           targets:
           - column: value
             condition: ''
-            dsType: influxdb
-            expr: check_neutron_api{job="openstack-metrics", region="$region"}
+            expr: openstack_check_neutron_api{job="openstack-metrics", region="$region"}
             fill: ''
             format: time_series
             function: last
@@ -8135,12 +8135,13 @@ conf:
             show: false
             thresholdLabels: false
             thresholdMarkers: true
-          id: 5
+          id: 20
           interval: "> 60s"
           links:
-          - dashboard: Nova
+          - dashboard: Openstack Service
             name: Drilldown dashboard
-            title: Nova
+            params: var-Service=nova
+            title: Openstack Service
             type: dashboard
           mappingType: 1
           mappingTypes:
@@ -8169,8 +8170,7 @@ conf:
           targets:
           - column: value
             condition: ''
-            dsType: influxdb
-            expr: check_nova_api{job="openstack-metrics", region="$region"}
+            expr: openstack_check_nova_api{job="openstack-metrics", region="$region"}
             fill: ''
             format: time_series
             function: last
@@ -8225,12 +8225,13 @@ conf:
             show: false
             thresholdLabels: false
             thresholdMarkers: true
-          id: 25
+          id: 19
           interval: "> 60s"
           links:
-          - dashboard: Ceph
+          - dashboard: Openstack Service
             name: Drilldown dashboard
-            title: Ceph
+            params: var-Service=swift
+            title: Openstack Service
             type: dashboard
           mappingType: 1
           mappingTypes:
@@ -8259,8 +8260,7 @@ conf:
           targets:
           - column: value
             condition: ''
-            dsType: influxdb
-            expr: check_swift_api{job="openstack-metrics", region="$region"}
+            expr: openstack_check_swift_api{job="openstack-metrics", region="$region"}
             fill: ''
             format: time_series
             function: last
@@ -8298,39 +8298,30 @@ conf:
             text: UNKW
             value: '2'
           valueName: current
-        - content: ''
-          editable: true
-          error: false
-          id: 20
-          links: []
-          mode: markdown
-          span: 1
-          style: {}
-          title: ''
-          type: text
         - cacheTimeout:
           colorBackground: true
           colorValue: false
           colors:
-          - rgba(71, 212, 59, 0.4)
-          - rgba(245, 150, 40, 0.73)
-          - rgba(225, 40, 40, 0.59)
+          - rgba(200, 54, 35, 0.88)
+          - rgba(118, 245, 40, 0.73)
+          - rgba(225, 177, 40, 0.59)
           datasource: prometheus
           editable: true
           error: false
-          format: short
+          format: none
           gauge:
             maxValue: 100
             minValue: 0
             show: false
             thresholdLabels: false
             thresholdMarkers: true
-          id: 16
-          interval: ">60s"
+          id: 18
+          interval: "> 60s"
           links:
-          - dashboard: RabbitMQ
+          - dashboard: Openstack Service
             name: Drilldown dashboard
-            title: RabbitMQ
+            params: var-Service=cinder
+            title: Openstack Service
             type: dashboard
           mappingType: 1
           mappingTypes:
@@ -8358,8 +8349,8 @@ conf:
           tableColumn: ''
           targets:
           - column: value
-            dsType: influxdb
-            expr: ''
+            condition: ''
+            expr: openstack_check_cinder_api{job="openstack-metrics", region="$region"}
             fill: ''
             format: time_series
             function: last
@@ -8371,13 +8362,194 @@ conf:
               - 'null'
               type: fill
             groupByTags: []
+            groupby_field: ''
             interval: ''
             intervalFactor: 2
             policy: default
             rawQuery: false
             refId: A
             resultFormat: time_series
-          thresholds: ''
+            step: 120
+          thresholds: '1,2'
+          title: Cinder
+          type: singlestat
+          valueFontSize: 50%
+          valueMaps:
+          - op: "="
+            text: no data
+            value: 'null'
+          - op: "="
+            text: CRIT
+            value: '0'
+          - op: "="
+            text: OK
+            value: '1'
+          - op: "="
+            text: UNKW
+            value: '2'
+          valueName: current
+        - cacheTimeout:
+          colorBackground: true
+          colorValue: false
+          colors:
+          - rgba(200, 54, 35, 0.88)
+          - rgba(118, 245, 40, 0.73)
+          - rgba(225, 177, 40, 0.59)
+          datasource: prometheus
+          editable: true
+          error: false
+          format: none
+          gauge:
+            maxValue: 100
+            minValue: 0
+            show: false
+            thresholdLabels: false
+            thresholdMarkers: true
+          id: 17
+          interval: "> 60s"
+          links:
+          - dashboard: Openstack Service
+            name: Drilldown dashboard
+            params: var-Service=placement
+            title: Openstack Service
+            type: dashboard
+          mappingType: 1
+          mappingTypes:
+          - name: value to text
+            value: 1
+          - name: range to text
+            value: 2
+          maxDataPoints: 100
+          nullPointMode: connected
+          nullText:
+          postfix: ''
+          postfixFontSize: 50%
+          prefix: ''
+          prefixFontSize: 50%
+          rangeMaps:
+          - from: 'null'
+            text: N/A
+            to: 'null'
+          span: 1
+          sparkline:
+            fillColor: rgba(31, 118, 189, 0.18)
+            full: false
+            lineColor: rgb(31, 120, 193)
+            show: false
+          tableColumn: ''
+          targets:
+          - column: value
+            condition: ''
+            expr: openstack_check_placement_api{job="openstack-metrics", region="$region"}
+            fill: ''
+            format: time_series
+            function: last
+            groupBy:
+            - params:
+              - "$interval"
+              type: time
+            - params:
+              - 'null'
+              type: fill
+            groupByTags: []
+            groupby_field: ''
+            interval: ''
+            intervalFactor: 2
+            policy: default
+            rawQuery: false
+            refId: A
+            resultFormat: time_series
+            step: 120
+          thresholds: '1,2'
+          title: Placement
+          type: singlestat
+          valueFontSize: 50%
+          valueMaps:
+          - op: "="
+            text: no data
+            value: 'null'
+          - op: "="
+            text: CRIT
+            value: '0'
+          - op: "="
+            text: OK
+            value: '1'
+          - op: "="
+            text: UNKW
+            value: '2'
+          valueName: current
+        - cacheTimeout:
+          colorBackground: true
+          colorValue: false
+          colors:
+          - rgba(208, 53, 34, 0.82)
+          - rgba(118, 245, 40, 0.73)
+          - rgba(225, 177, 40, 0.59)
+          datasource: prometheus
+          editable: true
+          error: false
+          format: none
+          gauge:
+            maxValue: 100
+            minValue: 0
+            show: false
+            thresholdLabels: false
+            thresholdMarkers: true
+          id: 16
+          interval: "> 60s"
+          links:
+          - dashboard: RabbitMQ Metrics
+            name: Drilldown dashboard
+            title: RabbitMQ Metrics
+            type: dashboard
+          mappingType: 1
+          mappingTypes:
+          - name: value to text
+            value: 1
+          - name: range to text
+            value: 2
+          maxDataPoints: 100
+          nullPointMode: connected
+          nullText:
+          postfix: ''
+          postfixFontSize: 50%
+          prefix: ''
+          prefixFontSize: 50%
+          rangeMaps:
+          - from: 'null'
+            text: N/A
+            to: 'null'
+          span: 1
+          sparkline:
+            fillColor: rgba(31, 118, 189, 0.18)
+            full: false
+            lineColor: rgb(31, 120, 193)
+            show: false
+          tableColumn: ''
+          targets:
+          - column: value
+            condition: ''
+            expr: min(rabbitmq_up)
+            fill: ''
+            format: time_series
+            function: last
+            groupBy:
+            - params:
+              - "$interval"
+              type: time
+            - params:
+              - 'null'
+              type: fill
+            groupByTags: []
+            groupby_field: ''
+            interval: ''
+            intervalFactor: 2
+            policy: default
+            rawQuery: false
+            refId: A
+            resultFormat: time_series
+            step: 120
+          thresholds: '1,2'
           title: RabbitMQ
           type: singlestat
           valueFontSize: 50%
@@ -8386,32 +8558,26 @@ conf:
             text: no data
             value: 'null'
           - op: "="
-            text: OKAY
+            text: CRIT
             value: '0'
           - op: "="
-            text: WARN
+            text: OK
             value: '1'
           - op: "="
             text: UNKW
             value: '2'
-          - op: "="
-            text: CRIT
-            value: '3'
-          - op: "="
-            text: DOWN
-            value: '4'
           valueName: current
         - cacheTimeout:
           colorBackground: true
           colorValue: false
           colors:
-          - rgba(71, 212, 59, 0.4)
-          - rgba(245, 150, 40, 0.73)
-          - rgba(225, 40, 40, 0.59)
+          - rgba(208, 53, 34, 0.82)
+          - rgba(118, 245, 40, 0.73)
+          - rgba(225, 177, 40, 0.59)
           datasource: prometheus
           editable: true
           error: false
-          format: short
+          format: none
           gauge:
             maxValue: 100
             minValue: 0
@@ -8419,12 +8585,7 @@ conf:
             thresholdLabels: false
             thresholdMarkers: true
           id: 15
-          interval: ">60s"
-          links:
-          - dashboard: MySQL
-            name: Drilldown dashboard
-            title: MySQL
-            type: dashboard
+          interval: "> 60s"
           mappingType: 1
           mappingTypes:
           - name: value to text
@@ -8451,8 +8612,10 @@ conf:
           tableColumn: ''
           targets:
           - column: value
-            dsType: influxdb
+            condition: ''
+            expr: min(mysql_global_status_wsrep_ready)
             fill: ''
+            format: time_series
             function: last
             groupBy:
             - params:
@@ -8462,13 +8625,16 @@ conf:
               - 'null'
               type: fill
             groupByTags: []
+            groupby_field: ''
             interval: ''
+            intervalFactor: 2
             policy: default
             rawQuery: false
             refId: A
             resultFormat: time_series
-          thresholds: ''
-          title: MySQL
+            step: 120
+          thresholds: '1,2'
+          title: MariaDB
           type: singlestat
           valueFontSize: 50%
           valueMaps:
@@ -8476,47 +8642,40 @@ conf:
             text: no data
             value: 'null'
           - op: "="
-            text: OKAY
+            text: CRIT
             value: '0'
           - op: "="
-            text: WARN
+            text: OK
             value: '1'
           - op: "="
             text: UNKW
             value: '2'
-          - op: "="
-            text: CRIT
-            value: '3'
-          - op: "="
-            text: DOWN
-            value: '4'
           valueName: current
         - cacheTimeout:
           colorBackground: true
           colorValue: false
           colors:
-          - rgba(71, 212, 59, 0.4)
-          - rgba(245, 150, 40, 0.73)
-          - rgba(225, 40, 40, 0.59)
+          - rgba(225, 177, 40, 0.59)
+          - rgba(208, 53, 34, 0.82)
+          - rgba(118, 245, 40, 0.73)
           datasource: prometheus
           editable: true
           error: false
-          format: short
+          format: none
           gauge:
             maxValue: 100
             minValue: 0
             show: false
             thresholdLabels: false
             thresholdMarkers: true
-          id: 18
-          interval: ">60s"
+          id: 14
+          interval: "> 60s"
           links:
-          - dashUri: db/apache
-            dashboard: Apache
+          - dashboard: Nginx Stats
             name: Drilldown dashboard
-            title: Apache
+            title: Nginx Stats
             type: dashboard
-          mappingType: 1
+          mappingType: 2
           mappingTypes:
           - name: value to text
             value: 1
@@ -8530,9 +8689,12 @@ conf:
           prefix: ''
           prefixFontSize: 50%
           rangeMaps:
-          - from: 'null'
-            text: N/A
-            to: 'null'
+          - from: '1'
+            text: OK
+            to: '99999999999999'
+          - from: '0'
+            text: CRIT
+            to: '0'
           span: 1
           sparkline:
             fillColor: rgba(31, 118, 189, 0.18)
@@ -8542,8 +8704,10 @@ conf:
           tableColumn: ''
           targets:
           - column: value
-            dsType: influxdb
+            condition: ''
+            expr: sum_over_time(nginx_connections_total{type="active", namespace="openstack"}[5m])
             fill: ''
+            format: time_series
             function: last
             groupBy:
             - params:
@@ -8553,148 +8717,40 @@ conf:
               - 'null'
               type: fill
             groupByTags: []
+            groupby_field: ''
             interval: ''
+            intervalFactor: 2
             policy: default
             rawQuery: false
             refId: A
             resultFormat: time_series
-          thresholds: ''
-          title: Apache
+            step: 120
+          thresholds: '0,1'
+          title: Nginx
           type: singlestat
           valueFontSize: 50%
-          valueMaps:
-          - op: "="
-            text: no data
-            value: 'null'
-          - op: "="
-            text: OKAY
-            value: '0'
-          - op: "="
-            text: WARN
-            value: '1'
-          - op: "="
-            text: UNKW
-            value: '2'
-          - op: "="
-            text: CRIT
-            value: '3'
-          - op: "="
-            text: DOWN
-            value: '4'
           valueName: current
         - cacheTimeout:
           colorBackground: true
           colorValue: false
           colors:
-          - rgba(71, 212, 59, 0.4)
-          - rgba(245, 150, 40, 0.73)
-          - rgba(225, 40, 40, 0.59)
+          - rgba(208, 53, 34, 0.82)
+          - rgba(118, 245, 40, 0.73)
+          - rgba(225, 177, 40, 0.59)
           datasource: prometheus
           editable: true
           error: false
-          format: short
+          format: none
           gauge:
             maxValue: 100
             minValue: 0
             show: false
             thresholdLabels: false
             thresholdMarkers: true
-          id: 10
-          interval: ">60s"
+          id: 13
+          interval: "> 60s"
           links:
-          - dashUri: db/haproxy
-            dashboard: HAProxy
-            name: Drilldown dashboard
-            title: HAProxy
-            type: dashboard
-          mappingType: 1
-          mappingTypes:
-          - name: value to text
-            value: 1
-          - name: range to text
-            value: 2
-          maxDataPoints: 100
-          nullPointMode: connected
-          nullText:
-          postfix: ''
-          postfixFontSize: 50%
-          prefix: ''
-          prefixFontSize: 50%
-          rangeMaps:
-          - from: 'null'
-            text: N/A
-            to: 'null'
-          span: 1
-          sparkline:
-            fillColor: rgba(31, 118, 189, 0.18)
-            full: false
-            lineColor: rgb(31, 120, 193)
-            show: false
-          tableColumn: ''
-          targets:
-          - column: value
-            dsType: influxdb
-            fill: ''
-            function: last
-            groupBy:
-            - params:
-              - "$interval"
-              type: time
-            - params:
-              - 'null'
-              type: fill
-            groupByTags: []
-            interval: ''
-            policy: default
-            rawQuery: false
-            refId: A
-            resultFormat: time_series
-          thresholds: ''
-          title: haproxy
-          type: singlestat
-          valueFontSize: 50%
-          valueMaps:
-          - op: "="
-            text: no data
-            value: 'null'
-          - op: "="
-            text: OKAY
-            value: '0'
-          - op: "="
-            text: WARN
-            value: '1'
-          - op: "="
-            text: UNKW
-            value: '2'
-          - op: "="
-            text: CRIT
-            value: '3'
-          - op: "="
-            text: DOWN
-            value: '4'
-          valueName: current
-        - cacheTimeout:
-          colorBackground: true
-          colorValue: false
-          colors:
-          - rgba(71, 212, 59, 0.4)
-          - rgba(245, 150, 40, 0.73)
-          - rgba(225, 40, 40, 0.59)
-          datasource: prometheus
-          editable: true
-          error: false
-          format: short
-          gauge:
-            maxValue: 100
-            minValue: 0
-            show: false
-            thresholdLabels: false
-            thresholdMarkers: true
-          id: 17
-          interval: ">60s"
-          links:
-          - dashUri: db/memcached
-            dashboard: Memcached
+          - dashboard: Memcached
             name: Drilldown dashboard
             title: Memcached
             type: dashboard
@@ -8724,8 +8780,10 @@ conf:
           tableColumn: ''
           targets:
           - column: value
-            dsType: influxdb
+            condition: ''
+            expr: min(memcached_up)
             fill: ''
+            format: time_series
             function: last
             groupBy:
             - params:
@@ -8735,13 +8793,16 @@ conf:
               - 'null'
               type: fill
             groupByTags: []
+            groupby_field: ''
             interval: ''
+            intervalFactor: 2
             policy: default
             rawQuery: false
             refId: A
             resultFormat: time_series
-          thresholds: ''
-          title: memcached
+            step: 120
+          thresholds: '1,2'
+          title: Memcached
           type: singlestat
           valueFontSize: 50%
           valueMaps:
@@ -8749,20 +8810,14 @@ conf:
             text: no data
             value: 'null'
           - op: "="
-            text: OKAY
+            text: CRIT
             value: '0'
           - op: "="
-            text: WARN
+            text: OK
             value: '1'
           - op: "="
             text: UNKW
             value: '2'
-          - op: "="
-            text: CRIT
-            value: '3'
-          - op: "="
-            text: DOWN
-            value: '4'
           valueName: current
         repeat:
         repeatIteration:
@@ -8780,7 +8835,7 @@ conf:
           datasource: prometheus
           editable: true
           error: false
-          fill: 0
+          fill: 1
           grid: {}
           id: 11
           interval: "> 60s"
@@ -8793,7 +8848,7 @@ conf:
             total: false
             values: false
           lines: true
-          linewidth: 1
+          linewidth: 3
           links: []
           nullPointMode: connected
           percentage: false
@@ -8808,8 +8863,7 @@ conf:
           targets:
           - alias: free
             column: value
-            dsType: influxdb
-            expr: total_used_vcpus{job="openstack-metrics", region="$region"} + total_free_vcpus{job="openstack-metrics",
+            expr: openstack_total_used_vcpus{job="openstack-metrics", region="$region"} + openstack_total_free_vcpus{job="openstack-metrics",
               region="$region"}
             format: time_series
             function: min
@@ -8829,8 +8883,7 @@ conf:
             step: 120
           - alias: used
             column: value
-            dsType: influxdb
-            expr: total_used_vcpus{job="openstack-metrics", region="$region"}
+            expr: openstack_total_used_vcpus{job="openstack-metrics", region="$region"}
             format: time_series
             function: max
             groupBy:
@@ -8881,7 +8934,7 @@ conf:
           datasource: prometheus
           editable: true
           error: false
-          fill: 0
+          fill: 1
           grid: {}
           id: 12
           interval: "> 60s"
@@ -8894,7 +8947,7 @@ conf:
             total: false
             values: false
           lines: true
-          linewidth: 1
+          linewidth: 3
           links: []
           nullPointMode: connected
           percentage: false
@@ -8909,8 +8962,7 @@ conf:
           targets:
           - alias: free
             column: value
-            dsType: influxdb
-            expr: total_used_ram_MB{job="openstack-metrics", region="$region"} + total_free_ram_MB{job="openstack-metrics",
+            expr: openstack_total_used_ram_MB{job="openstack-metrics", region="$region"} + openstack_total_free_ram_MB{job="openstack-metrics",
               region="$region"}
             format: time_series
             function: mean
@@ -8930,8 +8982,7 @@ conf:
             step: 120
           - alias: used
             column: value
-            dsType: influxdb
-            expr: total_used_ram_MB{job="openstack-metrics", region="$region"}
+            expr: openstack_total_used_ram_MB{job="openstack-metrics", region="$region"}
             format: time_series
             function: mean
             groupBy:
@@ -8984,7 +9035,7 @@ conf:
           datasource: prometheus
           editable: true
           error: false
-          fill: 0
+          fill: 1
           grid: {}
           id: 13
           interval: "> 60s"
@@ -8997,7 +9048,7 @@ conf:
             total: false
             values: false
           lines: true
-          linewidth: 1
+          linewidth: 3
           links: []
           nullPointMode: connected
           percentage: false
@@ -9012,8 +9063,7 @@ conf:
           targets:
           - alias: free
             column: value
-            dsType: influxdb
-            expr: total_used_disk_GB{job="openstack-metrics", region="$region"} + total_free_disk_GB{job="openstack-metrics",
+            expr: openstack_total_used_disk_GB{job="openstack-metrics", region="$region"} + openstack_total_free_disk_GB{job="openstack-metrics",
               region="$region"}
             format: time_series
             function: mean
@@ -9033,8 +9083,7 @@ conf:
             step: 120
           - alias: used
             column: value
-            dsType: influxdb
-            expr: total_used_disk_GB{job="openstack-metrics", region="$region"}
+            expr: openstack_total_used_disk_GB{job="openstack-metrics", region="$region"}
             format: time_series
             function: mean
             groupBy:
@@ -9082,7 +9131,7 @@ conf:
         repeatIteration:
         repeatRowId:
         showTitle: true
-        title: Virtual compute resources
+        title: Virtual resources
         titleSize: h6
       schemaVersion: 14
       style: dark
@@ -9746,3 +9795,498 @@ conf:
       timezone: browser
       title: Nginx Stats
       version: 13
+    openstack-service:
+      __inputs:
+      - name: prometheus
+        label: prometheus
+        description: ''
+        type: datasource
+        pluginId: prometheus
+        pluginName: Prometheus
+      __requires:
+      - type: grafana
+        id: grafana
+        name: Grafana
+        version: 4.5.2
+      - type: panel
+        id: graph
+        name: Graph
+        version: ''
+      - type: datasource
+        id: prometheus
+        name: Prometheus
+        version: 1.0.0
+      - type: panel
+        id: singlestat
+        name: Singlestat
+        version: ''
+      annotations:
+        enable: true
+        list: []
+      editable: true
+      gnetId:
+      graphTooltip: 1
+      hideControls: false
+      id:
+      links: []
+      refresh: 1m
+      rows:
+      - collapse: false
+        height: 250px
+        panels:
+        - cacheTimeout:
+          colorBackground: true
+          colorValue: false
+          colors:
+          - rgba(225, 177, 40, 0.59)
+          - rgba(200, 54, 35, 0.88)
+          - rgba(118, 245, 40, 0.73)
+          datasource: "prometheus"
+          editable: true
+          error: false
+          format: none
+          gauge:
+            maxValue: 100
+            minValue: 0
+            show: false
+            thresholdLabels: false
+            thresholdMarkers: true
+          id: 6
+          interval: "> 60s"
+          links: []
+          mappingType: 1
+          mappingTypes:
+          - name: value to text
+            value: 1
+          - name: range to text
+            value: 2
+          maxDataPoints: 100
+          nullPointMode: connected
+          nullText:
+          postfix: ''
+          postfixFontSize: 50%
+          prefix: ''
+          prefixFontSize: 50%
+          rangeMaps:
+          - from: 'null'
+            text: N/A
+            to: 'null'
+          span: 2
+          sparkline:
+            fillColor: rgba(31, 118, 189, 0.18)
+            full: false
+            lineColor: rgb(31, 120, 193)
+            show: false
+          tableColumn: ''
+          targets:
+          - column: value
+            condition: ''
+            expr: openstack_check_[[Service]]_api{job="openstack-metrics"}
+            fill: ''
+            format: time_series
+            function: last
+            groupBy:
+            - params:
+              - "$interval"
+              type: time
+            - params:
+              - 'null'
+              type: fill
+            groupByTags: []
+            groupby_field: ''
+            interval: ''
+            intervalFactor: 2
+            policy: default
+            rawQuery: false
+            refId: A
+            resultFormat: time_series
+            step: 120
+          thresholds: '0,1'
+          title: ''
+          type: singlestat
+          valueFontSize: 80%
+          valueMaps:
+          - op: "="
+            text: CRITICAL
+            value: '0'
+          - op: "="
+            text: OK
+            value: '1'
+          valueName: current
+        - cacheTimeout:
+          colorBackground: false
+          colorValue: false
+          colors:
+          - rgba(200, 54, 35, 0.88)
+          - rgba(118, 245, 40, 0.73)
+          - rgba(225, 177, 40, 0.59)
+          datasource: "prometheus"
+          editable: true
+          error: false
+          format: none
+          gauge:
+            maxValue: 100
+            minValue: 0
+            show: false
+            thresholdLabels: false
+            thresholdMarkers: true
+          id: 13
+          interval: "> 60s"
+          links: []
+          mappingType: 1
+          mappingTypes:
+          - name: value to text
+            value: 1
+          - name: range to text
+            value: 2
+          maxDataPoints: 100
+          nullPointMode: connected
+          nullText:
+          postfix: ''
+          postfixFontSize: 50%
+          prefix: ''
+          prefixFontSize: 50%
+          rangeMaps:
+          - from: 'null'
+            text: N/A
+            to: 'null'
+          span: 2
+          sparkline:
+            fillColor: rgba(31, 118, 189, 0.18)
+            full: false
+            lineColor: rgb(31, 120, 193)
+            show: true
+          tableColumn: ''
+          targets:
+          - column: value
+            condition: ''
+            expr: sum(nginx_responses_total{server_zone=~"[[Service]].*", status_code="5xx"})
+            fill: ''
+            format: time_series
+            function: count
+            groupBy:
+            - interval: auto
+              params:
+              - auto
+              type: time
+            - params:
+              - '0'
+              type: fill
+            groupby_field: ''
+            interval: ''
+            intervalFactor: 2
+            policy: default
+            rawQuery: false
+            refId: A
+            resultFormat: time_series
+            step: 120
+            tags: []
+          thresholds: ''
+          title: HTTP 5xx errors
+          type: singlestat
+          valueFontSize: 80%
+          valueMaps:
+          - op: "="
+            text: '0'
+            value: 'null'
+          valueName: current
+        - aliasColors: {}
+          bars: false
+          dashLength: 10
+          dashes: false
+          datasource: "prometheus"
+          editable: true
+          error: false
+          fill: 0
+          grid: {}
+          id: 7
+          interval: ">60s"
+          legend:
+            alignAsTable: true
+            avg: true
+            current: false
+            max: true
+            min: true
+            show: true
+            sortDesc: true
+            total: false
+            values: true
+          lines: true
+          linewidth: 1
+          links: []
+          nullPointMode: connected
+          percentage: false
+          pointradius: 5
+          points: false
+          renderer: flot
+          seriesOverrides: []
+          spaceLength: 10
+          span: 8
+          stack: false
+          steppedLine: false
+          targets:
+          - expr: sum(nginx_upstream_response_msecs_avg{upstream=~"openstack-[[Service]].*"})
+              by (upstream)
+            format: time_series
+            intervalFactor: 2
+            refId: A
+            step: 120
+          thresholds: []
+          timeFrom:
+          timeShift:
+          title: HTTP response time
+          tooltip:
+            msResolution: false
+            shared: true
+            sort: 0
+            value_type: cumulative
+          type: graph
+          xaxis:
+            buckets:
+            mode: time
+            name:
+            show: true
+            values: []
+          yaxes:
+          - format: s
+            logBase: 1
+            max:
+            min: 0
+            show: true
+          - format: short
+            logBase: 1
+            max:
+            min: 0
+            show: true
+        - aliasColors: {}
+          bars: false
+          dashLength: 10
+          dashes: false
+          datasource: "prometheus"
+          editable: true
+          error: false
+          fill: 1
+          grid: {}
+          id: 9
+          interval: "> 60s"
+          legend:
+            avg: false
+            current: false
+            max: false
+            min: false
+            show: false
+            total: false
+            values: false
+          lines: true
+          linewidth: 2
+          links: []
+          nullPointMode: connected
+          percentage: false
+          pointradius: 5
+          points: false
+          renderer: flot
+          seriesOverrides: []
+          spaceLength: 10
+          span: 4
+          stack: false
+          steppedLine: true
+          targets:
+          - alias: healthy
+            column: value
+            expr: openstack_check_[[Service]]_api
+            format: time_series
+            function: last
+            groupBy:
+            - params:
+              - "$interval"
+              type: time
+            - params:
+              - '0'
+              type: fill
+            groupByTags: []
+            intervalFactor: 2
+            policy: default
+            rawQuery: false
+            refId: A
+            resultFormat: time_series
+            select: []
+            step: 120
+            tags: []
+          thresholds: []
+          timeFrom:
+          timeShift:
+          title: API Availability
+          tooltip:
+            msResolution: false
+            shared: false
+            sort: 0
+            value_type: cumulative
+          type: graph
+          xaxis:
+            buckets:
+            mode: time
+            name:
+            show: true
+            values: []
+          yaxes:
+          - format: none
+            label: ''
+            logBase: 1
+            max: 1
+            min: 0
+            show: false
+          - format: short
+            logBase: 1
+            max:
+            min:
+            show: false
+        - aliasColors:
+            '{status_code="2xx"}': "#629E51"
+            '{status_code="5xx"}': "#BF1B00"
+          bars: true
+          dashLength: 10
+          dashes: false
+          datasource: "prometheus"
+          editable: true
+          error: false
+          fill: 0
+          grid: {}
+          id: 8
+          interval: "> 60s"
+          legend:
+            alignAsTable: false
+            avg: false
+            current: false
+            hideEmpty: false
+            max: false
+            min: false
+            rightSide: false
+            show: true
+            total: false
+            values: false
+          lines: false
+          linewidth: 1
+          links: []
+          nullPointMode: connected
+          percentage: false
+          pointradius: 5
+          points: false
+          renderer: flot
+          seriesOverrides: []
+          spaceLength: 10
+          span: 8
+          stack: true
+          steppedLine: false
+          targets:
+          - expr: sum(nginx_responses_total{server_zone=~"[[Service]].*"}) by (status_code)
+            format: time_series
+            intervalFactor: 2
+            refId: A
+            step: 120
+          thresholds: []
+          timeFrom:
+          timeShift:
+          title: Number of HTTP responses
+          tooltip:
+            msResolution: false
+            shared: true
+            sort: 0
+            value_type: individual
+          type: graph
+          xaxis:
+            buckets:
+            mode: time
+            name:
+            show: true
+            values: []
+          yaxes:
+          - format: short
+            logBase: 1
+            max:
+            min: 0
+            show: true
+          - format: short
+            logBase: 1
+            max:
+            min:
+            show: true
+        repeat:
+        repeatIteration:
+        repeatRowId:
+        showTitle: true
+        title: Service Status
+        titleSize: h6
+      schemaVersion: 14
+      style: dark
+      tags: []
+      templating:
+        enable: true
+        list:
+        - allValue:
+          current:
+            tags: []
+            text: cinder
+            value: cinder
+          hide: 0
+          includeAll: false
+          label:
+          multi: false
+          name: Service
+          options:
+          - selected: false
+            text: nova
+            value: nova
+          - selected: false
+            text: glance
+            value: glance
+          - selected: false
+            text: keystone
+            value: keystone
+          - selected: true
+            text: cinder
+            value: cinder
+          - selected: false
+            text: heat
+            value: heat
+          - selected: false
+            text: placement
+            value: placement
+          - selected: false
+            text: neutron
+            value: neutron
+          query: nova,glance,keystone,cinder,heat,placement,neutron
+          type: custom
+      time:
+        from: now-1h
+        to: now
+      timepicker:
+        collapse: false
+        enable: true
+        notice: false
+        now: true
+        refresh_intervals:
+        - 5s
+        - 10s
+        - 30s
+        - 1m
+        - 5m
+        - 15m
+        - 30m
+        - 1h
+        - 2h
+        - 1d
+        status: Stable
+        time_options:
+        - 5m
+        - 15m
+        - 1h
+        - 6h
+        - 12h
+        - 24h
+        - 2d
+        - 7d
+        - 30d
+        type: timepicker
+      timezone: browser
+      title: Openstack Service
+      version: 4