Glossaire et guide d'utilisation de l'APM
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Glossaire et guide d'utilisation de l'APM

L’interface de l’APM fournit de nombreux outils permettant de dépanner les performances de vos applications et de les mettre en corrélation avec les autres données dans Datadog, ce qui vous aide à identifier et à résoudre les problèmes liés aux systèmes hautement distribués.

ConceptDescription
ServiceLes services sont les composants d’une architecture de microservices moderne. Un service regroupe généralement des endpoints, des requêtes ou des tâches qui assurent le bon fonctionnement de votre application.
RessourceLes ressources représentent un domaine particulier d’une application client. Il s’agit généralement d’un endpoint web instrumenté, d’une requête de base de données ou d’une tâche en arrière-plan.
MonitorsLes monitors de métrique d’APM fonctionnent comme les monitors de métrique, mais proposent des commandes spécialement conçues pour l’APM. Utilisez ces monitors pour recevoir des alertes propres à chaque service concernant les hits, les erreurs et diverses mesures de latence.
TraceLes traces servent à suivre le temps passé par une application à traiter une requête, ainsi que le statut de la requête. Chaque trace est composée d’une ou de plusieurs spans.
SpanUne span représente une unité de travail logique dans un système distribué pour une période donnée. Un groupe de plusieurs spans correspond à une trace.
Span de premier niveauUne span est dite « de premier niveau » lorsqu’elle constitue le point d’entrée pour une requête envoyée à un service. Dans l’APM Datadog, on les distingue par le fait que le parent immédiat sur un flamegraph est affiché dans une couleur distincte.
Métriques de traceTout comme les autres types de métriques Datadog, les métriques de trace sont automatiquement collectées et conservées pendant une durée de 15 mois. Elles peuvent être utilisées pour identifier et recevoir des alertes sur les hits, les erreurs ou la latence.
Span indexéeLes spans indexées représentent toutes les spans indexées par les filtres de rétention ou les spans analysées de l’ancienne fonction App Analytics. Elles peuvent être utilisées pour rechercher, interroger et surveiller vos données dans Analytics.
Tags de spanAppliquez des tags à vos spans sous forme de paires clé-valeur pour corréler une requête dans la Vue Trace ou pour filtrer vos données dans Analytics.
Filtres de rétentionLes filtres de rétention sont des règles basées sur des tags définies au sein de l’interface utilisateur de Datadog. Elles déterminent les spans à indexer dans Datadog pendant 15 jours.
Contrôles de l’ingestionLes contrôles de l’ingestion servent à envoyer jusqu’à 100 % des traces à Datadog pour effectuer des recherches et des analyses en temps réel pendant 15 minutes.
Métrique de sous-coucheUne métrique de sous-couche correspond à la durée d’exécution d’un type/service donné au sein d’une trace.
Durée d’exécutionTemps total pendant lequel une span est considérée comme « active » (c.-à-d. qu’elle n’attend pas la finalisation d’une span enfant).

Remarque : les spans indexées étaient auparavant désignées par le terme de « spans analysées ». Le changement de dénomination a eu lieu à l’occasion du lancement de Tracing Without Limits le 20 octobre 2020.

Services

Une fois votre application instrumentée, la Liste des services est votre point de départ pour accéder à vos données d’APM.

Les services sont les composants d’une architecture de microservices moderne. Un service regroupe généralement des endpoints, des requêtes ou des tâches qui procèdent au scaling de vos instances. Par exemple :

  • Un groupe d’endpoints d’URL formant un service d’API.
  • Un groupe de requêtes de base de données formant un service de base de données.
  • Un groupe de tâches périodiques configurées dans le service crond.

La capture d’écran ci-dessous montre un système distribué à base de microservices pour un développeur de sites de e-commerce. On observe un web-store, un ad-server, un payment-db et un auth-service, tous représentés en tant que services dans l’APM.

La page Service List affiche la liste de tous vos services, tandis que la Service Map les représente visuellement. Chaque service dispose d’une page Service distincte qui vous permet de consulter et d’inspecter des métriques de trace relatives au débit, à la latence et aux taux d’erreurs. Utilisez ces métriques pour créer des widgets de dashboard, définir des monitors et visualiser les performances de chaque ressource associée au service, telle qu’un endpoint web ou une requête de base de données.

Vous ne voyez pas les endpoints HTTP attendus sur la page Service ? Dans l'APM, le nom du service n'est pas le seul paramètre pris en compte pour connecter des endpoints à un service : le `span.name` de la span de point d'entrée de la trace est également utilisé. Par exemple, dans le service web-store ci-dessus, la span de point d'entrée est `web.request`. Vous trouverez plus d'informations à ce sujet en cliquant ici.

Ressources

Les ressources représentent un domaine particulier d’une application client. Il s’agit généralement d’un endpoint web instrumenté, d’une requête de base de données ou d’une tâche en arrière-plan. Pour un service Web, ces ressources peuvent être des endpoints web dynamiques regroupés sous un nom de span tel que web.request. Pour un service de base de données, il peut s’agir de requêtes de base de données portant le nom de span db.query. Par exemple, le service web-store possède des ressources automatiquement instrumentées (endpoints web) qui gèrent les paiements, les mises à jour de panier, les ajouts d’article, etc. Chaque ressource possède sa propre page Ressource qui affiche les métriques de trace associées à chaque endpoint spécifique. Les métriques de trace peuvent être utilisées comme n’importe quelle autre métrique Datadog : elles peuvent être exportées vers un dashboard ou utilisées pour créer des monitors. La page Ressource affiche également le widget Résumé des spans avec une vue agrégée des spans pour toutes les traces, les distributions de latences des requêtes et les traces indiquant les requêtes adressées à cet endpoint.

