La correction est intégrée au TP (Voir les encadrés de couleur vert)
Ce que vous allez apprendre dans ce TP
- Comprendre le rôle de Grail
- Appliquer les bonnes pratiques DQL
Rappels sur Grail et DQL #
Ce que vous allez apprendre dans cette section
- Comprendre le rôle de Grail
- Appliquer les bonnes pratiques DQL
Avant de commencer, faisons un point sur Grail et les bonnes pratiques pour construire vos requêtes DQL.
Qu'est-ce que Grail ?
Grail est le data lakehouse de Dynatrace. Contrairement aux bases de données traditionnelles, Grail est conçu spécifiquement pour l'observabilité. Il stocke les logs, métriques, traces et événements (bizevents) de manière unifiée, sans nécessiter de schémas stricts ni d'indexation préalable (schema-on-read). Cela permet d'interroger massivement des données avec un contexte topologique (Smartscape) toujours conservé.
Bonnes pratiques pour les requêtes DQL
Pour écrire des requêtes performantes en DQL (Dynatrace Query Language), vous devez suivre quelques règles d'or :- Filtrer très tôt : Utilisez la commande
filterle plus tôt possible dans votre requête pour réduire le volume de données à traiter dans les pipelines suivants. - Sélectivité temporelle : Limitez toujours la plage horaire de votre recherche (directement via le sélecteur de temps ou dans la requête).
- Exploiter les Entity Selectors : Utilisez la fonction
entitySelector()pour bénéficier du contexte dynamique au lieu de chercher des IDs statiques en dur. - Utiliser limit() : Lors de l'écriture et de vos tests, terminez vos requêtes par
limit 10pour accélérer les temps de réponse.
- Filtrer très tôt : Utilisez la commande
Création des requêtes DQL #
Vous allez créer 5 requêtes DQL qui exploitent la fonction `entitySelector()` pour cibler dynamiquement vos entités.
Requête 1 : Logs des hôtes en production
Écrivez une requête DQL pour récupérer les logs uniquement pour les hôtes portant le tag 'env:training'. Vous devez utiliser un Entity Selector.
Vous pouvez utiliser la fonction `in()` couplée à `entitySelector()`.
fetch logs | filter in(dt.entity.host, entitySelector("type(HOST),tag(env:training)")) | limit 50Requête 2 : Événements liés aux services Java
Écrivez une requête pour lister et compter les événements récents liés aux services exécutant la technologie 'Java'.
fetch events | filter in(dt.entity.service, entitySelector("type(SERVICE),softwareTechnologies(JAVA)")) | summarize count(), by: {event.type, dt.entity.service}Requête 3 : Utilisation CPU via Timeseries
Grail permet également d'interroger les métriques. Affichez l'utilisation CPU moyenne (métrique `builtin:host.cpu.usage`) pour tous les hôtes appartenant à une Management Zone nommée 'MZ_Finance'.
L'utilisation de l'Entity Selector est parfaitement valide dans l'argument `filter` de `timeseries`.
timeseries avg(builtin:host.cpu.usage), by:{dt.entity.host}, filter: in(dt.entity.host, entitySelector("type(HOST),mzName(MZ_Finance)"))Requête 4 : Recherche d'erreurs d'une équipe spécifique
Récupérez les logs contenant le mot 'error' pour les groupes de processus (PROCESS_GROUP) qui sont possédés par l'équipe backend (tag 'owner:backend').
fetch logs | filter in(dt.entity.process_group, entitySelector("type(PROCESS_GROUP),tag(owner:backend)")) | filter matchesValue(content, "error") | limit 20Requête 5 : Événements métier (Bizevents) par application
Récupérez les derniers événements métier (bizevents) générés, mais limitez cette recherche uniquement aux applications surveillées de type APPLICATION (Web ou Mobile).
fetch bizevents | filter in(dt.entity.application, entitySelector("type(APPLICATION)")) | limit 10
Exportation vers Notebook et Tableau de bord #
L'objectif ici est de sauvegarder, documenter et visualiser le résultat de vos requêtes pour vos équipes.
Création du Notebook
Exécutez vos requêtes DQL dans l'application Notebooks. Mettez en page votre document et sauvegardez-le en respectant la norme de nommage : `formation-` (par exemple : `formation-martin`). Allez dans l'application Notebooks. Créez un nouveau document, cliquez sur le titre généré automatiquement en haut à gauche pour le renommer en `formation-
`. Ajoutez un bloc de type DQL pour chaque requête développée précédemment, et des blocs de type Markdown pour les documenter. Les Notebooks sont idéaux pour le post-mortem car ils partagent le contexte et la donnée au même endroit. Épingler dans un Dashboard
Créez un nouveau tableau de bord nommé `formation-`. Épinglez au moins 3 de vos résultats DQL dans ce tableau de bord. Vous avez deux méthodes au choix :
1. Depuis votre Notebook, juste au-dessus du résultat de votre requête, cliquez sur le bouton Pin to dashboard, puis choisissez de créer un nouveau Dashboard nommé `formation-`.
2. Allez directement dans l'application Dashboards, créez un Dashboard nommé `formation-`, ajoutez une tuile de type Code, et collez vos requêtes DQL.
Niveau de difficulté : ●●●○○ (3/5)
Glossaire de la formation
Observabilité
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...
CI/CD
Intégration Continue et Déploiement Continu. Pratiques DevOps visant à automatiser les tests et le déploiement des applications pour livrer plus rapid...
Dynatrace
Plateforme d'observabilité complète basée sur l'intelligence artificielle (Davis), offrant la surveillance applicative (APM), d'infrastructure et l'ex...
APM (Application Performance Monitoring)
Surveillance des performances applicatives pour identifier, diagnostiquer et résoudre les problèmes complexes liés aux performances et à la disponibil...
SLA (Service Level Agreement)
Contrat officiel conclu entre un fournisseur de services et son client, définissant le niveau de service attendu (disponibilité, temps de réponse, etc...
SLO (Service Level Objective)
Objectif interne chiffré défini par l'équipe technique (SRE) concernant le niveau de fiabilité d'un service (ex: 99.9% de disponibilité). Relation : L...
SLI (Service Level Indicator)
Métrique quantitative réelle mesurant le niveau de service fourni en production (ex: taux de réussite des requêtes, latence moyenne). Relation : Le SL...
DEM (Digital Experience Monitoring)
Surveillance de l'expérience numérique. Englobe les technologies permettant de suivre et d'optimiser l'expérience des utilisateurs finaux sur les appl...
RUM (Real User Monitoring)
Surveillance des utilisateurs réels. Technique d'observabilité passive qui capture et analyse chaque interaction des utilisateurs avec une application...
Synthetic Monitoring
Surveillance synthétique. Technique d'observabilité active utilisant des scripts automatisés (robots) pour simuler le parcours des utilisateurs et vér...
Traces distribuées
Technique (issue du pilier des Traces) permettant de suivre le cheminement complet d'une requête à travers de multiples micro-services pour identifier...
Métriques
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...
AIOps (Artificial Intelligence for IT Operations)
Utilisation de l'intelligence artificielle et de l'apprentissage automatique pour automatiser et améliorer les opérations informatiques (ex: détection...
NoOps
Concept où l'environnement informatique est tellement automatisé et abstrait (ex: Serverless, PaaS) qu'il ne nécessite quasiment plus d'équipe opérati...
OpenTelemetry
Framework open source fournissant des standards, APIs et SDKs pour collecter et exporter des données d'observabilité (traces, métriques, logs) de mani...
Articles recommandés
Comprendre la notion de score
Le concept de score va permettre à Elasticsearch de classer vos documents par pertinence lors d u...
Différences entre Technologies et Services dans Dynatrace
Dans Dynatrace, les concepts de 'Technologie' et de 'Services' aident à organiser et surveiller l...
OpenTelemetry : Instrumentation Automatique vs Manuelle
Comprenez les différences entre l'instrumentation automatique et manuelle avec OpenTelemetry, leu...
Dynatrace : Différences entre SQL Modifications, SQL Queries or Procedures, et SQL Transactions
Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...
Types de consommation de licence
Comprendre l'évolution de la facturation dans Dynatrace : la différence entre l'ancien modèle de ...
Les Types de Services Dynatrace : Comprendre et Optimiser Votre Surveillance Applicative
Découvrez les différents types de services que Dynatrace peut surveiller, leur rôle, et comment l...
Les SLO Dynatrace : Comprendre et Gérer les Objectifs de Niveau de Service
Découvrez comment utiliser les SLO (Service Level Objectives) dans Dynatrace pour définir et surv...
Apdex vs Core Web Vitals
Découvrez les différences entre Apdex et Core Web Vitals, deux indicateurs de performance essenti...
Comprendre Elastic Common Schema(ECS)
Comme toujours dans nos missions de conseil, nous recommandons aux entreprises d'uniformiser, de ...
Pourquoi collecter des métriques
Découvrez les raisons clés pour collecter des métriques avec des exemples concrets pour chaque cas.
Les types de métriques dans Prometheus
Découvrez en détail les quatre types de métriques supportés par Prometheus (Counter, Gauge, Histo...
Grail : Dynatrace Data Lakehouse
Désormais vous disposez dans Dynatrace (SaaS) d'un Data Lakehouse nommé Grail dont vous pouvez co...
Introduction à PromQL
Apprenez à maîtriser PromQL, le langage de requête utilisé dans Prometheus, avec des exemples et ...
Dynatrace OneAgent : tags, props, vars CLI
Pense‑bête des commandes CLI/API pour gérer tags, propriétés, variables d'environnement, versions...
Grafana Alloy : Collecte et Transformation de Télémétrie
Apprenez à utiliser Grafana Alloy pour collecter, transformer et acheminer logs, métriques et tra...
Grafana Alloy : Collecter les métriques système et les logs locaux
Découvrez comment configurer Grafana Alloy pour superviser le serveur sur lequel il s'exécute, av...
Grafana Alloy : L'importance de l'auto-supervision (Self-Monitoring)
Découvrez pourquoi et comment configurer Grafana Alloy pour qu'il se supervise lui-même, en colle...
Grafana Alloy : Comprendre et exploiter l'Interface Utilisateur (UI)
Découvrez comment activer, sécuriser et utiliser l'interface web intégrée de Grafana Alloy pour v...
OTLP expliqué : comprendre le protocole OpenTelemetry
Découvrez le protocole OTLP expliqué simplement. Comprendre les différences entre gRPC et HTTP po...
Grafana Alloy : Guide complet pour collecter métriques, logs et traces
Tutoriel complet sur Grafana Alloy. Découvrez comment installer, configurer et utiliser ce collec...
Grafana Alloy : Syntaxe et Configuration (Alloy Language : River)
Dans le cadre d'une formation Grafana ou formation observabilité, maîtrisez la syntaxe déclarativ...
Grafana Alloy : Collecte de Métriques (Prometheus & Ecosystem)
Apprenez à configurer Grafana Alloy pour collecter, transformer et envoyer des métriques en utili...
C'est quoi l'observabilité
La capacité à connaître l'état interne d'un système à partir des données que cette dernière émet...
Grafana Alloy : Gestion des Logs avec Loki
Découvrez comment configurer Grafana Alloy pour lire des fichiers de logs, journald ou des flux r...
Grafana Alloy : Gestion des Traces avec Tempo
Plongez dans le traitement des traces distribuées. Apprenez à ingérer des traces OTLP, Jaeger ou ...
Grafana Alloy : Profilage Continu avec Pyroscope
Découvrez comment configurer le profilage continu (Continuous Profiling) dans vos environnements ...
Grafana Alloy : Déploiement Avancé et Clustering
Maîtrisez le déploiement avancé de Grafana Alloy en mode clustering. Comprenez ses avantages pour...
Grafana Assistant : L'IA au service de l'observabilité
Découvrez Grafana Assistant, l'intelligence artificielle intégrée à Grafana Cloud. Apprenez comme...
Grafana Alloy vs OpenTelemetry Collector : Lequel choisir ?
Comparaison détaillée entre Grafana Alloy et l'OpenTelemetry Collector. Découvrez les avantages, ...
Grafana Alloy vs Dynatrace ActiveGate : Lequel choisir ?
Comparaison entre Grafana Alloy et Dynatrace ActiveGate. Comprenez les différences fondamentales ...
Grafana Alloy vs Grafana Agent vs Promtail : Lequel choisir ?
Découvrez l'évolution des collecteurs de télémétrie de l'écosystème Grafana. Comparatif détaillé ...
Référence des Composants Grafana Alloy
Un guide de référence complet sur tous les composants disponibles dans Grafana Alloy, organisé pa...
Dynatrace : Maîtriser les Entity Selectors pour une observabilité à grande échelle
Découvrez l'importance stratégique des Entity Selectors, maîtrisez leur syntaxe avancée, et adopt...
Dynatrace : Gestion du RGPD et protection de la vie privée (Data Privacy)
Apprenez à configurer Dynatrace pour respecter le RGPD, masquer les données sensibles et activer ...
Dynatrace Synthetic Monitoring : Guide complet et bonnes pratiques
Découvrez comment utiliser le Synthetic Monitoring de Dynatrace pour surveiller proactivement vos...
Dynatrace Credential Vault : Sécuriser et gérer vos secrets
Découvrez comment l'application Credential Vault de Dynatrace permet de gérer de manière sécurisé...
Les variantes du DevOps : Comprendre l'évolution de la culture de l'ingénierie
Découvrez les différentes déclinaisons du DevOps : DevSecOps, AIOps, NoOps, GitOps et FinOps. Com...
Dynatrace vs Datadog : Le duel des leaders de l'APM
Comparatif complet entre les deux géants de l'observabilité. Automatisation par IA contre flexibi...
Grafana vs Kibana : Quel outil de visualisation choisir ?
Découvrez les différences fondamentales entre Grafana, le roi des métriques multi-sources, et Kib...
Grafana Loki vs Elasticsearch : La bataille du stockage de logs
Comparatif entre Loki, le système de logs inspiré par Prometheus, et Elasticsearch, le moteur de ...
Prometheus vs VictoriaMetrics : Scalabilité des métriques
Pourquoi choisir VictoriaMetrics comme alternative à Prometheus pour le stockage à long terme et ...
OpenTelemetry vs Dynatrace OneAgent : Standard ouvert ou magie propriétaire ?
Comprenez la différence entre l'instrumentation manuelle standardisée d'OpenTelemetry et l'automa...
XLA : Pourquoi l'Expérience Utilisateur est le nouveau standard de l'Observabilité
Découvrez le concept de XLA (Experience Level Agreements), la différence avec les SLAs traditionn...
Dynatrace : Management Zones vs Segments
Comprenez les différences fondamentales entre les Management Zones et les Segments dans Dynatrace...
Exploiter l'API Dynatrace v2 : Guide Complet de l'Automatisation
Apprenez à utiliser l'API Dynatrace pour automatiser votre observabilité : gestion des scopes, ro...
Qu'est-ce que le Cloud Computing ? La définition du NIST
Comprenez les fondamentaux du Cloud Computing à travers les 5 caractéristiques essentielles défin...
IaaS, PaaS, SaaS : Comprendre les modèles de service
Découvrez les différences entre l'infrastructure, la plateforme et le logiciel en tant que service.
Le modèle de responsabilité partagée en sécurité
Apprenez qui est responsable de quoi en matière de sécurité dans le Cloud.
Élasticité vs Scalabilité : Les clés de la performance
Comprenez comment le cloud s'adapte automatiquement à la charge de vos utilisateurs.
Introduction au FinOps : Maîtriser sa facture Cloud
Comment passer du CapEx à l'OpEx tout en gardant le contrôle financier.
Le Serverless : L'informatique sans serveurs à gérer
Focus sur le Function as a Service (FaaS) et l'abstraction de l'infrastructure.
Edge Computing : Amener le Cloud au plus près des données
Découvrez pourquoi le traitement à la périphérie du réseau est essentiel pour l'IoT et la latence.
Qu'est-ce qu'une application Cloud Native ?
Comprendre les principes des microservices, des conteneurs et des APIs.
Les 6 Rs : Stratégies de migration vers le Cloud
Découvrez les différentes approches pour déplacer votre infrastructure on-premise vers le nuage.
Synthetic Monitoring as Code : Industrialisez la gestion des scénarios synthétiques
Découvrez comment intégrer le Synthetic Monitoring dans vos pipelines CI/CD pour des tests de per...
Grafana Provisioning : Automatisez la gestion de vos tableaux de bord et sources de données
Découvrez comment utiliser le provisioning de Grafana pour gérer vos configurations (dashboards, ...
Les Data Sources dans Grafana : Connectez et unifiez vos données
Apprenez à étendre les capacités de Grafana via les Data Sources. Découvrez les plugins essentiel...
Maîtriser les Transformations dans Grafana : Manipulez vos données avec agilité
Apprenez à utiliser les transformations Grafana pour reformater, calculer et combiner vos données...
Maîtriser les Variables dans Grafana : Dynamisez vos Tableaux de Bord
Apprenez à utiliser les variables pour créer des tableaux de bord interactifs et réutilisables. D...
Guide des Bonnes Pratiques Dynatrace : Vers une Observabilité Mature
Optimisez votre plateforme Dynatrace grâce à nos recommandations d'experts : automatisation du ta...
Les types de transactions dans les base de données
Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...
Bonnes Pratiques OpenTelemetry (OTel) : Le Guide de l'Observabilité Moderne
Maîtrisez OpenTelemetry grâce à nos conseils d'experts : implémentation du Collector, respect des...
Protection des Applications
Découvrez comment sécuriser vos backends contre les abus et les attaques courantes. Guide pratiqu...
Haute Disponibilité
Assurez la continuité de service de vos applications avec les stratégies de haute disponibilité. ...
Bonnes Pratiques Grafana Alloy : Optimiser sa Collecte de Télémétrie
Découvrez les règles d'or pour configurer Grafana Alloy de manière robuste : modularité, gestion ...
Architecture OpenTelemetry : Comprendre les 3 niveaux
Plongée au cœur de l'architecture OpenTelemetry. Apprenez comment les données circulent de l'appl...