mirror of
https://github.com/samber/awesome-prometheus-alerts.git
synced 2026-06-22 01:17:19 +08:00
Adding exporters: sidekiq, pgbouncer and thanos.
Adding rules to: prometheus, kubernetes, redis, docker and postgresql. Arranging exporters into categories. Showing number of rules. Thanks to Gitlab for opensourcing alerting rules!
This commit is contained in:
parent
affacde49b
commit
0b89a764ee
4 changed files with 1221 additions and 924 deletions
41
README.md
41
README.md
|
|
@ -14,39 +14,60 @@ Collection available here: **[https://awesome-prometheus-alerts.grep.to](https:/
|
|||
|
||||
## 🚨 Rules
|
||||
|
||||
- [Prometheus internals](https://awesome-prometheus-alerts.grep.to/rules#prometheus-internals)
|
||||
#### Basic resource monitoring
|
||||
|
||||
- [Prometheus self-monitoring](https://awesome-prometheus-alerts.grep.to/rules#prometheus-internals)
|
||||
- [Host/Hardware](https://awesome-prometheus-alerts.grep.to/rules#host-and-hardware)
|
||||
- [Docker Containers](https://awesome-prometheus-alerts.grep.to/rules#docker-containers)
|
||||
- [RabbitMQ](https://awesome-prometheus-alerts.grep.to/rules#rabbitmq)
|
||||
- [Blackbox](https://awesome-prometheus-alerts.grep.to/rules#blackbox)
|
||||
- [Windows](https://awesome-prometheus-alerts.grep.to/rules#windows-server)
|
||||
|
||||
#### Databases and brokers
|
||||
|
||||
- [MySQL](https://awesome-prometheus-alerts.grep.to/rules#mysql)
|
||||
- [PostgreSQL](https://awesome-prometheus-alerts.grep.to/rules#postgresql)
|
||||
- [PGBouncer](https://awesome-prometheus-alerts.grep.to/rules#pgbouncer)
|
||||
- [Redis](https://awesome-prometheus-alerts.grep.to/rules#redis)
|
||||
- [MongoDB](https://awesome-prometheus-alerts.grep.to/rules#mongodb)
|
||||
- [RabbitMQ](https://awesome-prometheus-alerts.grep.to/rules#rabbitmq)
|
||||
- [Elasticsearch](https://awesome-prometheus-alerts.grep.to/rules#elasticsearch)
|
||||
- [Cassandra](https://awesome-prometheus-alerts.grep.to/rules#cassandra)
|
||||
- [Zookeeper](https://awesome-prometheus-alerts.grep.to/rules#zookeeper)
|
||||
- [Kafka](https://awesome-prometheus-alerts.grep.to/rules#kafka)
|
||||
|
||||
#### Reverse proxies and load balancers
|
||||
|
||||
- [Nginx](https://awesome-prometheus-alerts.grep.to/rules#nginx)
|
||||
- [Apache](https://awesome-prometheus-alerts.grep.to/rules#apache)
|
||||
- [HaProxy](https://awesome-prometheus-alerts.grep.to/rules#haproxy)
|
||||
- [Traefik](https://awesome-prometheus-alerts.grep.to/rules#traefik)
|
||||
|
||||
#### Runtimes
|
||||
|
||||
- [PHP-FPM](https://awesome-prometheus-alerts.grep.to/rules#php-fpm)
|
||||
- [JVM](https://awesome-prometheus-alerts.grep.to/rules#jvm)
|
||||
- [ZFS](https://awesome-prometheus-alerts.grep.to/rules#zfs)
|
||||
- [Sidekiq](https://awesome-prometheus-alerts.grep.to/rules#sidekiq)
|
||||
|
||||
#### Orchestrators
|
||||
- [Kubernetes](https://awesome-prometheus-alerts.grep.to/rules#kubernetes)
|
||||
- [Nomad](https://awesome-prometheus-alerts.grep.to/rules#nomad)
|
||||
- [Consul](https://awesome-prometheus-alerts.grep.to/rules#consul)
|
||||
- [Etcd](https://awesome-prometheus-alerts.grep.to/rules#etcd)
|
||||
- [Zookeeper](https://awesome-prometheus-alerts.grep.to/rules#zookeeper)
|
||||
- [Kafka](https://awesome-prometheus-alerts.grep.to/rules#kafka)
|
||||
- [Linkerd](https://awesome-prometheus-alerts.grep.to/rules#linkerd)
|
||||
- [Istio](https://awesome-prometheus-alerts.grep.to/rules#istio)
|
||||
- [Blackbox](https://awesome-prometheus-alerts.grep.to/rules#blackbox)
|
||||
- [Windows](https://awesome-prometheus-alerts.grep.to/rules#windows-server)
|
||||
- [Juniper](https://awesome-prometheus-alerts.grep.to/rules#juniper)
|
||||
|
||||
#### Network and storage
|
||||
|
||||
- [ZFS](https://awesome-prometheus-alerts.grep.to/rules#zfs)
|
||||
- [OpenEBS](https://awesome-prometheus-alerts.grep.to/rules#openebs)
|
||||
- [Minio](https://awesome-prometheus-alerts.grep.to/rules#minio)
|
||||
- [Juniper](https://awesome-prometheus-alerts.grep.to/rules#juniper)
|
||||
- [CoreDNS](https://awesome-prometheus-alerts.grep.to/rules#coredns)
|
||||
|
||||
#### Other
|
||||
|
||||
- [Thanos](https://awesome-prometheus-alerts.grep.to/rules#thanos)
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
Contributions from community (you!) are most welcome!
|
||||
|
|
@ -66,6 +87,10 @@ Give a ⭐️ if this project helped you!
|
|||
|
||||
[](https://www.patreon.com/samber)
|
||||
|
||||
## 👏 Thanks
|
||||
|
||||
Gratitude for the Gitlab operation team that provided 50+ rules. \o/
|
||||
|
||||
## 📝 License
|
||||
|
||||
[](https://creativecommons.org/licenses/by/4.0/legalcode)
|
||||
|
|
|
|||
1945
_data/rules.yml
1945
_data/rules.yml
File diff suppressed because it is too large
Load diff
26
index.md
26
index.md
|
|
@ -24,11 +24,27 @@
|
|||
</h2>
|
||||
|
||||
<ul>
|
||||
{% for service in site.data.rules.services %}
|
||||
<li>
|
||||
<a href="/rules#{{ service.name | replace: " ", "-" | downcase }}">
|
||||
{{ service.name }}
|
||||
</a>
|
||||
{% for group in site.data.rules.groups %}
|
||||
<li style="margin-top: 30px;">
|
||||
{% assign nbrRules = 0 %}
|
||||
{% for service in group.services %}
|
||||
{% for exporter in service.exporters %}
|
||||
{% for rule in exporter.rules %}
|
||||
{% assign nbrRules = nbrRules | plus: 1 %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
<h3>{{ group.name }} <small style="margin-left: 20px;">({{ nbrRules }} rules)</small></h3>
|
||||
<ul>
|
||||
{% for service in group.services %}
|
||||
<li>
|
||||
<a href="/rules#{{ service.name | replace: " ", "-" | downcase }}">
|
||||
{{ service.name }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
133
rules.md
133
rules.md
|
|
@ -19,78 +19,83 @@
|
|||
<br>
|
||||
<br>
|
||||
|
||||
<h1></h1>
|
||||
|
||||
<ul>
|
||||
{% for service in site.data.rules.services %}
|
||||
{% assign serviceIndex = forloop.index %}
|
||||
{% for exporter in service.exporters %}
|
||||
{% assign nbrRules = exporter.rules | size %}
|
||||
<li>
|
||||
<h2 id="{{ service.name | replace: " ", "-" | downcase }}">
|
||||
{{ serviceIndex }}.
|
||||
{{ service.name }}
|
||||
{% if exporter.name %}
|
||||
:
|
||||
{% if exporter.doc_url %}
|
||||
<a href="{{ exporter.doc_url }}">
|
||||
{% for group in site.data.rules.groups %}
|
||||
{% for service in group.services %}
|
||||
{% assign serviceIndex = forloop.index %}
|
||||
{% for exporter in service.exporters %}
|
||||
{% assign nbrRules = exporter.rules | size %}
|
||||
<li>
|
||||
<h2 id="{{ service.name | replace: " ", "-" | downcase }}">
|
||||
{{ serviceIndex }}.
|
||||
{{ service.name }}
|
||||
{% if exporter.name %}:
|
||||
{% if exporter.doc_url %}
|
||||
<a href="{{ exporter.doc_url }}">
|
||||
{{ exporter.name }}
|
||||
</a>
|
||||
{% else %}
|
||||
{{ exporter.name }}
|
||||
</a>
|
||||
{% else %}
|
||||
{{ exporter.name }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if nbrRules > 0 %}
|
||||
<small style="font-size: 60%; vertical-align: middle; margin-left: 10px;">
|
||||
({{ nbrRules }} rules)
|
||||
</small>
|
||||
<span class="clipboard-multiple" data-clipboard-target-id="service-{{ serviceIndex }}">[copy all]</span>
|
||||
{% endif %}
|
||||
</h2>
|
||||
|
||||
{% if nbrRules == 0 %}
|
||||
{% highlight javascript %}
|
||||
// @TODO: Please contribute => https://github.com/samber/awesome-prometheus-alerts 👋
|
||||
{% endhighlight %}
|
||||
{% endif %}
|
||||
|
||||
{% if nbrRules > 0 %}
|
||||
<span class="clipboard-multiple" data-clipboard-target-id="service-{{ serviceIndex }}">[copy all]</span>
|
||||
{% endif %}
|
||||
</h2>
|
||||
<ul>
|
||||
{% for rule in exporter.rules %}
|
||||
{% assign ruleIndex = forloop.index %}
|
||||
{% assign comments = rule.comments | strip | newline_to_br | split: '<br />' %}
|
||||
<li>
|
||||
<h4>
|
||||
{{ serviceIndex }}.{{ ruleIndex }}.
|
||||
{{ rule.name }}
|
||||
</h4>
|
||||
<details id="service-{{ serviceIndex }}-rule-{{ ruleIndex }}" {% if true || (serviceIndex == 1 && ruleIndex == 1) %} open {% endif %}>
|
||||
<summary>
|
||||
{{ rule.description }}
|
||||
<span class="clipboard-single" data-clipboard-target-id="service-{{ serviceIndex }}-rule-{{ ruleIndex }}" onclick="event.preventDefault();">[copy]</span>
|
||||
</summary>
|
||||
<p>
|
||||
{% assign ruleName = rule.name | split: ' ' %}
|
||||
{% capture ruleNameCamelcase %}{% for word in ruleName %}{{ word | capitalize }} {% endfor %}{% endcapture %}
|
||||
|
||||
{% if nbrRules == 0 %}
|
||||
{% highlight javascript %}
|
||||
// @TODO: Please contribute => https://github.com/samber/awesome-prometheus-alerts 👋
|
||||
{% endhighlight %}
|
||||
{% endif %}
|
||||
|
||||
<ul>
|
||||
{% for rule in exporter.rules %}
|
||||
{% assign ruleIndex = forloop.index %}
|
||||
{% assign comments = rule.comments | strip | newline_to_br | split: '<br />' %}
|
||||
<li>
|
||||
<h4>
|
||||
{{ serviceIndex }}.{{ ruleIndex }}.
|
||||
{{ rule.name }}
|
||||
</h4>
|
||||
<details id="service-{{ serviceIndex }}-rule-{{ ruleIndex }}" {% if true || (serviceIndex == 1 && ruleIndex == 1) %} open {% endif %}>
|
||||
<summary>
|
||||
{{ rule.description }}
|
||||
<span class="clipboard-single" data-clipboard-target-id="service-{{ serviceIndex }}-rule-{{ ruleIndex }}" onclick="event.preventDefault();">[copy]</span>
|
||||
</summary>
|
||||
<p>
|
||||
{% assign ruleName = rule.name | split: ' ' %}
|
||||
{% capture ruleNameCamelcase %}{% for word in ruleName %}{{ word | capitalize }} {% endfor %}{% endcapture %}
|
||||
|
||||
{% highlight yaml %}
|
||||
{% for comment in comments %}# {{ comment | strip }}
|
||||
{% endfor %}
|
||||
- alert: {{ ruleNameCamelcase | remove: ' ' }}
|
||||
expr: {{ rule.query }}
|
||||
for: 5m
|
||||
labels:
|
||||
severity: {{ rule.severity }}
|
||||
annotations:
|
||||
summary: "{{ rule.name }} (instance {% raw %}{{ $labels.instance }}{% endraw %})"
|
||||
description: "{{ rule.description }}\n VALUE = {% raw %}{{ $value }}{% endraw %}\n LABELS: {% raw %}{{ $labels }}{% endraw %}"
|
||||
{% highlight yaml %}
|
||||
{% for comment in comments %}# {{ comment | strip }}
|
||||
{% endfor %}- alert: {{ ruleNameCamelcase | remove: ' ' }}
|
||||
expr: {{ rule.query }}
|
||||
for: 5m
|
||||
labels:
|
||||
severity: {{ rule.severity }}
|
||||
annotations:
|
||||
summary: "{{ rule.name }} (instance {% raw %}{{ $labels.instance }}{% endraw %})"
|
||||
description: "{{ rule.description }}\n VALUE = {% raw %}{{ $value }}{% endraw %}\n LABELS: {% raw %}{{ $labels }}{% endraw %}"
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
</p>
|
||||
</details>
|
||||
<br/>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</p>
|
||||
</details>
|
||||
<br/>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
</li>
|
||||
{% endfor %}
|
||||
<hr/>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
|
|
|||
Loading…
Reference in a new issue