Openstack API check improvements

- show public endpoint on the dasboard;
- switch from "name" to "service_name" label;
- replace component alerts by generic OpenstackServiceEndpointDown.

Change-Id: Icf3f6d9aa96166df8bcb7e3c89ade2df6486a84a
Related-PROD: PROD-35549
diff --git a/nova/files/grafana_dashboards/nova_overview_prometheus.json b/nova/files/grafana_dashboards/nova_overview_prometheus.json
index fbde0bd..f6bb024 100644
--- a/nova/files/grafana_dashboards/nova_overview_prometheus.json
+++ b/nova/files/grafana_dashboards/nova_overview_prometheus.json
@@ -102,14 +102,14 @@
       "tableColumn": "",
       "targets": [
         {
-          "expr": "min(openstack_api_check_status{name=\"nova\"})",
+          "expr": "openstack_api_check_status{interface=\"public\",service_name=\"nova\"}",
           "format": "time_series",
           "intervalFactor": 2,
           "refId": "A"
         }
       ],
       "thresholds": "0.5,0.5",
-      "title": "VIP API availability",
+      "title": "Public VIP API Availability",
       "type": "singlestat",
       "valueFontSize": "80%",
       "valueMaps": [
diff --git a/nova/files/grafana_dashboards/nova_prometheus.json b/nova/files/grafana_dashboards/nova_prometheus.json
index 8ec0841..5764563 100644
--- a/nova/files/grafana_dashboards/nova_prometheus.json
+++ b/nova/files/grafana_dashboards/nova_prometheus.json
@@ -72,16 +72,15 @@
           "tableColumn": "",
           "targets": [
             {
-              "expr": "min(openstack_api_check_status{service=\"nova\"})",
+              "expr": "openstack_api_check_status{interface=\"public\",service_name=\"nova\"}",
               "format": "time_series",
               "intervalFactor": 2,
-              "legendFormat": "{{ service }}",
               "refId": "A",
               "step": 60
             }
           ],
           "thresholds": "0.5,1.5",
-          "title": "API Availability",
+          "title": "Public VIP API Availability",
           "type": "singlestat",
           "valueFontSize": "80%",
           "valueMaps": [
diff --git a/nova/files/grafana_dashboards/nova_prometheus_fluentd.json b/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
index 978f951..1fd3a3a 100644
--- a/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
+++ b/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
@@ -72,16 +72,15 @@
           "tableColumn": "",
           "targets": [
             {
-              "expr": "min(openstack_api_check_status{service=\"nova\"})",
+              "expr": "openstack_api_check_status{interface=\"public\",service_name=\"nova\"}",
               "format": "time_series",
               "intervalFactor": 2,
-              "legendFormat": "{{ service }}",
               "refId": "A",
               "step": 60
             }
           ],
           "thresholds": "0.5,1.5",
-          "title": "API Availability",
+          "title": "Public VIP API Availability",
           "type": "singlestat",
           "valueFontSize": "80%",
           "valueMaps": [
diff --git a/nova/meta/grafana.yml b/nova/meta/grafana.yml
index 4561b11..0ed0b1a 100644
--- a/nova/meta/grafana.yml
+++ b/nova/meta/grafana.yml
@@ -159,4 +159,4 @@
               type: dashboard
             target:
               cluster_status:
-                expr: avg(openstack_api_check_status{service="nova"})
+                expr: openstack_api_check_status{interface="public",service_name="nova"}
diff --git a/nova/meta/prometheus.yml b/nova/meta/prometheus.yml
index 04d3384..7b03f29 100644
--- a/nova/meta/prometheus.yml
+++ b/nova/meta/prometheus.yml
@@ -274,26 +274,6 @@
   alert:
 {%- if is_controller %}
 {% raw %}
-    NovaApiOutage:
-      if: >-
-        max(openstack_api_check_status{name=~"nova.*|placement"}) == 0
-      labels:
-        severity: critical
-        service: nova
-      annotations:
-        summary: "Nova API outage"
-        description: >-
-          Nova API is not accessible for all available Nova endpoints in the OpenStack service catalog.
-    NovaApiDown:
-      if: >-
-        openstack_api_check_status{name=~"nova.*|placement"} == 0
-      labels:
-        severity: major
-        service: nova
-      annotations:
-        summary: "{{ $labels.name }} endpoint is not accessible"
-        description: >-
-          Nova API is not accessible for the {{ $labels.name }} endpoint.
     NovaApiEndpointDown:
       if: >-
         http_response_status{name=~"nova-api"} == 0