# PrometheusRules & Alertes via Grafana #### Présentation 08/11/22 --- ## Contexte La solution a été mise en place pour la plateforma BETA.<!-- .element: style="font-size:80%" --> - permet d'utiliser l'API de Prometheus pour :<!-- .element: style="font-size:80%" --> - visualiser les PrometheusRules définies dans Prometheus , - permet d'utiliser l'API d'Alertmanager pour :<!-- .element: style="font-size:80%" --> - visualiser les alertes, silences , - faire des queries sur les alertes, silences , - créer des tableaux de bord dans Grafana. --- ## PrometheusRules (datasource Thanos) Deux façons de voir les PrometheusRules :<!-- .element: style="font-size:80%" --> - par état des alertes (firing, pending etc.) <!-- .element: style="font-size:80%" --> ; - par groupe<!-- .element: style="font-size:80%" --> . Possibilité de filtrer les rules avec plusieurs options disponibles : <!-- .element: style="font-size:80%" --> - status , - labels. --- ## Alertes dans Grafana Deux façons de voir les alertes :<!-- .element: style="font-size:80%" --> - avec <!-- .element: style="font-size:80%" --> `unified alerting` ; - avec le plugin <!-- .element: style="font-size:80%" --> `camptocamp-prometheus-alertmanager-datasource`. --- ## Unified Alerting : ConfigMap ```yaml= apiVersion: v1 data: datasource_alertmanager.yaml: | apiVersion: 1 datasources: - name: "Alertmanager-cloud-client" type: "alertmanager" access: proxy orgId: 1 url: "http://client-alertmanager.monitoring-client.svc.cluster.local:9093" jsonData: implementation: "prometheus" kind: ConfigMap ... ``` --- ## Unified Alerting : Utilisation ![](https://oss.eu-west-0.prod-cloud-ocb.orange-business.com/hedgedoc-corp/uploads/634c68f3-e6ed-4695-817f-7aa2d0cc9218.png) --- ## Unified Alerting : Démo Lien :<!-- .element: style="font-size:80%" --> [Grafana unified alerting](https://grafana-infra.ocb-test05.caascad.com/alerting/notifications?alertmanager=Alertmanager) - visualisation des receivers ;<!-- .element: style="font-size:80%" --> - visualisation des alertes ;<!-- .element: style="font-size:80%" --> - création d'un silence ;<!-- .element: style="font-size:80%" --> - suppression d'un silence ;<!-- .element: style="font-size:80%" --> - ajout d'un receiver.<!-- .element: style="font-size:80%" --> --- ## Unified Alerting : Comparaison Karma / Grafana ![](https://oss.eu-west-0.prod-cloud-ocb.orange-business.com/hedgedoc-corp/uploads/c2414e09-5f79-47b7-9c77-a00b4d695ab4.png) --- ## Plugin : Visualisation Alertes - plugin type datasource : [camptocamp-prometheus-alertmanager-datasource](https://github.com/camptocamp/grafana-prometheus-alertmanager-datasource) ; --- ## Plugin : Déploiement - installation plugin : [`default.yaml`](https://sourcehub.orange-business.com/mcs-ngot/beta-use-cases-admin/-/blob/38a80ab7237631a4d30fa951a18ae2418d10021b/helm/grafana/values/default.yaml#L7) ; ``` grafana: plugins: - "camptocamp-prometheus-alertmanager-datasource" ``` - définition configmap pour utiliser la datasource : ``` apiVersion: v1 kind: ConfigMap name: grafana-datasource-alertmanagerplugin data: alertmanager_plugin.yaml: | datasources: - name: "Prometheus AlertManager" type: "camptocamp-prometheus-alertmanager-datasource" url: "http://alertmanager:9093" ``` --- ## Plugin : Dashboard *Alertmanager Alerts* - le dashboard [upstream](https://grafana.com/grafana/dashboards/12947) **ne fonctionnait pas** (juin 2022) à cause des filtres ; - construction d'un nouveau dashboard qui contient 3 panels : - alertes actives , - alertes silencées , - alertes prometheus (construite avec la métrique `ALERT_FOR_STATE` provenant de la datasource Thanos). --- ## Plugin : Utilisation #1 - menu *Explore* ![](https://oss.eu-west-0.prod-cloud-ocb.orange-business.com/hedgedoc-corp/uploads/8316b6d5-ff9d-4faf-8371-e75b450c4cb7.png) --- ## Plugin : Utilisation #2 - Dashboard *Alertmanager Alerts* ![](https://oss.eu-west-0.prod-cloud-ocb.orange-business.com/hedgedoc-corp/uploads/35332aa0-1625-4124-bd13-e66f3eaae8d4.png) --- ## Plugin : Démo - [Grafana](https://grafana.pf-beta.cloudservicesfactory.com/obs-ucc3/d/p6ml03vGH/alertmanager-alerts?orgId=1) : - Menu *Explore* - Dashboard *Alertmanager Alerts* --- ## Plugin : Observations - l'avantage principal de cette solution est d'avoir une seule interface pour la supervision des plateformes ; - dans le menu *Explore* il n'y a pas d’autocomplétion ; - dans dashboard labels `alertstatus` et `alertstatus_code` ne fonctionnent pas à cause d'une modification [upstream](https://github.com/camptocamp/grafana-prometheus-alertmanager-datasource/pull/98/files) ; - repo maintenu : - trois releases en 2022 (bug fixes et quelques features en plus) , - mise à jour récente : dernier commit 7 juin. --- ## Questions <style type="text/css"> p { font-size: smaller; } .reveal ul ul li { font-size: smaller; } .reveal section { text-align: left; } .reveal h2 { color: orange; text-align: left; border-bottom: 1px solid orange; } .reveal h1 { color: orange; text-align: left; border-bottom: 1px solid orange; margin-bottom: 0.4em; } .reveal code { color: aquamarine; font-size: smaller; } </style>
{"type":"slide","slideOptions":{"transition":"slide","center":true}}