feat: build and publish into dist/rules

This commit is contained in:
Samuel Berthe 2022-06-15 01:42:18 +02:00
parent cbc20228e2
commit 9bbe04799f
No known key found for this signature in database
GPG key ID: 64863511FFBD0E3C
4 changed files with 166 additions and 30 deletions

59
.github/workflows/dist.yml vendored Normal file
View file

@ -0,0 +1,59 @@
name: Publish
on:
push:
branches:
- master
jobs:
publish:
name: Publish
# Check if the PR is not from a fork
if: github.repository_owner == 'samber'
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Set up yq
uses: mikefarah/yq@master
- name: Install liquid
run: gem install liquid-cli
- name: Build rule configuration
run: |
gem install liquid-cli
cat _data/rules.yml | yq -I 0 -o json > _data/rules.json
rm -rf dist/rules
for service in $(cat _data/rules.json | jq -r '.groups[].services[] | @base64'); do
subdir=dist/rules/$(echo ${service} | base64 --decode | jq -r '.name | ascii_downcase | split(" ") | join("-")')
mkdir -p "${subdir}"
# groupName=$(echo "{% assign groupName = name | split: ' ' %}{% capture groupNameCamelcase %}{% for word in groupName %}{{ word | capitalize }} {% endfor %}{% endcapture %} {{ groupNameCamelcase | remove: ' ' | remove: '-' }}" | liquid $(echo ${service} | base64 --decode | jq -r '.name | ascii_downcase | split(" ") | join("-")'))
for exporter in $(echo ${service} | base64 --decode | jq -r '.exporters[] | @base64'); do
exporterName=$(echo ${exporter} | base64 --decode | jq -r '.slug')
cat dist/template.yml | liquid "$(echo ${exporter} | base64 --decode)" > ${subdir}/${exporterName}.yml
done
done
# https://peterevans.dev/posts/github-actions-how-to-automate-code-formatting-in-pull-requests/
- name: Check for modified files
id: git-check
run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)
- name: Push changes
if: steps.git-check.outputs.modified == 'true'
run: |
git config --global user.name 'Samuel Berthe'
git config --global user.email 'samuel-berthe@users.noreply.github.com'
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
git commit -am "Publish"
git push

View file

