1. Le ruler #
Les règles Prometheus, évaluées sur toutes les données.
Principe #
Le ruler évalue les règles d'enregistrement et d'alerte au format Prometheus, par tenant, sur l'ensemble des données de Mimir (pas seulement celles d'un Prometheus). Les résultats des règles d'enregistrement sont réécrits dans Mimir ; les alertes sont envoyées à l'Alertmanager.
ruler:
alertmanager_url: http://localhost:8080/alertmanager # Alertmanager intégré
rule_path: /data/ruler
ruler_storage:
s3: { bucket_name: mimir-ruler }Bonne Pratique : Déplacez les règles des Prometheus vers le ruler dès que vous agrégez plusieurs sources : une règle sum by (service) évaluée dans un Prometheus ne voit que ses propres cibles.Un fichier de règles #
# rules/api.yaml
namespace: api
groups:
- name: api-slo
interval: 1m
rules:
- record: service:http_requests:rate5m
expr: sum by (service) (rate(http_requests_total[5m]))
- alert: ApiHighErrorRate
expr: |
sum by (service) (rate(http_requests_total{code=~"5.."}[5m]))
/ sum by (service) (rate(http_requests_total[5m])) > 0.05
for: 10m
labels: { severity: critical }
annotations:
summary: "{{ $labels.service }} : plus de 5 % d'erreurs" 2. mimirtool #
Le couteau suisse de Mimir.
Installation et configuration #
# Binaire (Linux amd64)
curl -fLo mimirtool https://github.com/grafana/mimir/releases/latest/download/mimirtool-linux-amd64
chmod +x mimirtool
export MIMIR_ADDRESS=http://mimir:8080
export MIMIR_TENANT_ID=team-platformGérer les règles #
# Vérifier la syntaxe et le style
mimirtool rules check rules/*.yaml
mimirtool rules lint rules/*.yaml
# Charger un fichier, lister, comparer, synchroniser (GitOps)
mimirtool rules load rules/api.yaml
mimirtool rules list
mimirtool rules diff rules/*.yaml
mimirtool rules sync rules/*.yaml # supprime aussi ce qui n'est plus dans Git
# Convertir des règles Prometheus existantes
mimirtool rules prepare -i rules/*.yamlBonne Pratique : Placezmimirtool rules diffdans la CI des pull requests etmimirtool rules syncdans le déploiement : les règles deviennent du code relu et versionné.
Analyser l'usage des métriques #
mimirtool analyze compare les métriques utilisées par vos dashboards et règles aux métriques stockées : idéal pour supprimer les séries que personne ne lit.
mimirtool analyze grafana --address=http://grafana:3000 --key=$GRAFANA_TOKEN # metrics-in-grafana.json
mimirtool analyze ruler # metrics-in-ruler.json
mimirtool analyze prometheus --address=http://mimir:8080/prometheus --id=$MIMIR_TENANT_ID3. L'Alertmanager multi-tenant #
Une configuration par tenant.
Configurer et charger #
# mimir.yaml
alertmanager:
data_dir: /data/alertmanager
external_url: http://mimir.example.com/alertmanager
fallback_config_file: /etc/mimir/alertmanager-fallback.yaml# alertmanager.yaml du tenant team-platform
route:
receiver: slack
group_by: [alertname, service]
receivers:
- name: slack
slack_configs:
- api_url: https://hooks.slack.com/services/XXX
channel: '#alertes-plateforme'mimirtool alertmanager load alertmanager.yaml
mimirtool alertmanager getÀ savoir : Grafana sait gérer cet Alertmanager : ajoutez une source de données de type Alertmanager pointant vers http://mimir:8080/ avec l'implémentation « Mimir », puis gérez règles et silences depuis Grafana Alerting.Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
💬 Questions sur cette leçon
Aucune question pour l'instant : soyez le premier à demander de l'aide ou à partager votre configuration.
Articles recommandés
Alerter sur les logs avec le Ruler de Loki
Mettre en place des alertes et des recording rules LogQL avec le Ruler Loki : configuration, fich...
Bonnes pratiques d'alerting : Prometheus, Alertmanager et astreinte
Check-list pour un alerting efficace : règles sur les symptômes, sévérités, routage par équipe, r...
Prometheus : alerter avec Alertmanager (règles, routage, silences)
Mettre en place l'alerting Prometheus : règles d'alerte, Alertmanager, routage, regroupement, inh...
Bonnes pratiques Prometheus : métriques, cardinalité, règles et exploitation
Bonnes pratiques Prometheus : nommage des métriques, labels et cardinalité, intervalles de scrape...
Recording rules Prometheus : accélérer ses requêtes et ses tableaux de bord
Comprendre et maîtriser les recording rules de Prometheus : évaluation, convention de nommage, pi...
Pourquoi Grafana Mimir ? Architecture et modes de déploiement
Les limites de Prometheus seul, ce qu'apporte Mimir (stockage long terme, haute disponibilité, mu...
Mimir : le chemin d'écriture (distributor, ingesters, réplication et déduplication HA)
Comment Mimir ingère les métriques : remote_write, validation et limites du distributor, hash rin...
La stack LGTM (Loki, Grafana, Tempo, Mimir) : architecture et mise en place
Comprendre la stack LGTM de Grafana Labs : Loki pour les logs, Grafana pour la visualisation, Tem...
Thanos Ruler : règles et alertes sur la vue globale
Évaluer des règles d'enregistrement et d'alerte sur l'ensemble des clusters avec Thanos Ruler : c...