Fix incorrect state in Loadbalancer monitoring
Change-Id: Ib63a37d395a58591098de1ef0c0143039c027993
Closes-Bug: ATMOSPHERE-653
diff --git a/releasenotes/notes/fix-openstack-alert-OctaviaLoadBalancerNotActive-68315e228eecf7e3.yaml b/releasenotes/notes/fix-openstack-alert-OctaviaLoadBalancerNotActive-68315e228eecf7e3.yaml
new file mode 100644
index 0000000..380cfec
--- /dev/null
+++ b/releasenotes/notes/fix-openstack-alert-OctaviaLoadBalancerNotActive-68315e228eecf7e3.yaml
@@ -0,0 +1,10 @@
+---
+fixes:
+ - |
+ Improve alert generation for load balancers that have a non-``ACTIVE`` provisioning state
+ despite an ``ONLINE`` operational state. Previously, if a load balancer was in a
+ transitional state such as ``PENDING_UPDATE`` (``provisioning_state``) while still marked
+ as ``ONLINE`` (``operational_state``), the gauge metric
+ ``openstack_loadbalancer_loadbalancer_status{provisioning_status!="ACTIVE"}`` did not
+ trigger an alert. This update addresses the issue by ensuring that alerts are properly
+ generated in these scenarios.
diff --git a/roles/kube_prometheus_stack/files/jsonnet/openstack.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/openstack.libsonnet
index c8d5ac9..e70f93d 100644
--- a/roles/kube_prometheus_stack/files/jsonnet/openstack.libsonnet
+++ b/roles/kube_prometheus_stack/files/jsonnet/openstack.libsonnet
@@ -325,7 +325,7 @@
summary: 'Octavia load balancer not active',
description: 'Load balancer with ID {{ $labels.id }} stuck in non-active state for more then 15 minutes.',
},
- expr: 'openstack_loadbalancer_loadbalancer_status{provisioning_status!="ACTIVE"} > 0',
+ expr: 'count by (id,name) (openstack_loadbalancer_loadbalancer_status{provisioning_status!="ACTIVE"}) > 0',
'for': '15m',
labels: {
severity: 'P3',
diff --git a/roles/kube_prometheus_stack/files/jsonnet/tests.yml b/roles/kube_prometheus_stack/files/jsonnet/tests.yml
index 6ed198d..0665e92 100644
--- a/roles/kube_prometheus_stack/files/jsonnet/tests.yml
+++ b/roles/kube_prometheus_stack/files/jsonnet/tests.yml
@@ -188,3 +188,21 @@
exp_annotations:
summary: Percona XtraDB Cluster is down
description: All replicas are down.
+
+ - interval: 1m
+ input_series:
+ - series: 'openstack_loadbalancer_loadbalancer_status{id="d4e449ad-fad5-4d9e-a039-f71c773ec999", job="openstack-exporter", name="test-lb", operating_status="ONLINE", provisioning_status="PENDING_UPDATE"}'
+ values: '0x15'
+ - series: 'openstack_loadbalancer_loadbalancer_status{id="25dcf79f-b09d-4d0c-9e29-b69ded2ec734", job="openstack-exporter", name="test-lb-2", operating_status="ONLINE", provisioning_status="ACTIVE"}'
+ values: '0x15'
+ alert_rule_test:
+ - eval_time: 15m
+ alertname: OctaviaLoadBalancerNotActive
+ exp_alerts:
+ - exp_labels:
+ severity: P3
+ id: d4e449ad-fad5-4d9e-a039-f71c773ec999
+ name: test-lb
+ exp_annotations:
+ summary: Octavia load balancer not active
+ description: Load balancer with ID d4e449ad-fad5-4d9e-a039-f71c773ec999 stuck in non-active state for more then 15 minutes.
\ No newline at end of file