| {%- if pillar.haproxy is defined and pillar.haproxy.proxy is defined %} |
| {%- from "haproxy/map.jinja" import proxy with context %} |
| {%- if proxy.enabled and proxy.listen is defined and proxy.listen|length > 0 %} |
| server: |
| alert: |
| HaproxyServiceDown: |
| {% raw %} |
| if: >- |
| haproxy_up != 1 |
| labels: |
| severity: minor |
| service: haproxy |
| annotations: |
| summary: "HAProxy service is down" |
| description: "The HAProxy service on the {{ $labels.host }} node is down." |
| HaproxyServiceDownMajor: |
| if: >- |
| count(label_replace(haproxy_up, "cluster", "$1", "host", "([^0-9]+).+") != 1) by (cluster) >= 0.5 * count(label_replace(haproxy_up, "cluster", "$1", "host", "([^0-9]+).+")) by (cluster) |
| labels: |
| severity: major |
| service: haproxy |
| annotations: |
| summary: "50% of HAProxy services are down" |
| description: "{{ $value }} HAProxy services within the {{ $labels.cluster }} cluster are down (at least 50%)." |
| HaproxyServiceOutage: |
| if: >- |
| count(label_replace(haproxy_up, "cluster", "$1", "host", "([^0-9]+).+") != 1) by (cluster) == count(label_replace(haproxy_up, "cluster", "$1", "host", "([^0-9]+).+")) by (cluster) |
| labels: |
| severity: critical |
| service: haproxy |
| annotations: |
| summary: "HAProxy service outage" |
| description: "All HAProxy services within the {{ $labels.cluster }} are down." |
| HaproxyHTTPResponse5xxTooHigh: |
| if: >- |
| rate(haproxy_http_response_5xx{sv="FRONTEND"}[2m]) > 1 |
| labels: |
| severity: warning |
| service: haproxy |
| annotations: |
| summary: "HTTP 5xx responses on the {{ $labels.proxy }} back end" |
| description: "The average per-second rate of 5xx HTTP errors on the {{ $labels.host }} node for the {{ $labels.proxy }} back end is {{ $value }} (as measured over the last 2 minutes)." |
| HaproxyBackendDown: |
| if: >- |
| increase(haproxy_chkdown{sv="BACKEND"}[1m]) > 0 |
| labels: |
| severity: minor |
| service: haproxy |
| annotations: |
| summary: "{{ $labels.proxy }} back end is down" |
| description: "The {{ $labels.proxy }} back end on the {{ $labels.host }} node is down." |
| HaproxyBackendDownMajor: |
| if: >- |
| max(max_over_time(haproxy_active_servers{sv="BACKEND"}[12h])) by (proxy) - min(haproxy_active_servers{sv="BACKEND"}) by (proxy) >= 0.5 * max(max_over_time(haproxy_active_servers{sv="BACKEND"}[12h])) by (proxy) |
| labels: |
| severity: major |
| service: haproxy |
| annotations: |
| summary: "50% of {{ $labels.proxy }} back ends are down" |
| description: "{{ $value }} {{ $labels.proxy }} back ends are down (at least 50%)." |
| HaproxyBackendOutage: |
| if: >- |
| max(haproxy_active_servers{sv="BACKEND"}) by (proxy) |
| + max(haproxy_backup_servers{sv="BACKEND"}) by (proxy) == 0 |
| labels: |
| severity: critical |
| service: haproxy |
| annotations: |
| summary: "{{ $labels.proxy }} back-end outage" |
| summary: "All {{ $labels.proxy }} back ends are down." |
| {% endraw %} |
| {%- endif %} |
| {%- endif %} |