2024-10-22 10:51:51 +03:00
|
|
|
{{- if .Values.prometheus.prometheusRule.enabled }}
|
|
|
|
apiVersion: monitoring.coreos.com/v1
|
|
|
|
kind: PrometheusRule
|
|
|
|
metadata:
|
|
|
|
name: {{ template "metallb.fullname" . }}
|
|
|
|
labels:
|
|
|
|
{{- include "metallb.labels" . | nindent 4 }}
|
|
|
|
{{- if .Values.prometheus.prometheusRule.additionalLabels }}
|
|
|
|
{{ toYaml .Values.prometheus.prometheusRule.additionalLabels | indent 4 }}
|
|
|
|
{{- end }}
|
|
|
|
{{- if .Values.prometheus.prometheusRule.annotations }}
|
|
|
|
annotations:
|
|
|
|
{{ toYaml .Values.prometheus.prometheusRule.annotations | indent 4 }}
|
|
|
|
{{- end }}
|
|
|
|
spec:
|
|
|
|
groups:
|
|
|
|
- name: {{ template "metallb.fullname" . }}.rules
|
|
|
|
rules:
|
|
|
|
{{- if .Values.prometheus.prometheusRule.staleConfig.enabled }}
|
|
|
|
- alert: MetalLBStaleConfig
|
|
|
|
annotations:
|
2025-03-19 17:25:09 +02:00
|
|
|
summary: {{`'Stale config on {{ $labels.pod }}'`}}
|
|
|
|
description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has a stale config for > 1 minute'`}}
|
2024-10-22 10:51:51 +03:00
|
|
|
expr: metallb_k8s_client_config_stale_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 1
|
|
|
|
for: 1m
|
|
|
|
{{- with .Values.prometheus.prometheusRule.staleConfig.labels }}
|
|
|
|
labels:
|
|
|
|
{{- toYaml . | nindent 8 }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
{{- if .Values.prometheus.prometheusRule.configNotLoaded.enabled }}
|
|
|
|
- alert: MetalLBConfigNotLoaded
|
|
|
|
annotations:
|
2025-03-19 17:25:09 +02:00
|
|
|
summary: {{`'Config on {{ $labels.pod }} has not been loaded'`}}
|
|
|
|
description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has not loaded for > 1 minute'`}}
|
2024-10-22 10:51:51 +03:00
|
|
|
expr: metallb_k8s_client_config_loaded_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 0
|
|
|
|
for: 1m
|
|
|
|
{{- with .Values.prometheus.prometheusRule.configNotLoaded.labels }}
|
|
|
|
labels:
|
|
|
|
{{- toYaml . | nindent 8 }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
{{- if .Values.prometheus.prometheusRule.addressPoolExhausted.enabled }}
|
|
|
|
- alert: MetalLBAddressPoolExhausted
|
|
|
|
annotations:
|
2025-03-19 17:25:09 +02:00
|
|
|
summary: {{`'Exhausted address pool on {{ $labels.pod }}'`}}
|
|
|
|
description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has exhausted address pool {{ $labels.pool }} for > 1 minute'`}}
|
2024-10-22 10:51:51 +03:00
|
|
|
expr: metallb_allocator_addresses_in_use_total >= on(pool) metallb_allocator_addresses_total
|
|
|
|
for: 1m
|
|
|
|
{{- with .Values.prometheus.prometheusRule.addressPoolExhausted.labels }}
|
|
|
|
labels:
|
|
|
|
{{- toYaml . | nindent 8 }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- if .Values.prometheus.prometheusRule.addressPoolUsage.enabled }}
|
|
|
|
{{- range .Values.prometheus.prometheusRule.addressPoolUsage.thresholds }}
|
|
|
|
- alert: MetalLBAddressPoolUsage{{ .percent }}Percent
|
|
|
|
annotations:
|
2025-03-19 17:25:09 +02:00
|
|
|
summary: {{`'Exhausted address pool on {{ $labels.pod }}'`}}
|
|
|
|
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has address pool {{ $labels.pool }} past `}}{{ .percent }}{{`% usage for > 1 minute'`}}
|
2024-10-22 10:51:51 +03:00
|
|
|
expr: ( metallb_allocator_addresses_in_use_total / on(pool) metallb_allocator_addresses_total ) * 100 > {{ .percent }}
|
|
|
|
{{- with .labels }}
|
|
|
|
labels:
|
|
|
|
{{- toYaml . | nindent 8 }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
{{- if .Values.prometheus.prometheusRule.bgpSessionDown.enabled }}
|
|
|
|
- alert: MetalLBBGPSessionDown
|
|
|
|
annotations:
|
2025-03-19 17:25:09 +02:00
|
|
|
summary: {{`'BGP session down on {{ $labels.pod }}'`}}
|
|
|
|
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has BGP session {{ $labels.peer }} down for > 1 minute'`}}
|
2024-10-22 10:51:51 +03:00
|
|
|
expr: metallb_bgp_session_up{job=~"{{ template "metallb.fullname" . }}.*"} == 0
|
|
|
|
for: 1m
|
|
|
|
{{- with .Values.prometheus.prometheusRule.bgpSessionDown.labels }}
|
|
|
|
labels:
|
|
|
|
{{- toYaml . | nindent 8 }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
{{- with .Values.prometheus.prometheusRule.extraAlerts }}
|
|
|
|
{{- toYaml . | nindent 4 }}
|
|
|
|
{{- end}}
|
|
|
|
{{- end }}
|