Nouvelles annonces sur les technologies sans serveur et réseau ainsi que sur le RUM (Real-User Monitoring) dévoilées à la conférence Dash ! Nouvelles annonces dévoilées à la conférence Dash !

Glossaire et procédure pas à pas de l'APM

L’interface de l’APM fournit de nombreux outils permettant de dépanner les performances des applications et de les mettre en corrélation avec l’ensemble du produit, ce qui vous aide à rechercher et à résoudre les problèmes liés aux systèmes hautement distribués.

ConceptDescription
ServiceLes services représentent les éléments constitutifs des architectures de microservices modernes. En d’autres termes, un service regroupe des endpoints, des requêtes ou des tâches afin de mettre des instances à l’échelle.
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.
TraceUne trace sert à suivre le temps que passe une application pour traiter une demande et le statut de cette demande. Chaque trace consiste en une ou plusieurs spans.
SpanUne span représente une unité de travail logique dans un système distribué pour une période donnée. Les spans multiples construisent une trace.
Métriques de traceLes métriques de trace sont automatiquement collectées et conservées. Une politique de rétention de 15 mois s’y applique, tout comme pour les autres métriques Datadog. Elles peuvent être utilisées pour identifier et donner des alertes sur les hits, les erreurs ou la latence.
Analyse et recherche de tracesL’analyse et la recherche de traces sert à filtrer les événements de l’APM avec des tags définis par l’utilisateur (customer_id, error_type, app_name, par exemple) ou avec des tags d’infrastructure.
Événement de l’APMLes événements de l’APM possèdent un débit de requête de 100 % et peuvent être utilisés pour effectuer des recherches, des interrogations et une surveillance dans l’analyse et la recherche de traces.
Tags de spanLes tags de spans prennent la forme de paires clé-valeur pour corréler une demande dans la Vue Trace ou pour filtrer dans l’analyse et la recherche de traces.

Services

Après avoir instrumenté votre application, la Liste des services devient votre page de destination principale pour les données de l’APM.

Les services représentent les éléments constitutifs des architectures de microservices modernes. En d’autres termes, un service regroupe des endpoints, des requêtes ou des tâches afin de mettre des instances à l’échelle. Par exemple :

  • Un groupe d’URL d’endpoints peut être regroupé sous un service d’API.
  • Un groupe de requêtes de base de données regroupées dans 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é par microservices pour un développeur de sites de e-commerce. Il existe un web-store, ad-server, payment-db, et auth-service, tous représentés comme des services dans l’APM.

Tous les services sont affichés Liste de services et représentés visuellement sur la Service Map. Chaque service possède sa propre page de service, où des [métriques de trace] telles que le débit, la latence et les taux d’erreur peuvent être visualisées et inspectées. Utilisez ces métriques pour créer des widgets de dashboard ou des monitors et pour voir les performances de chaque ressource, telle qu’un endpoint web ou une requête de base de données appartenant au service.

Vous ne voyez pas les endpoints HTTP que vous espériez sur la page Service ? Dans l'APM, le nom du service n'est pas le seul facteur permettant aux endpoints de se connecter à un service. Ils peuvent également se connecter grâce au `span.name` de la span de point d'entrée de la trace. Par exemple, dans le service web-store ci-dessus, `web.request` constitue la span de point d'entrée. Vous trouverez plus d'informations en cliquant ici.

Ressources

Les ressources représentent un domaine particulier d’une application client. Il peut s’agir 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. Dans 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, mises_a_jour_de_panier, ajouts_d_article, etc. Chaque ressource possède sa propre page Ressource avec des métriques de trace définies pour chaque endpoint spécifique. Les métriques de trace peuvent être utilisées comme n’importe quelle autre métrique de Datadog : elles peuvent être exportées vers un dashboard ou utilisées pour créer des monitors. La page Ressource affiche également le widget de résumé de span avec une vue agrégée des spans pour toutes les traces, la distribution de latence des demandes et les traces indiquant les demandes adressées à cet endpoint.

