X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/37a57aae5f41ce801a6f162e37de285761e23c46..e847b156af79e857466b8ca0f51d68ef69a6dd01:/cookbooks/prometheus/templates/default/alert_rules.yml.erb diff --git a/cookbooks/prometheus/templates/default/alert_rules.yml.erb b/cookbooks/prometheus/templates/default/alert_rules.yml.erb index 562d31046..e90c0f74e 100644 --- a/cookbooks/prometheus/templates/default/alert_rules.yml.erb +++ b/cookbooks/prometheus/templates/default/alert_rules.yml.erb @@ -8,6 +8,36 @@ groups: for: 5m labels: alertgroup: "prometheus" + - name: amsterdam + rules: + - alert: pdu current draw + expr: rPDU2PhaseStatusCurrent{site="amsterdam",rPDU2PhaseStatusIndex="1"} / 10 > 10 + for: 5m + labels: + alertgroup: "amsterdam" + annotations: + current: "{{ $value | humanize }}A" + - alert: site current draw + expr: sum(rPDU2PhaseStatusCurrent{site="amsterdam",rPDU2PhaseStatusIndex="1"} / 10) > 13 + for: 5m + labels: + alertgroup: "amsterdam" + annotations: + current: "{{ $value | humanize }}A" + - alert: site temperature + expr: min(rPDU2SensorTempHumidityStatusTempC{site="amsterdam"}) / 10 < 18 or min(rPDU2SensorTempHumidityStatusTempC{site="amsterdam"}) / 10 > 25 + for: 5m + labels: + alertgroup: "amsterdam" + annotations: + temperature: "{{ $value | humanize }}C" + - alert: site humidity + expr: max(rPDU2SensorTempHumidityStatusRelativeHumidity{site="amsterdam"}) / 100 < 0.25 or max(rPDU2SensorTempHumidityStatusRelativeHumidity{site="amsterdam"}) / 100 > 0.65 + for: 5m + labels: + alertgroup: "amsterdam" + annotations: + humidity: "{{ $value | humanizePercentage }}" - name: apache rules: - alert: apache down @@ -22,10 +52,19 @@ groups: alertgroup: "{{ $labels.instance }}" annotations: busy_workers: "{{ $value | humanizePercentage }}" + - name: chef + rules: + - alert: chef client not running + expr: time() - node_systemd_timer_last_trigger_seconds{name="chef-client.timer"} > 3600 + for: 12h + labels: + alertgroup: "{{ $labels.instance }}" + annotations: + down_time: "{{ $value | humanizeDuration }}" - name: cpu rules: - alert: cpu pressure - expr: rate(node_pressure_cpu_waiting_seconds_total[5m]) > 0.3 + expr: rate(node_pressure_cpu_waiting_seconds_total[5m]) > 0.6 for: 15m labels: alertgroup: "{{ $labels.instance }}" @@ -40,6 +79,15 @@ groups: alertgroup: database annotations: delay: "{{ $value | humanizeDuration }}" + - name: fastly + rules: + - alert: error rate + expr: sum(rate(fastly_rt_status_group_total{status_group="5xx"}[5m])) by (service_name, datacenter) / sum(rate(fastly_rt_status_group_total[5m])) by (service_name, datacenter) > 0.005 + for: 15m + labels: + alertgroup: fastly + annotations: + error_rate: "{{ $value | humanizePercentage }}" - name: filesystem rules: - alert: readonly filesystem @@ -358,15 +406,20 @@ groups: - name: systemd rules: - alert: systemd failed service - expr: node_systemd_unit_state{state="failed"} == 1 + expr: node_systemd_unit_state{state="failed",name!="chef-client.service"} == 1 for: 5m labels: alertgroup: "{{ $labels.instance }}" + - alert: systemd failed service + expr: node_systemd_unit_state{state="failed",name="chef-client.service"} == 1 + for: 6h + labels: + alertgroup: "{{ $labels.instance }}" - name: tile rules: - alert: renderd replication delay expr: renderd_replication_delay > 120 - for: 5m + for: 15m labels: alertgroup: tile annotations: @@ -401,3 +454,10 @@ groups: alertgroup: web annotations: error_rate: "{{ $value | humanizePercentage }}" + - alert: job processing rate + expr: rate(pg_stat_user_tables_n_tup_del{datname="openstreetmap",relname="delayed_jobs"}[5m]) / rate(pg_stat_user_tables_n_tup_ins{datname="openstreetmap",relname="delayed_jobs"}[5m]) < 0.9 and ignoring(job, name, datname, relname, schemaname, server) chef_role{name="db-master"} == 1 + for: 15m + labels: + alertgroup: web + annotations: + job_processing_rate: "{{ $value | humanizePercentage }}"