Aller au contenu

Grafana

Grafana Grafana est une interface utilisateur graphique (GUI) pour plusieurs outils dont Prometheus & Thanos metrics et Loki logs.

Grafana est une plateforme analytique qui permet de visualiser les métriques collectées par Prometheus, de construire des tableaux de bord à partir de métriques, et de visualiser et de filtrer les logs.


Note

Dans ce tutoriel, remplacez les valeurs suivantes comme suit :

  • ZONE_NAME à remplacer par le nom de votre zone d'administration (commence par ocb-).

Accéder à Grafana

Dans votre environnement d'administration, le service Grafana est situé à l'adresse suivante :

https://grafana.ZONE_NAME.caascad.com

Connexion

Pour pouvoir vous connecter à Grafana, vous avez besoin de votre identifiant/mot de passe Keycloak. Pour plus d'informations sur Keycloak, consultez la page Authentification.

A la première connexion, il vous est demandé de vous connecter avec un login/mot de passe ou avec Keycloak. Choisissez le bouton d'authentification Keycloak :

Vous serez ensuite redirigé vers l'authentification Keycloak :

Et ensuite, entrez votre Utilisateur / Mot de passe :

Une fois connecté, vous arriverez sur cette page :

Vous êtes maintenant prêt à utiliser Grafana.

Réinitialisation du mot de passe désactivée

La réinitialisation du mot de passe à partir de Grafana est maintenant désactivée pour des raisons de sécurité.

Le endpoint /user/password/send-reset-email n'est plus accessible avec le chemin normal. Mais, si jamais vous tombez sur cette page, vous ne serez pas autorisé à réinitialiser votre mot de passe :

L'authentification n'est pas gérée par Grafana, mais par Keycloack. Si vous devez réinitialiser votre mot de passe, veuillez utiliser l'URL de réinitialisation du mot de passe de Keycloack.

Sélectionner une source de données (datasource)

Dans Grafana, dans la plupart des tableaux de bord et dans l'onglet Explore, vous pouvez sélectionner une source de données.

Une datasource est une sorte de base de données dans laquelle sont stockées les métriques ou les logs que vous voulez visualiser.

Il y a 3 datasources Caascad :

  • Loki (UID loki): sélectionnez cette source de données si vous voulez visualiser les logs.
  • Thanos (UID thanos): sélectionnez cette source de données si vous voulez voir les métriques S3 gérées par les équipes Caascad. Cette source de données contient également des métriques système dont les équipes Caascad ont besoin pour gérer vos clusters.
  • Thanos-app (UID thanos_app): sélectionnez cette source de données si vous voulez visualiser les métriques.

Note

D'autres sources de données comme -- Grafana -- peuvent apparaître. Consultez la documentation officielle pour plus d'informations.

Visualiser les metriques

Allez sur l'onglet Explore et sélectionnez la datasource Thanos-app

Saisissez une expression PromQL puis Run Query (bouton bleu en haut à droite).

Astuce

Au lieu de cliquer sur Run Query, vous pouvez également taper Shift-Enter sur votre clavier.

Astuce

Dans la plupart des cas, vous commencerez par une expression de base avec cc_prom_source et namespace pour spécifier le cluster et le namespace où se trouvent vos métriques. Ensuite, vous améliorerez vos expressions avec d'autres labels en utilisant l'autocomplétion de Grafana.

Exemple : dans la capture d'écran ci-dessus, nous avons commencé avec l'expression {cc_prom_source="riker", namespace="kube-system"}. Puis nous avons amélioré l'expression en ajoutant le label service : {cc_prom_source="riker", namespace="kube-system", service="caascad-kube-proxy"}.

Consultez la documentation PromQL reference pour obtenir de l'aide sur les expressions PromQL.

Visualiser les logs

Allez sur l'onglet Explore et sélectionnez la datasource Loki

Tapez une expression LogQL puis Run Query (bouton bleu en haut à droite).

Astuce