@ -12,7 +12,8 @@ groups:
services: services:
- name: Prometheus self-monitoring - name: Prometheus self-monitoring
exporters: exporters:
- rules: - slug: embedded-exporter
rules:
- name: Prometheus job missing - name: Prometheus job missing
description: A Prometheus job has disappeared description: A Prometheus job has disappeared
query: 'absent(up{job="prometheus"})' query: 'absent(up{job="prometheus"})'
@ -124,6 +125,7 @@ groups:
- name: Host and hardware - name: Host and hardware
exporters: exporters:
- name: node-exporter - name: node-exporter
slug: node-exporter
doc_url: https://github.com/prometheus/node_exporter doc_url: https://github.com/prometheus/node_exporter
rules: rules:
- name: Host out of memory - name: Host out of memory
@ -303,6 +305,7 @@ groups:
- name: Docker containers - name: Docker containers
exporters: exporters:
- name: google/cAdvisor - name: google/cAdvisor
slug: google-cadvisor
doc_url: https://github.com/google/cadvisor doc_url: https://github.com/google/cadvisor
rules: rules:
- name: Container killed - name: Container killed
@ -343,6 +346,7 @@ groups:
- name: Blackbox - name: Blackbox
exporters: exporters:
- name: prometheus/blackbox_exporter - name: prometheus/blackbox_exporter
slug: blackbox-exporter
doc_url: https://github.com/prometheus/blackbox_exporter doc_url: https://github.com/prometheus/blackbox_exporter
rules: rules:
- name: Blackbox probe failed - name: Blackbox probe failed
@ -384,6 +388,7 @@ groups:
- name: Windows Server - name: Windows Server
exporters: exporters:
- name: prometheus-community/windows_exporter - name: prometheus-community/windows_exporter
slug: windows-exporter
doc_url: https://github.com/prometheus-community/windows_exporter doc_url: https://github.com/prometheus-community/windows_exporter
rules: rules:
- name: Windows Server collector Error - name: Windows Server collector Error
@ -413,6 +418,7 @@ groups:
- name: VMware - name: VMware
exporters: exporters:
- name: pryorda/vmware_exporter - name: pryorda/vmware_exporter
slug: pryorda-vmware-exporter
doc_url: https://github.com/pryorda/vmware_exporter doc_url: https://github.com/pryorda/vmware_exporter
rules: rules:
- name: Virtual Machine Memory Warning - name: Virtual Machine Memory Warning
@ -439,6 +445,7 @@ groups:
- name: Netdata - name: Netdata
exporters: exporters:
- name: Embedded exporter - name: Embedded exporter
slug: embedded-exporter
doc_url: https://github.com/netdata/netdata/blob/master/backends/prometheus/README.md doc_url: https://github.com/netdata/netdata/blob/master/backends/prometheus/README.md
rules: rules:
- name: Netdata high cpu usage - name: Netdata high cpu usage
@ -489,6 +496,7 @@ groups:
- name: MySQL - name: MySQL
exporters: exporters:
- name: prometheus/mysqld_exporter - name: prometheus/mysqld_exporter
slug: mysqld-exporter
doc_url: https://github.com/prometheus/mysqld_exporter doc_url: https://github.com/prometheus/mysqld_exporter
rules: rules:
- name: MySQL down - name: MySQL down
@ -535,6 +543,7 @@ groups:
- name: PostgreSQL - name: PostgreSQL
exporters: exporters:
- name: prometheus-community/postgres_exporter - name: prometheus-community/postgres_exporter
slug: postgres-exporter
doc_url: https://github.com/prometheus-community/postgres_exporter doc_url: https://github.com/prometheus-community/postgres_exporter
rules: rules:
- name: Postgresql down - name: Postgresql down
@ -642,6 +651,7 @@ groups:
- name: SQL Server - name: SQL Server
exporters: exporters:
- name: Ozarklake/prometheus-mssql-exporter - name: Ozarklake/prometheus-mssql-exporter
slug: ozarklake-mssql-exporter
doc_url: https://github.com/Ozarklake/prometheus-mssql-exporter doc_url: https://github.com/Ozarklake/prometheus-mssql-exporter
rules: rules:
- name: SQL Server down - name: SQL Server down
@ -656,6 +666,7 @@ groups:
- name: PGBouncer - name: PGBouncer
exporters: exporters:
- name: spreaker/prometheus-pgbouncer-exporter - name: spreaker/prometheus-pgbouncer-exporter
slug: spreaker-pgbouncer-exporter
doc_url: https://github.com/spreaker/prometheus-pgbouncer-exporter doc_url: https://github.com/spreaker/prometheus-pgbouncer-exporter
rules: rules:
- name: PGBouncer active connections - name: PGBouncer active connections
@ -675,6 +686,7 @@ groups:
- name: Redis - name: Redis
exporters: exporters:
- name: oliver006/redis_exporter - name: oliver006/redis_exporter
slug: oliver006-redis-exporter
doc_url: https://github.com/oliver006/redis_exporter doc_url: https://github.com/oliver006/redis_exporter
rules: rules:
- name: Redis down - name: Redis down
@ -736,6 +748,7 @@ groups:
- name: MongoDB - name: MongoDB
exporters: exporters:
- name: percona/mongodb_exporter - name: percona/mongodb_exporter
slug: percona-mongodb-exporter
doc_url: https://github.com/percona/mongodb_exporter doc_url: https://github.com/percona/mongodb_exporter
rules: rules:
- name: MongoDB Down - name: MongoDB Down
@ -772,6 +785,7 @@ groups:
for: 2m for: 2m
- name: dcu/mongodb_exporter - name: dcu/mongodb_exporter
slug: dcu-mongodb-exporter
doc_url: https://github.com/dcu/mongodb_exporter doc_url: https://github.com/dcu/mongodb_exporter
rules: rules:
- name: MongoDB replication lag - name: MongoDB replication lag
@ -820,6 +834,7 @@ groups:
for: 2m for: 2m
- name: stefanprodan/mgob - name: stefanprodan/mgob
slug: stefanprodan-mgob-exporter
doc_url: https://github.com/stefanprodan/mgob doc_url: https://github.com/stefanprodan/mgob
rules: rules:
- name: Mgob backup failed - name: Mgob backup failed
@ -830,6 +845,7 @@ groups:
- name: RabbitMQ - name: RabbitMQ
exporters: exporters:
- name: rabbitmq/rabbitmq-prometheus - name: rabbitmq/rabbitmq-prometheus
slug: rabbitmq-exporter
doc_url: https://github.com/rabbitmq/rabbitmq-prometheus doc_url: https://github.com/rabbitmq/rabbitmq-prometheus
rules: rules:
- name: Rabbitmq node down - name: Rabbitmq node down
@ -877,6 +893,7 @@ groups:
for: 2m for: 2m
- name: kbudde/rabbitmq-exporter - name: kbudde/rabbitmq-exporter
slug: kbudde-rabbitmq-exporter
doc_url: https://github.com/kbudde/rabbitmq_exporter doc_url: https://github.com/kbudde/rabbitmq_exporter
rules: rules:
- name: Rabbitmq down - name: Rabbitmq down
@ -944,6 +961,7 @@ groups:
- name: Elasticsearch - name: Elasticsearch
exporters: exporters:
- name: justwatchcom/elasticsearch_exporter - name: justwatchcom/elasticsearch_exporter
slug: justwatchcom-elasticsearch-exporter
doc_url: https://github.com/justwatchcom/elasticsearch_exporter doc_url: https://github.com/justwatchcom/elasticsearch_exporter
rules: rules:
- name: Elasticsearch Heap Usage Too High - name: Elasticsearch Heap Usage Too High
@ -1016,6 +1034,7 @@ groups:
- name: Cassandra - name: Cassandra
exporters: exporters:
- name: instaclustr/cassandra-exporter - name: instaclustr/cassandra-exporter
slug: instaclustr-cassandra-exporter
doc_url: https://github.com/instaclustr/cassandra-exporter doc_url: https://github.com/instaclustr/cassandra-exporter
rules: rules:
- name: 'Cassandra Node is unavailable' - name: 'Cassandra Node is unavailable'
@ -1077,6 +1096,7 @@ groups:
severity: critical severity: critical
- name: criteo/cassandra_exporter - name: criteo/cassandra_exporter
slug: criteo-cassandra-exporter
doc_url: https://github.com/criteo/cassandra_exporter doc_url: https://github.com/criteo/cassandra_exporter
rules: rules:
- name: Cassandra hints count - name: Cassandra hints count
@ -1165,9 +1185,11 @@ groups:
- name: Zookeeper - name: Zookeeper
exporters: exporters:
- name: cloudflare/kafka_zookeeper_exporter - name: cloudflare/kafka_zookeeper_exporter
slug: cloudflare-kafka-zookeeper-exporter
doc_url: https://github.com/cloudflare/kafka_zookeeper_exporter doc_url: https://github.com/cloudflare/kafka_zookeeper_exporter
rules: rules:
- name: dabealu/zookeeper-exporter - name: dabealu/zookeeper-exporter
slug: dabealu-zookeeper-exporter
doc_url: https://github.com/dabealu/zookeeper-exporter doc_url: https://github.com/dabealu/zookeeper-exporter
rules: rules:
- name: Zookeeper Down - name: Zookeeper Down
@ -1191,6 +1213,7 @@ groups:
- name: Kafka - name: Kafka
exporters: exporters:
- name: danielqsj/kafka_exporter - name: danielqsj/kafka_exporter
slug: danielqsj-kafka-exporter
doc_url: https://github.com/danielqsj/kafka_exporter doc_url: https://github.com/danielqsj/kafka_exporter
rules: rules:
- name: Kafka topics replicas - name: Kafka topics replicas
@ -1203,6 +1226,7 @@ groups:
severity: critical severity: critical
for: 1m for: 1m
- name: linkedin/Burrow - name: linkedin/Burrow
slug: linkedin-kafka-exporter
doc_url: https://github.com/linkedin/Burrow doc_url: https://github.com/linkedin/Burrow
rules: rules:
- name: Kafka topic offset decreased - name: Kafka topic offset decreased
@ -1218,6 +1242,7 @@ groups:
- name: Pulsar - name: Pulsar
exporters: exporters:
- name: embedded exporter - name: embedded exporter
slug: embedded-exporter
doc_url: https://pulsar.apache.org/docs/reference-metrics/ doc_url: https://pulsar.apache.org/docs/reference-metrics/
rules: rules:
- name: Pulsar subscription high number of backlog entries - name: Pulsar subscription high number of backlog entries
@ -1274,6 +1299,7 @@ groups:
- name: Solr - name: Solr
exporters: exporters:
- name: embedded exporter - name: embedded exporter
slug: embedded-exporter
doc_url: https://solr.apache.org/guide/8_11/monitoring-solr-with-prometheus-and-grafana.html doc_url: https://solr.apache.org/guide/8_11/monitoring-solr-with-prometheus-and-grafana.html
rules: rules:
- name: Solr update errors - name: Solr update errors
@ -1298,7 +1324,8 @@ groups:
services: services:
- name: Nginx - name: Nginx
exporters: exporters:
- name: nginx-lua-prometheus - name: knyar/nginx-lua-prometheus
slug: knyar-nginx-exporter
doc_url: https://github.com/knyar/nginx-lua-prometheus doc_url: https://github.com/knyar/nginx-lua-prometheus
rules: rules:
- name: Nginx high HTTP 4xx error rate - name: Nginx high HTTP 4xx error rate
@ -1320,6 +1347,7 @@ groups:
- name: Apache - name: Apache
exporters: exporters:
- name: Lusitaniae/apache_exporter - name: Lusitaniae/apache_exporter
slug: lusitaniae-apache-exporter
doc_url: https://github.com/Lusitaniae/apache_exporter doc_url: https://github.com/Lusitaniae/apache_exporter
rules: rules:
- name: Apache down - name: Apache down
@ -1339,6 +1367,7 @@ groups:
- name: HaProxy - name: HaProxy
exporters: exporters:
- name: Embedded exporter (HAProxy >= v2) - name: Embedded exporter (HAProxy >= v2)
slug: embedded-exporter-v2
doc_url: https://github.com/haproxy/haproxy/tree/master/contrib/prometheus-exporter doc_url: https://github.com/haproxy/haproxy/tree/master/contrib/prometheus-exporter
rules: rules:
- name: HAProxy high HTTP 4xx error rate backend - name: HAProxy high HTTP 4xx error rate backend
@ -1410,6 +1439,7 @@ groups:
severity: warning severity: warning
for: 1m for: 1m
- name: prometheus/haproxy_exporter (HAProxy < v2) - name: prometheus/haproxy_exporter (HAProxy < v2)
slug: haproxy-exporter-v1
doc_url: https://github.com/prometheus/haproxy_exporter doc_url: https://github.com/prometheus/haproxy_exporter
rules: rules:
- name: HAProxy down - name: HAProxy down
@ -1492,6 +1522,7 @@ groups:
- name: Traefik - name: Traefik
exporters: exporters:
- name: Embedded exporter v2 - name: Embedded exporter v2
slug: embedded-exporter-v2
doc_url: https://docs.traefik.io/observability/metrics/prometheus/ doc_url: https://docs.traefik.io/observability/metrics/prometheus/
rules: rules:
- name: Traefik service down - name: Traefik service down
@ -1509,6 +1540,7 @@ groups:
severity: critical severity: critical
for: 1m for: 1m
- name: Embedded exporter v1 - name: Embedded exporter v1
slug: embedded-exporter-v1
doc_url: https://docs.traefik.io/observability/metrics/prometheus/ doc_url: https://docs.traefik.io/observability/metrics/prometheus/
rules: rules:
- name: Traefik backend down - name: Traefik backend down
@ -1531,6 +1563,7 @@ groups:
- name: PHP-FPM - name: PHP-FPM
exporters: exporters:
- name: bakins/php-fpm-exporter - name: bakins/php-fpm-exporter
slug: bakins-fpm-exporter
doc_url: https://github.com/bakins/php-fpm-exporter doc_url: https://github.com/bakins/php-fpm-exporter
rules: rules:
- name: PHP-FPM max-children reached - name: PHP-FPM max-children reached
@ -1541,6 +1574,7 @@ groups:
- name: JVM - name: JVM
exporters: exporters:
- name: java-client - name: java-client
slug: jvm-exporter
doc_url: https://github.com/prometheus/client_java doc_url: https://github.com/prometheus/client_java
rules: rules:
- name: JVM memory filling up - name: JVM memory filling up
@ -1552,6 +1586,7 @@ groups:
- name: Sidekiq - name: Sidekiq
exporters: exporters:
- name: Strech/sidekiq-prometheus-exporter - name: Strech/sidekiq-prometheus-exporter
slug: strech-sidekiq-exporter
doc_url: https://github.com/Strech/sidekiq-prometheus-exporter doc_url: https://github.com/Strech/sidekiq-prometheus-exporter
rules: rules:
- name: Sidekiq queue size - name: Sidekiq queue size
@ -1570,6 +1605,7 @@ groups:
- name: Kubernetes - name: Kubernetes
exporters: exporters:
- name: kube-state-metrics - name: kube-state-metrics
slug: kubestate-exporter
doc_url: https://github.com/kubernetes/kube-state-metrics/tree/master/docs doc_url: https://github.com/kubernetes/kube-state-metrics/tree/master/docs
rules: rules:
- name: Kubernetes Node ready - name: Kubernetes Node ready
@ -1732,6 +1768,7 @@ groups:
- name: Nomad - name: Nomad
exporters: exporters:
- name: Embedded exporter - name: Embedded exporter
slug: embedded-exporter
rules: rules:
- name: Nomad job failed - name: Nomad job failed
description: Nomad job failed description: Nomad job failed
@ -1754,6 +1791,7 @@ groups:
- name: Consul - name: Consul
exporters: exporters:
- name: prometheus/consul_exporter - name: prometheus/consul_exporter
slug: consul-exporter
doc_url: https://github.com/prometheus/consul_exporter doc_url: https://github.com/prometheus/consul_exporter
rules: rules:
- name: Consul service healthcheck failed - name: Consul service healthcheck failed
@ -1772,7 +1810,9 @@ groups:
- name: Etcd - name: Etcd
exporters: exporters:
- rules: - name: Embedded exporter
slug: embedded-exporter
rules:
- name: Etcd insufficient Members - name: Etcd insufficient Members
description: Etcd cluster should have an odd number of members description: Etcd cluster should have an odd number of members
query: 'count(etcd_server_id) % 2 == 0' query: 'count(etcd_server_id) % 2 == 0'
@ -1839,6 +1879,7 @@ groups:
- name: Linkerd - name: Linkerd
exporters: exporters:
- name: Embedded exporter - name: Embedded exporter
slug: embedded-exporter
doc_url: https://linkerd.io/2/tasks/exporting-metrics/ doc_url: https://linkerd.io/2/tasks/exporting-metrics/
rules: rules:
- name: Linkerd high error rate - name: Linkerd high error rate
@ -1850,6 +1891,7 @@ groups:
- name: Istio - name: Istio
exporters: exporters:
- name: Embedded exporter - name: Embedded exporter
slug: embedded-exporter
doc_url: https://istio.io/latest/docs/tasks/observability/metrics/querying-metrics/ doc_url: https://istio.io/latest/docs/tasks/observability/metrics/querying-metrics/
rules: rules:
- name: Istio Kubernetes gateway availability drop - name: Istio Kubernetes gateway availability drop
@ -1907,6 +1949,7 @@ groups:
- name: Ceph - name: Ceph
exporters: exporters:
- name: Embedded exporter - name: Embedded exporter
slug: embedded-exporter
doc_url: https://docs.ceph.com/docs/luminous/mgr/prometheus/ doc_url: https://docs.ceph.com/docs/luminous/mgr/prometheus/
rules: rules:
- name: Ceph State - name: Ceph State
@ -1972,6 +2015,7 @@ groups:
- name: SpeedTest - name: SpeedTest
exporters: exporters:
- name: Speedtest exporter - name: Speedtest exporter
slug: nlamirault-speedtest-exporter
doc_url: https://github.com/nlamirault/speedtest_exporter doc_url: https://github.com/nlamirault/speedtest_exporter
rules: rules:
- name: SpeedTest Slow Internet Download - name: SpeedTest Slow Internet Download
@ -1986,12 +2030,14 @@ groups:
- name: ZFS - name: ZFS
exporters: exporters:
- name: node-exporter - name: node-exporter
slug: node-exporter
doc_url: https://github.com/prometheus/node_exporter doc_url: https://github.com/prometheus/node_exporter
rules: rules:
- name: OpenEBS - name: OpenEBS
exporters: exporters:
- name: Embedded exporter - name: Embedded exporter
slug: embedded-exporter
rules: rules:
- name: OpenEBS used pool capacity - name: OpenEBS used pool capacity
description: 'OpenEBS Pool use more than 80% of his capacity' description: 'OpenEBS Pool use more than 80% of his capacity'
@ -2002,6 +2048,7 @@ groups:
- name: Minio - name: Minio
exporters: exporters:
- name: Embedded exporter - name: Embedded exporter
slug: embedded-exporter
rules: rules:
- name: Minio disk offline - name: Minio disk offline
description: 'Minio disk is offline' description: 'Minio disk is offline'
@ -2015,6 +2062,7 @@ groups:
- name: SSL/TLS - name: SSL/TLS
exporters: exporters:
- name: ssl_exporter - name: ssl_exporter
slug: ribbybibby-ssl-exporter
doc_url: https://github.com/ribbybibby/ssl_exporter doc_url: https://github.com/ribbybibby/ssl_exporter
rules: rules:
- name: SSL certificate probe failed - name: SSL certificate probe failed
@ -2037,6 +2085,7 @@ groups:
- name: Juniper - name: Juniper
exporters: exporters:
- name: czerwonk/junos_exporter - name: czerwonk/junos_exporter
slug: czerwonk-junos-exporter
doc_url: https://github.com/czerwonk/junos_exporter doc_url: https://github.com/czerwonk/junos_exporter
rules: rules:
- name: Juniper switch down - name: Juniper switch down
@ -2057,6 +2106,7 @@ groups:
- name: CoreDNS - name: CoreDNS
exporters: exporters:
- name: Embedded exporter - name: Embedded exporter
slug: embedded-exporter
rules: rules:
- name: CoreDNS Panic Count - name: CoreDNS Panic Count
description: Number of CoreDNS panics encountered description: Number of CoreDNS panics encountered
@ -2066,6 +2116,7 @@ groups:
- name: Freeswitch - name: Freeswitch
exporters: exporters:
- name: znerol/prometheus-freeswitch-exporter - name: znerol/prometheus-freeswitch-exporter
slug: znerol-freeswitch-exporter
doc_url: https://pypi.org/project/prometheus-freeswitch-exporter doc_url: https://pypi.org/project/prometheus-freeswitch-exporter
rules: rules:
- name: Freeswitch down - name: Freeswitch down
@ -2086,6 +2137,7 @@ groups:
- name: Hashicorp Vault - name: Hashicorp Vault
exporters: exporters:
- name: Embedded exporter - name: Embedded exporter
slug: embedded-exporter
doc_url: https://github.com/hashicorp/vault/blob/master/website/content/docs/configuration/telemetry.mdx#prometheus doc_url: https://github.com/hashicorp/vault/blob/master/website/content/docs/configuration/telemetry.mdx#prometheus
rules: rules:
- name: Vault sealed - name: Vault sealed
@ -2107,7 +2159,9 @@ groups:
services: services:
- name: Thanos - name: Thanos
exporters: exporters:
- rules: - name: Embedded exporter
slug: embedded-exporter
rules:
- name: Thanos compaction halted - name: Thanos compaction halted
description: Thanos compaction has failed to run and is now halted. description: Thanos compaction has failed to run and is now halted.
query: 'thanos_compact_halted == 1' query: 'thanos_compact_halted == 1'
@ -2122,7 +2176,9 @@ groups:
severity: critical severity: critical
- name: Loki - name: Loki
exporters: exporters:
- rules: - name: Embedded exporter
slug: embedded-exporter
rules:
- name: Loki process too many restarts - name: Loki process too many restarts
description: A loki process had too many restarts (target {{ $labels.instance }}) description: A loki process had too many restarts (target {{ $labels.instance }})
query: changes(process_start_time_seconds{job=~"loki"}[15m]) > 2 query: changes(process_start_time_seconds{job=~"loki"}[15m]) > 2
@ -2144,7 +2200,9 @@ groups:
for: 5m for: 5m
- name: Promtail - name: Promtail
exporters: exporters:
- rules: - name: Embedded exporter
slug: embedded-exporter
rules:
- name: Promtail request errors - name: Promtail request errors
description: The {{ $labels.job }} {{ $labels.route }} is experiencing {{ printf "%.2f" $value }}% errors. description: The {{ $labels.job }} {{ $labels.route }} is experiencing {{ printf "%.2f" $value }}% errors.
query: '100 * sum(rate(promtail_request_duration_seconds_count{status_code=~"5..|failed"}[1m])) by (namespace, job, route, instance) / sum(rate(promtail_request_duration_seconds_count[1m])) by (namespace, job, route, instance) > 10' query: '100 * sum(rate(promtail_request_duration_seconds_count{status_code=~"5..|failed"}[1m])) by (namespace, job, route, instance) / sum(rate(promtail_request_duration_seconds_count[1m])) by (namespace, job, route, instance) > 10'
@ -2157,7 +2215,9 @@ groups:
for: 5m for: 5m
- name: Cortex - name: Cortex
exporters: exporters:
- rules: - name: Embedded exporter
slug: embedded-exporter
rules:
- name: Cortex ruler configuration reload failure - name: Cortex ruler configuration reload failure
description: Cortex ruler configuration reload failure (instance {{ $labels.instance }}) description: Cortex ruler configuration reload failure (instance {{ $labels.instance }})
query: cortex_ruler_config_last_reload_successful != 1 query: cortex_ruler_config_last_reload_successful != 1
@ -2187,6 +2247,7 @@ groups:
- name: Jenkins - name: Jenkins
exporters: exporters:
- name: Metric plugin - name: Metric plugin
slug: metric-plugin
doc_url: https://plugins.jenkins.io/prometheus/ doc_url: https://plugins.jenkins.io/prometheus/
rules: rules:
- name: Jenkins offline - name: Jenkins offline

16
dist/template.yml vendored Normal file
View file

@ -0,0 +1,16 @@
groups:
{% assign groupName = slug | split: '-' %}{% capture groupNameCamelcase %}{% for word in groupName %}{{ word | capitalize }} {% endfor %}{% endcapture %}
- name: {{ groupNameCamelcase | remove: ' ' | remove: '-' }}
rules:
{% for rule in rules %}{% assign ruleName = rule.name | split: ' ' %}{% capture ruleNameCamelcase %}{% for word in ruleName %}{{ word | capitalize }} {% endfor %}{% endcapture %}
{% for comment in comments %}# {{ comment | strip }}
{% endfor %}- alert: {{ ruleNameCamelcase | remove: ' ' }}
expr: '{{ rule.query }}'
for: {% if rule.for %}{{ rule.for }}{% else %}0m{% endif %}
labels:
severity: {{ rule.severity }}
annotations:
summary: {{ rule.name }} (instance {% raw %}{{ $labels.instance }}{% endraw %})
description: "{{ rule.description | replace: '"', '\"' }}\n VALUE = {% raw %}{{ $value }}{% endraw %}\n LABELS = {% raw %}{{ $labels }}{% endraw %}"
{% endfor %}