[TP] Projet 5 : Prise en main
Ce que vous allez apprendre dans ce TP :
- Créer un 'drill down' entre tableaux de bord
- Créer des variables avancées (assistées): key-value
- Créer des variables avancées (personnalisées): key-value
- Identifier et reconnaître la source de donnée
- Construction et utilisation d'une requête Lucene
- Utilisation d'une visualisation de type Geomap
- Personnalisation de la visualisation
- Définir la plage horaire par défaut
- Définir le titre et la description d'un panel
- Faire des graphiques à bornes
- Mettre en place un tableau avec feu tricolore
- Utiliser le value mapping
- Utiliser les regex
- Faire des graphiques à secteurs
- Construire unb panel à partir d'un autre
- Prendre en main la visualisation de type Logs
- Faire des requêtes sur des intervalles avec Lucene
- Faire des séries temporelles
- Utiliser le mode Metrics de la datasource Elasticsearch
- Faire des regroupements selon un critère
- exclure un champ par négation avec lucene
- Mettre en place une alerte
Introduction
Ce que vous allez apprendre dans cette section :Pour ce projet, vous devez avoir fait en intégralité le Projet 4
- Créer un 'drill down' entre tableaux de bord
- Créer des variables avancées (assistées): key-value
- Créer des variables avancées (personnalisées): key-value
-
Création du tableau de bord
Dans le dossier que vous venez de créer, vous devez créer un tableau de bord que vous allez nommer 'projet 5' et lui affecter le tag 'projet 5'. Vous devez ensuite identifier la bonne source de données qui correspond à Elasticsearch. -
Variable host_avance1
Vous devez créer une variable nommée 'host_avance1' et avec comme label 'Host avancé 1' qui va afficher la liste des domaines(champ 'host') présents Dans la source de donnée de type 'Infinity'. L'URL a utiliser pour construire les variables est la suivante : https://github.com/RousselTM/grafana-formation/blob/main/tp/data/host_avance1.jsonATTENTION: Vous remarquez que Dans le json il y a deux champs particulier : '__text' et '__value' qui sont des champs spéciaux que Grafana sais interpréter comme clé et valeur de la variable.
-
Variable host_avance2
Vous devez créer une variable nommée 'host_avance2' et avec comme label 'Host avancé 2' qui va afficher la liste des domaines(champ 'host') présents Dans la source de donnée de type 'Infinity'. L'URL a utiliser pour construire les variables est la suivante : https://github.com/RousselTM/grafana-formation/blob/main/tp/data/host_avance2.jsonATTENTION: Vous remarquez que Dans le json il n'y a plus les deux champs particulier : '__text' et '__value'. De plus, les champs n'ont plus de titre et sont de la forme clé:valeur. Vous devez donc vous servir du champ 'Regex' pour extraire les informations qui nous interesse.
-
Variable host_avance3
Vous devez créer une variable nommée 'host_avance3' et avec comme label 'Host avancé 3' qui va afficher la liste des domaines(champ 'host') présents Dans la source de donnée de type 'Infinity'. L'URL a utiliser pour construire les variables est la suivante : https://github.com/RousselTM/grafana-formation/blob/main/tp/data/host_avance3.jsonATTENTION: Nouveau cas d'utilisation. Cette fois les informations qui nous interessent sont Dans un sous champ. Vous devez donc basculer du Type 'JSON' au type 'UQL'. Dans le champ 'UQL' qui va apparaître il vous faudra construire la syntaxe qui va bien.
-
Test variables host_avanceX
Vous devez créer 3 visualisations de type 'Text' et les positionner côte à côte. Chacune va affiche les 3 formats de variable suivants :Defaut: ${host_avanceX} Valeur: ${host_avanceX:value} Titre: ${host_avanceX:text}
Time series avec Annotations
Ce que vous allez apprendre dans cette section :Prendre en main la représentation sous forme de carte
- Identifier et reconnaître la source de donnée
- Construction et utilisation d'une requête Lucene
- Utilisation d'une visualisation de type Geomap
- Personnalisation de la visualisation
- Définir la plage horaire par défaut
- Définir le titre et la description d'un panel
-
Source de données
Vous devez identifier et choisir la source de donnée de type Elasticsearch.INFORMATION : En entreprise, vous devez définir une norme de nommage Dans Grafana. L'erreur que certains font est de mettre le type de la source Dans le nom pourtant il est facilement identifiable Dans la console Grafana
-
La requête
Vous devez construire une requête Lucene pour afficher uniquement les documents qui ont un statut http à '503' et dont le champ 'machine.os' commence par 'win'. Pour rappel, vous avez créé une variable donc toutes les requêtes doivent l'inclure ! -
Type de visualisation
Vous devez choisir une visualisation qui correspond à une représentation sous forme de carte et utilise les champs suivants pour les coordonnées :- Latitude : geo.coordinates.lat
- Longitude : geo.coordinates.lon
-
Titre et description
Vous devez définir, pour la visualisation, comme titre 'Répartition géographique des visiteurs' et comme description 'Représentation géographique des utilisateurs' -
Le détails des points
Vous devez configurer le tableau pour qu'il affiche uniquement ces champs quand on se positionne sur un point :- host
- clientip
- @timestamp
- geo.dest
- geo.src
- message
-
Plage horaire par défaut
Vous devez configurer le tableau de bord pour qu'il affiche par défaut les données sur 30 jours.
Panel : SPC Histogram
Ce que vous allez apprendre dans cette section :Vous devez créer un panel qui affiche un graphique à bornes représentant la répartition des codes retours. Vous devez mettre en place un feu tricolore sur ce modèle
- Faire des graphiques à bornes
- Mettre en place un tableau avec feu tricolore
- Utiliser le value mapping
- Utiliser les regex
- Vert avec le message 'OK' : code 2xx
- Jaune avec le message 'Redirection' : code 3xx
- Orange avec le message 'Erreur client' : code 4xx
- Rouge avec le message 'Erreur serveur' : code 5xx
-
Regroupement des données
Vous devez mettre en place, grâce aux transformations, le regroupement des données par code retour et compter le nombre de fois que ce dernier apparaît Dans le temps. -
Conversion des données
Un graphe à borne utilise des champs de type 'string'. Vous devez donc convertir les codes retour en chaîne de caractère. -
Mode de coloration
Vous devez indiquer à Grafana qu'il doit se servir du code retour pour la couleur de la borne. -
Feu tricolore
Vous devez mettre en place le feu tricolore comme demandé en ci-dessus.
Panel : Graphiques à secteurs
Ce que vous allez apprendre dans cette section :Vous devez créer un panel qui affiche un graphique à bornes représentant la répartition des codes retours. Vous devez personnaliser les labels sur ce modèle
- Faire des graphiques à secteurs
- Construire unb panel à partir d'un autre
- Message 'OK' : code 2xx
- Message 'Redirection' : code 3xx
- Message 'Erreur client' : code 4xx
- Message 'Erreur serveur' : code 5xx
-
Dupliquer un panel
Vous devez dupliquer le panel que vous venez de créer (Panel : Graphiques à bornes). Et les redimensionner pour qu'ils s'affichent sur une même ligne. Celui à Bornes occupe environ 2/3 de la ligne et le clone 1/3. -
Changer visualisation
Vous devez modifier la visualisation pour que les données soient désormais affichées sous forme de secteurs. -
Feu tricolore
Est-il possible de faire du feu tricolore avec ce type de visualisation ?
Panel : Logs
Ce que vous allez apprendre dans cette section :Vous devez ajouter au tableau de bord un panel pour visualiser des Logs.
- Prendre en main la visualisation de type Logs
- Faire des requêtes sur des intervalles avec Lucene
-
Erreurs HTTP
Vous devez ajouter un panel pour représenter des logs et qui affiche uniquement les logs d'erreurs HTTP.INFORMATION: une log d'erreur HTTP est une log qui a un code retour http de 4xx à 5xx
Panel : série temporelle
Ce que vous allez apprendre dans cette section :Créer une série temporelle avec des données issues d'Elasticsearch. Ce graphe doit donner l'évolution du nombre de documents par code retour HTTP
- Faire des séries temporelles
- Utiliser le mode Metrics de la datasource Elasticsearch
- Faire des regroupements selon un critère
- exclure un champ par négation avec lucene
-
Le type de requête
Vous devez positionner le bon mode pour faire de la série temporelle. ET Dans la requête exclure tous les status HTTP à 2xx et 3xx -
Le regroupement
Vous devez configurer Grafana pour qu'il regroupe les métriques par temps (Dans Elasticsearch le champ par défaut du temps est '@timestamp') et par code retour HTTP. -
La visualisation
Vous devez sélectionner la visualisation qui permet d'afficher des series temporelles.
Alertes
Ce que vous allez apprendre dans cette section :Vous devez positionner une alerte sur des erreurs serveurs.
- Mettre en place une alerte
INFORMATION: une erreur serveur est une log qui a un code retour http 5xx
-
Erreur serveur
Vous devez mettre en place une alerte à chaque fois qu'on a une erreur serveur qui se produit. Les notifications doivent être envoyées sur le point de contect 'RousselTM'. Vous pouvez vérifier les notifications à l'adresse : Voir les notifications.
Glossaire de la formation
La capacité à connaître l'état interne d'un système à partir des données qu'il émet.Ces données sont classées en 3 piliers : logsmétriquestracesprofil...
Plateforme open source de visualisation de données et d'analyse de métriques interactives.
Système open source de surveillance et d'alerte, particulièrement adapté pour la collecte de métriques dans des environnements dynamiques (comme Kuber...
Surveillance des performances applicatives pour identifier, diagnostiquer et résoudre les problèmes complexes liés aux performances et à la disponibil...
Outil open source de test de charge (load testing) conçu pour l'ingénierie de performance, permettant d'évaluer la fiabilité et la scalabilité des sys...
Technique (issue du pilier des Traces) permettant de suivre le cheminement complet d'une requête à travers de multiples micro-services pour identifier...
Mesures numériques collectées à intervalles réguliers (ex: CPU, RAM, temps de réponse) utilisées pour évaluer l'état de santé global d'un système au f...
Processus consistant à notifier les équipes (via email, Slack, Teams) lorsqu'un événement spécifique, un dépassement de seuil ou une anomalie est déte...
Codes de statut HTTP standardisés indiquant le résultat du traitement d'une requête.1xx (Information) : 100 Continue, 101 Switching Protocols.2xx (Suc...
Fichier de journalisation enregistrant les requêtes traitées par un serveur web (Apache, Nginx, Lighttpd, etc.). Il permet de tracer l'activité du ser...
L'adresse IP de l'utilisateur effectuant la requête vers le serveur web. Lorsqu'un utilisateur passe par un Load Balancer ou un proxy (ex: Cloudflare)...
La date et l'heure exactes auxquelles la requête a été reçue par le serveur.Configuration : %t dans Apache, $time_local ou $time_iso8601 dans Nginx.
La ligne de requête initiale du client. Elle comprend généralement la méthode HTTP (ex: GET), l'URL demandée et la version du protocole HTTP.Configura...
Le code de statut HTTP final renvoyé par le serveur au client (ex : 200 pour un succès, 404 pour ressource non trouvée).Configuration : %>s dans Apach...
Le volume des données renvoyées au client, mesuré en octets (généralement sans les en-têtes HTTP).Configuration : %b ou %O dans Apache, $body_bytes_se...
L'URL de la page web depuis laquelle le client a cliqué ou suivi un lien pour accéder à la ressource actuelle.Configuration : %{Referer}i dans Apache,...
Les informations d'identification fournies par le client concernant son navigateur, son système d'exploitation et son appareil. Sa structure standard ...
La durée totale prise par le serveur pour traiter la requête et renvoyer la réponse au client.Configuration : %D (microsecondes) ou %T (secondes) dans...
Articles recommandés
Le concept de score va permettre à Elasticsearch de classer vos documents par...
Dans Dynatrace, les concepts de 'Technologie' et de 'Services' aident à organ...
Cet article détaille les différences entre trois concepts essentiels dans l'e...
Comprendre l'évolution de la facturation dans Dynatrace : la différence entre...
Découvrez les différents types de services que Dynatrace peut surveiller, leu...
Découvrez comment utiliser les SLO (Service Level Objectives) dans Dynatrace ...
Découvrez les différences entre Apdex et Core Web Vitals, deux indicateurs de...
Comme toujours dans nos missions de conseil, nous recommandons aux entreprise...
Découvrez les raisons clés pour collecter des métriques avec des exemples con...
Découvrez en détail les quatre types de métriques supportés par Prometheus (C...
Désormais vous disposez dans Dynatrace (SaaS) d'un Data Lakehouse nommé Grail...
Apprenez à maîtriser PromQL, le langage de requête utilisé dans Prometheus, a...
Pense‑bête des commandes CLI/API pour gérer tags, propriétés, variables d'env...
Apprenez à utiliser Grafana Alloy pour collecter, transformer et acheminer lo...
Découvrez comment configurer Grafana Alloy pour superviser le serveur sur leq...
Découvrez pourquoi et comment configurer Grafana Alloy pour qu'il se supervis...
Découvrez comment activer, sécuriser et utiliser l'interface web intégrée de ...
Découvrez le protocole OTLP expliqué simplement. Comprendre les différences e...
Tutoriel complet sur Grafana Alloy. Découvrez comment installer, configurer e...
Maîtrisez la syntaxe déclarative de Grafana Alloy (langage River), apprenez à...
Apprenez à configurer Grafana Alloy pour collecter, transformer et envoyer de...
La capacité à connaître l'état interne d'un système à partir des données que ...
Découvrez comment configurer Grafana Alloy pour lire des fichiers de logs, jo...
Plongez dans le traitement des traces distribuées. Apprenez à ingérer des tra...
Découvrez comment configurer le profilage continu (Continuous Profiling) dans...
Apprenez à gérer les déploiements à grande échelle de Grafana Alloy. Configur...
Découvrez Grafana Assistant, l'intelligence artificielle intégrée à Grafana C...
Comparaison détaillée entre Grafana Alloy et l'OpenTelemetry Collector. Décou...
Comparaison entre Grafana Alloy et Dynatrace ActiveGate. Comprenez les différ...
Découvrez l'évolution des collecteurs de télémétrie de l'écosystème Grafana. ...
Un guide de référence complet sur tous les composants disponibles dans Grafan...
Cet article détaille les différences entre trois concepts essentiels dans l'e...