diff options
Diffstat (limited to '')
| -rw-r--r-- | modules/by-name/mo/monitoring/rules.json | 386 |
1 files changed, 386 insertions, 0 deletions
diff --git a/modules/by-name/mo/monitoring/rules.json b/modules/by-name/mo/monitoring/rules.json new file mode 100644 index 0000000..8e050e6 --- /dev/null +++ b/modules/by-name/mo/monitoring/rules.json @@ -0,0 +1,386 @@ +[ + { + "uid": "f5246fa3-163f-4eae-9e1d-5b0fe2af0509", + "title": "5XX Requests Error Budgets Under 99%", + "condition": "threshold", + "data": [ + { + "refId": "A", + "queryType": "range", + "relativeTimeRange": { + "from": 21600, + "to": 0 + }, + "datasourceUid": "cd6cc53e-840c-484d-85f7-96fede324006", + "model": { + "datasource": { + "type": "loki", + "uid": "cd6cc53e-840c-484d-85f7-96fede324006" + }, + "editorMode": "code", + "expr": "(sum by(server_name) (count_over_time({unit=\"nginx.service\"} | pattern \"<_> <_> <line>\" | line_format \"{{.line}}\" | json | __error__ != \"JSONParserErr\" | status =~ \"[1234]..\" | server_name =~ \".*\" [1h])) / sum by(server_name) (count_over_time({unit=\"nginx.service\"} | pattern \"<_> <_> <line>\" | line_format \"{{.line}}\" | json | __error__ != \"JSONParserErr\" | server_name =~ \".*\" [1h])))", + "intervalMs": 1000, + "legendFormat": "{{server_name}}", + "maxDataPoints": 43200, + "queryType": "range", + "refId": "A" + } + }, + { + "refId": "last", + "relativeTimeRange": { + "from": 0, + "to": 0 + }, + "datasourceUid": "__expr__", + "model": { + "conditions": [ + { + "evaluator": { + "params": [], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "B" + ] + }, + "reducer": { + "params": [], + "type": "last" + }, + "type": "query" + } + ], + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "A", + "intervalMs": 1000, + "maxDataPoints": 43200, + "reducer": "last", + "refId": "last", + "type": "reduce" + } + }, + { + "refId": "threshold", + "relativeTimeRange": { + "from": 0, + "to": 0 + }, + "datasourceUid": "__expr__", + "model": { + "conditions": [ + { + "evaluator": { + "params": [ + 0.99 + ], + "type": "lt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "C" + ] + }, + "reducer": { + "params": [], + "type": "last" + }, + "type": "query" + } + ], + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "last", + "intervalMs": 1000, + "maxDataPoints": 43200, + "refId": "threshold", + "type": "threshold" + } + } + ], + "dasboardUid": "d66242cf-71e8-417c-8ef7-51b0741545df", + "panelId": 9, + "noDataState": "OK", + "execErrState": "Error", + "for": "20m", + "annotations": { + "__dashboardUid__": "d66242cf-71e8-417c-8ef7-51b0741545df", + "__panelId__": "9", + "description": "", + "runbook_url": "", + "summary": "The error budget for a service for the last 1 hour is under 99%" + }, + "labels": { + "role": "sysadmin" + }, + "isPaused": false + }, + { + "uid": "ee817l3a88s1sd", + "title": "Certificate Did Not Renew", + "condition": "C", + "data": [ + { + "refId": "A", + "relativeTimeRange": { + "from": 1800, + "to": 0 + }, + "datasourceUid": "df80f9f5-97d7-4112-91d8-72f523a02b09", + "model": { + "adhocFilters": [], + "datasource": { + "type": "prometheus", + "uid": "df80f9f5-97d7-4112-91d8-72f523a02b09" + }, + "editorMode": "code", + "expr": "min by(subject) (ssl_certificate_expiry_seconds)", + "interval": "", + "intervalMs": 15000, + "legendFormat": "{{exported_hostname}}: {{subject}} {{path}}", + "maxDataPoints": 43200, + "range": true, + "refId": "A" + } + }, + { + "refId": "B", + "relativeTimeRange": { + "from": 0, + "to": 0 + }, + "datasourceUid": "__expr__", + "model": { + "conditions": [ + { + "evaluator": { + "params": [], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "B" + ] + }, + "reducer": { + "params": [], + "type": "last" + }, + "type": "query" + } + ], + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "A", + "intervalMs": 1000, + "maxDataPoints": 43200, + "reducer": "last", + "refId": "B", + "type": "reduce" + } + }, + { + "refId": "C", + "relativeTimeRange": { + "from": 0, + "to": 0 + }, + "datasourceUid": "__expr__", + "model": { + "conditions": [ + { + "evaluator": { + "params": [ + 604800 + ], + "type": "lt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "C" + ] + }, + "reducer": { + "params": [], + "type": "last" + }, + "type": "query" + } + ], + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "B", + "intervalMs": 1000, + "maxDataPoints": 43200, + "refId": "C", + "type": "threshold" + } + } + ], + "dashboardUid": "ae818js0bvw8wb", + "panelId": 3, + "noDataState": "NoData", + "execErrState": "Error", + "for": "20m", + "annotations": { + "__dashboardUid__": "ae818js0bvw8wb", + "__panelId__": "3", + "description": "The expiry date of the certificate is 1 week from now.", + "summary": "Certificate did not renew on time." + }, + "labels": { + "role": "sysadmin" + }, + "isPaused": false + }, + { + "uid": "df4doj5pomhvkf", + "title": "Late Backups", + "condition": "C", + "data": [ + { + "refId": "A", + "relativeTimeRange": { + "from": 10800, + "to": 0 + }, + "datasourceUid": "df80f9f5-97d7-4112-91d8-72f523a02b09", + "model": { + "adhocFilters": [], + "datasource": { + "type": "prometheus", + "uid": "df80f9f5-97d7-4112-91d8-72f523a02b09" + }, + "editorMode": "code", + "exemplar": false, + "expr": "(\n # Timer triggered at least once in the last 24h\n label_replace((\n time()\n -\n systemd_timer_last_trigger_seconds{name=~\".*backup.*.timer\"}\n ) < 24*60*60, \"name\", \"$1.service\", \"name\", \"(.*).timer\")\n AND on(name)\n # At least one failure in the last 24h\n (\n max_over_time(systemd_unit_state{name=~\".*backup.*.service\", state=\"failed\"}[24h]) > 0\n )\n AND on(name)\n # No successes in the last 24h\n (\n max_over_time(systemd_unit_state{name=~\".*backup.*.service\", state=\"inactive\"}[24h]) == 0\n )\n)", + "instant": false, + "interval": "", + "intervalMs": 15000, + "legendFormat": "{{name}}", + "maxDataPoints": 43200, + "range": true, + "refId": "A" + } + }, + { + "refId": "B", + "relativeTimeRange": { + "from": 0, + "to": 0 + }, + "datasourceUid": "__expr__", + "model": { + "conditions": [ + { + "evaluator": { + "params": [], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "B" + ] + }, + "reducer": { + "params": [], + "type": "last" + }, + "type": "query" + } + ], + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "A", + "intervalMs": 1000, + "maxDataPoints": 43200, + "reducer": "last", + "refId": "B", + "type": "reduce" + } + }, + { + "refId": "C", + "relativeTimeRange": { + "from": 0, + "to": 0 + }, + "datasourceUid": "__expr__", + "model": { + "conditions": [ + { + "evaluator": { + "params": [ + 0 + ], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "C" + ] + }, + "reducer": { + "params": [], + "type": "last" + }, + "type": "query" + } + ], + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "B", + "intervalMs": 1000, + "maxDataPoints": 43200, + "refId": "C", + "type": "threshold" + } + } + ], + "dashboardUid": "f05500d0-15ed-4719-b68d-fb898ca13cc8", + "panelId": 15, + "noDataState": "OK", + "execErrState": "Error", + "annotations": { + "__dashboardUid__": "f05500d0-15ed-4719-b68d-fb898ca13cc8", + "__panelId__": "15", + "summary": "A backup did not run in the last 24 hours." + }, + "labels": { + "role": "sysadmin" + }, + "isPaused": false + } +] |