Trace

Les traces servent à suivre le temps passé par une application à traiter une requête, ainsi que le statut de la requête. Chaque trace est composée d’une ou de plusieurs spans. Durant le cycle de vie de la requête, il est possible de visualiser les appels distribués au sein de vos services (grâce à l’injection/l’extraction d’un ID de trace via les en-têtes HTTP), de vos bibliothèques instrumentées automatiquement et de vos instrumentations manuelles à l’aide d’outils open source tels que OpenTracing sous forme de Flamegraph. La page Vue Trace présente des informations sur la trace issues d’autres sections de la plateforme, telles que Connecter vos logs à vos traces, Ajouter des tags à des spans et Recueillir des métriques runtime.

Spans

Une span représente une unité de travail logique dans un système pour une période donnée. Chaque span comprend un span.name, une heure de début, une durée et des tags de span. Une span peut par exemple peut décrire le temps passé pour un appel distribué sur une machine distincte ou le temps passé sur un composant minime dans le cadre d’une opération plus importante. Les spans peuvent être imbriquées les unes aux autres, ce qui crée une relation parent-enfant entre elles.

Dans l’exemple ci-dessous, la span rack.request correspond au point d’entrée de la trace. Cela signifie que la page du service web-store affiche les ressources composées de traces ayant une span de point d’entrée nommée rack.request. L’exemple montre également les tags ajoutés côté application (merchant.name, merchant.tier, etc.). Ces tags définis par l’utilisateur peuvent être utilisés pour rechercher et analyser des données d’APM dans Analytics.

Span de premier niveau

Une span est dite « de premier niveau » lorsqu’elle constitue le point d’entrée pour une requête envoyée à un service. Dans l’APM Datadog, on les distingue par le fait que le parent immédiat sur un flamegraph est affiché dans une couleur distincte. Les services sont également affichés sur la droite lorsque vous consultez un flamegraph.

Dans l’exemple ci-dessous, les spans de premier niveau sont :

  • rack.request
  • aspnet_coremvc.request
  • La span verte tout en haut, sous aspnet_coremvc.request
  • Chaque span mongodb orange

Métriques de trace

Tout comme les autres types de métriques Datadog, les métriques de trace sont automatiquement collectées et conservées pendant une durée de 15 mois. Elles peuvent être utilisées pour identifier et recevoir des alertes relatives aux hits, aux erreurs ou à la latence. Les métriques de trace sont taguées par le host qui reçoit les traces ainsi que par le service ou la ressource. Par exemple, après avoir instrumenté un service Web, des métriques de trace sont recueillies pour la span de point d’entrée web.request dans le Résumé des métriques.

Dashboard

Les métriques de trace peuvent être exportées vers un dashboard à partir de la page Service ou Ressource. Elles peuvent également être interrogées à partir d’un dashboard existant.

Monitoring

Les métriques de trace sont idéales pour la surveillance. Il est possible de définir des monitors d’APM depuis les pages Nouveau monitor, Service ou Ressource. Des suggestions de monitors sont affichées sur la page Service ou Ressource.

Analyse et recherche de traces

Effectuez des recherches et des analyses sur 100 % des traces ingérées pendant 15 minutes et sur toutes les spans indexées pendant 15 jours.

Span indexée

Remarque : les spans indexées étaient auparavant désignées par le terme de « spans analysées ». Le changement de dénomination a eu lieu à l’occasion du lancement de Tracing Without Limits le 20 octobre 2020.

Les spans indexées représentent les spans indexées par un filtre de rétention et stockées dans Datadog pendant 15 jours. Elles peuvent être utilisées pour rechercher, interroger et surveiller vos données via la fonctionnalité Analyse et recherche de traces en fonction des tags inclus dans la span.

Après l'ingestion, vous pouvez contrôler et visualiser le nombre précis de spans indexées par service en créant des filtres de rétention basés sur des tags.

Tags de span

Appliquez des tags à vos spans sous forme de paires clé-valeur pour corréler une requête dans la Vue Trace ou pour filtrer dans Analytics. Les tags peuvent être ajoutés à une seule span ou à l’ensemble d’entre elles. Dans l’exemple ci-dessous, les requêtes (merchant.store_name, merchant.tier, etc.) ont été ajoutées en tant que tags à la span.

Pour commencer à taguer des spans dans votre application, consultez ce guide.

Une fois qu’un tag a été ajouté à une span, recherchez et interrogez le tag dans Analytics en cliquant sur le tag pour l’ajouter en tant que facette. Cela fait, la valeur de ce tag est stockée pour toutes les nouvelles traces et peut être utilisée dans la barre de recherche, le volet Facettes et la requête de graphique de traces.

Filtres de rétention

[Définissez des filtres basés sur des tags dans l’interface utilisateur de Datadog afin d’indexer les spans pendant 15 jours et de les utiliser avec la fonctionnalité Analyse et recherche de traces.](#trace-search-and-analytics)

Contrôles de l’ingestion

Envoyez 100 % des traces de vos services à Datadog et tirez parti des filtres de rétention basés sur des tags afin de conserver uniquement les traces qui intéressent votre entreprise pendant 15 jours.

Métrique de sous-couche

Certaines métriques d’application de tracing reçoivent les tags sublayer_service et sublayer_type, ce qui vous permet de connaître le temps d’exécution d’un service spécifique au sein d’une trace.

Durée d’exécution

Les spans actives à un moment donné et pour une trace donnée regroupent toutes les spans terminales (c’est-à-dire les spans sans enfants).

Pour aller plus loin