Trace

Une trace sert à suivre le temps que passe une application pour traiter une demande et le statut de cette demande. Chaque trace consiste en une ou plusieurs spans. Pendant la durée de la demande, vous pouvez voir les appels distribués sur tous les services (car un [ID de trace est injecté / extrait via des en-têtes HTTP 7), les bibliothèques instrumentées automatiquement, et l’instrumentation manuelle à l’aide d’outils open source tels que OpenTracing dans la vue Flamegraph. Dans la page Vue Trace, chaque trace collecte des informations qui la connectent à d’autres parties de la plate-forme, notamment la connexion des logs aux traces, l’ajout de tags aux spans et la collecte de métriques d’exécution.

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.

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

Métriques de trace

Les métriques de trace sont automatiquement collectées et conservées. Une politique de rétention de 15 mois s’y applique, tout comme pour les autres métriques Datadog. Elles peuvent être utilisées pour identifier et donner des alertes sur les hits, les erreurs ou la latence. Les métriques de trace sont taguées par l’host recevant les traces avec le service ou la ressource. Par exemple, après avoir instrumenté un service Web, des métriques de trace sont collectées 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. De plus, les métriques de trace peuvent être interrogées à partir d’un dashboard existant.

Surveillance

Les métriques de trace sont utiles pour la surveillance. Les monitors de l’APM peuvent être configurés sur la page Nouveaux Monitors, Service ou Ressource. Un ensemble de monitors suggérés est disponible sur la page Service ou Ressources.

Analyse et recherche de traces

L’analyse et la recherche de traces sert à filtrer les événements de l’APM avec tags définis par l’utilisateur (customer_id, error_type, app_name, par exemple) ou avec des tags d’infrastructure. Cela permet d’explorer en profondeur des requêtes web transitant par votre service, tout en permettant de rechercher, de représenter graphiquement et de surveiller le débit de 100 % des hits, des erreurs et du temps de latence. Cette fonctionnalité peut être activée avec la configuration automatique.

Événement de l’APM

Les événements de l’APM possèdent un débit de requête à 100 % et peuvent être utilisés pour effectuer des recherches, des interrogations et une surveillance dans l’analyse et la recherche de traces avec les tags inclus dans les spans. Après avoir activé l’Analyse et la recherche de traces, le client de tracing analyse par défaut une span de point d’entrée pour les services Web, et offre la possibilité de configurer des services supplémentaires dans votre application. Par exemple, un service Java avec 100 demandes génère 100 événements de l’APM depuis sa span servlet.request. Si vous définissez DD_TRACE_ANALYTICS_ENABLED = true, le serviceweb-store analyse toutes les spans de rack.request et les rend disponibles dans l’Analyse et la recherche de traces. Pour cet exemple, vous pouvez représenter graphiquement la latence la plus élevée au 99e centile des 10 meilleurs marchands. merchant_name est un tag défini par l’utilisateur qui a été appliqué à la span dans l’application.

Vous pouvez exécuter une estimation du nombre d'événements de l'APM qui seraient générés à partir de vos services avec l'outil Estimateur de span analysée. Une fois ingérés, vous pouvez filtrer les événements de l'APM de 100 % à un pourcentage inférieur sur un plan service par service sous paramètres de l'APM . Cela réduit les événements de l'APM facturables.

Tags de span

Les tags de spans prennent la forme de paires clé-valeur pour corréler une demande dans la Vue Trace ou pour filtrer dans l’analyse et la recherche de traces. Les tags peuvent être ajoutés à une seule span ou globalement à toutes les spans. Pour l’exemple ci-dessous, les requêtes (merchant.store_name,merchant.tier, etc.) ont été ajoutées en tant que tags ajoutés à la span.

Pour commencer à tagger des spans dans votre application, consultez cette procédure pas à pas.

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

Pour aller plus loin