Au lieu de cliquer sur Run Query, vous pouvez également taper Shift-Enter sur votre clavier.

Astuce

Dans la plupart des cas, vous commencerez par une expression de base avec cc_prom_source et namespace pour spécifier le cluster et le namespace où se trouvent vos logs. Ensuite, vous améliorerez vos expressions avec d'autres labels en utilisant l'autocomplétion de Grafana.

Warning

  • Notez qu'il existe une limitation Grafana sur le nombre de lignes de logs obtenues. Par défaut cette limitation est de 1000 par défaut. Cette limitation évite de bloquer Loki et/ou votre navigateur web avec un trop grand nombre de lignes.

    Si vous voulez voir les logs manquants, vous pouvez soit :

    • augmenter la limite Grafana avec le bouton Line limit (un nombre maximum ne peut pas être dépassé : il existe aussi une limitation Loki)
    • zoomer sur la section de temps où les logs ont pu être émis
  • Notez aussi qu'il existe une limitation sur la plage de temps de recherche de la requête. Vous ne pouvez pas faire une requête sur plus de 721h.

    Si vous voulez voir des logs plus anciens, vous pouvez décaler la plage de temps de recherche.

Vous pouvez cliquer sur une ligne de log pour avoir plus de détails :

Astuce

Dans la plupart des cas, après avoir filtré les logs avec des labels communs, vous ajouterez des filtres grep ou regex. Exemples :

  • {namespace="kube-system"} |= "DeadlineExceeded" will grep on DeadlineExceeded word
  • {namespace="kube-system"} |~ "code.*DeadlineExceeded" will filter on regular expression code.*DeadlineExceeded

Consultez la documentation LogQL reference pour obtenir de l'aide sur les expressions LogQL.

Dashboards

Grafana vous permets de regrouper les graphiques dans des tableaux de bord.

Cliquez sur Dashboards puis sur Manage :

Vous pouvez voir la liste des dashboards installés :

Il y a des dossiers (comme Kubernetes, Prometheus et General). Vous pouvez cliquer sur les dossiers pour obtenir la liste des tableaux de bord qui y sont stockés.

Vous pouvez également rechercher un tableau de bord spécifique si vous connaissez son nom (ou une partie de son nom).

Cliquez sur le tableau de bord recherché et vous le verrez.

Warning

Vous pouvez créer un nouveau tableau de bord ou importer un tableau de bord depuis le référentiel de dashboards de Grafana. Cependant, il n'est pas possible de les enregistrer.

Lorsque Grafana redémarre, tous les tableaux de bord non prédéfinis sont perdus. Étant donné que Grafana fonctionne sur un pod Kubernetes, les redémarrages peuvent survenir à tout moment.

Astuce

Lorsque vous mettez vos dashboards sur https://git.ZONE_NAME.caascad.com/MonitoringApp/dashboards, Grafana les reconnaîtra comme des tableaux de bord prédéfinis. C'est de cette manière que vous enregistrez un tableau de bord.

Plugins Grafana

Grafana peut être étendu avec des plugins. Si vous voulez ajouter un plugin dans Grafana, vous pouvez contacter le support Caascad.

Sous-échantillonnage (Downsampling)

Downsampling Thanos

Thanos génère des métriques sous-échantillonnées. Les paliers de sous-échantillonnage sont les suivantes :

  • raw (avec une courte retention)
  • 5 min (avec une longue retention)
  • 1h (avec une très longue retention)

Il n'est pas possible de configurer d'autre palier.

Dans Grafana, cela peut être observé sur les anciennes métriques : vous ne pourrez pas avoir le détail des points de la métrique lorsque vous visualisez les métriques après la période de rétention raw.

Downsampling Grafana

Grafana peut également sous-échantillonner les métriques. Ceci est utile par exemple lorsque vous avez trop de métriques à afficher, ou des métriques avec des pics indésirables.

Le downsampling de Grafana s'appelle step et peut être configuré dans la zone step en haut à droite :

Liens utiles