Skip to content

Commit dd870c4

Browse files
Merge pull request #1675 from rackerlabs/prometheus-monitor-ironic
feat(ironic): alert when server fails cleaning or pool exhausted
2 parents 4e5fd54 + 0d1b075 commit dd870c4

3 files changed

Lines changed: 48 additions & 0 deletions

File tree

components/ironic/kustomization.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ resources:
1717
# Graphical consoles
1818
- role-ironic-graphical-console.yaml
1919
- role-binding-ironic-graphical-console.yaml
20+
# Alerting
21+
- pr-clean-failed-servers.yaml
22+
- pr-resource-availability.yaml
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
apiVersion: monitoring.coreos.com/v1
2+
kind: PrometheusRule
3+
metadata:
4+
name: ironic-clean-failed-servers
5+
namespace: openstack
6+
spec:
7+
groups:
8+
- name: ironic.rules
9+
interval: 30s
10+
rules:
11+
- alert: IronicCleanFailedServer
12+
expr: openstack_ironic_node{provision_state="clean failed"} == 1
13+
for: 30s
14+
labels:
15+
severity: warning
16+
annotations:
17+
summary: "Ironic node {{ $labels.name }} in clean failed state"
18+
description: "Ironic node {{ $labels.name }} (ID: {{ $labels.id }}) is in 'clean failed' provision state"
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: PrometheusRule
4+
metadata:
5+
name: ironic-low-resource-availability
6+
namespace: openstack
7+
spec:
8+
groups:
9+
- name: ironic.rules
10+
interval: 30s
11+
rules:
12+
- alert: ServerPoolLowResourceAvailability
13+
expr: |
14+
label_replace(
15+
(
16+
count by (resourcetype) (openstack_placement_resource_usage == 0)
17+
/
18+
count by (resourcetype) (openstack_placement_resource_usage)
19+
) < 0.15,
20+
"resource_name", "$1", "resourcetype", "CUSTOM_(.*)"
21+
)
22+
for: 5m
23+
labels:
24+
severity: warning
25+
annotations:
26+
summary: "Server pool {{ $labels.resource_name }} nearly exhausted."
27+
description: "{{ $labels.resource_name }} server pool has only {{ $value | humanizePercentage }} available machines (threshold: 15%)."

0 commit comments

Comments
 (0)