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
(UIDloki
): sélectionnez cette source de données si vous voulez visualiser les logs.Thanos
(UIDthanos
): 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
(UIDthanos_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
- augmenter la limite Grafana avec le bouton
-
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 onDeadlineExceeded
word{namespace="kube-system"} |~ "code.*DeadlineExceeded"
will filter on regular expressioncode.*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 :