Termes et concepts de la solution APM
Aperçu
L’interface utilisateur APM fournit de nombreux outils pour résoudre les problèmes de performance des applications et les corréler à travers le produit, vous permettant de trouver et de résoudre des problèmes dans des systèmes distribués.
Pour des définitions et des descriptions supplémentaires des termes APM importants tels que spans et indexés, consultez le glossaire principal.
| Concept | Description |
|---|
| Service | Les services constituent les éléments fondamentaux des architectures modernes de microservices – en général, un service regroupe des endpoints, des requêtes ou des jobs afin de construire votre application. |
| Ressource | Les ressources représentent un domaine particulier d’une application client - elles sont généralement un point de terminaison web instrumenté, une requête de base de données ou une tâche en arrière-plan. |
| Moniteurs | Les moniteurs de métriques APM fonctionnent comme des moniteurs de métriques réguliers, mais avec des contrôles spécifiquement adaptés à l’APM. Utilisez ces moniteurs pour recevoir des alertes au niveau du service sur les hits, les erreurs et une variété de mesures de latence. |
| Trace | Une trace est utilisée pour suivre le temps passé par une application à traiter une requête et l’état de cette requête. Chaque trace se compose d’un ou plusieurs spans. |
| Propagation du Contexte de Trace | La méthode de passage des identifiants de trace entre les services, permettant à Datadog de relier des spans individuels en une trace distribuée complète. |
| Filtres de Rétention | Les filtres de rétention sont des contrôles basés sur des balises définis dans l’interface utilisateur de Datadog qui déterminent quels spans indexer dans Datadog pendant 15 jours. |
| Contrôles d’Ingestion | Les contrôles d’ingestion sont utilisés pour envoyer jusqu’à 100 % des traces à Datadog pour une recherche et une analyse en direct pendant 15 minutes. |
| Instrumentation | L’instrumentation est le processus d’ajout de code à votre application pour capturer et rapporter des données d’observabilité. |
| Bagages | Les bagages sont des informations contextuelles qui sont transmises entre les traces, les métriques et les journaux sous forme de paires clé-valeur. |
Services
Après avoir instrumenté votre application, le Catalogue est votre page d’accueil principale pour les données 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. Quelques exemples :
- Un groupe de points de terminaison URL peut être regroupé sous un service API.
- Un groupe de requêtes DB qui sont regroupées au sein d’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 est un système de microservices pour un constructeur de site e-commerce. Il y a un web-store, ad-server, payment-db et auth-service tous représentés comme des services dans APM.
Tous les services peuvent être trouvés dans le Catalogue et représentés visuellement sur la Carte des Services. Chaque service a sa propre page de service où les métriques de trace comme le débit, la latence et les taux d’erreur peuvent être consultés et inspectés. Utilisez ces métriques pour créer des widgets de tableau de bord, créer des moniteurs et voir la performance de chaque ressource telle qu’un point de terminaison web ou une requête de base de données appartenant au service.
Ne voyez-vous pas les points de terminaison HTTP que vous attendiez sur la page de service ? Dans APM, les points de terminaison sont connectés à un service par plus que le nom du service. C'est également fait avec le `span.name` du span de point d'entrée de la trace. Par exemple, sur le service de boutique en ligne ci-dessus, `web.request` est le span de point d'entrée. Plus d'informations sur ce
ici.
Ressources
Les ressources représentent un domaine particulier d’une application client. Elles peuvent typiquement être un point de terminaison web instrumenté, une requête de base de données ou un travail en arrière-plan. Pour un service web, ces ressources peuvent être des points de terminaison web dynamiques regroupés par un nom de span statique - web.request. Dans un service de base de données, il s’agirait de requêtes de base de données avec le nom de span db.query. Par exemple, le web-store service dispose de ressources instrumentées automatiquement – des points de terminaison web – qui gèrent la finalisation des achats, la mise à jour des paniers, l’ajout d’articles, etc. Un nom de ressource peut être la méthode HTTP et la route HTTP, par exemple GET /productpage ou ShoppingCartController#checkout.
Chaque ressource a sa propre page de ressource avec des métriques de trace spécifiques au point de terminaison. Les métriques de trace peuvent être utilisées comme n’importe quelle autre métrique Datadog - elles sont exportables vers un tableau de bord ou peuvent être utilisées pour créer des moniteurs. La page de ressource montre é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 requêtes et les traces qui montrent les requêtes effectuées vers ce point de terminaison.
Trace
Une trace est utilisée pour suivre le temps passé par une application à traiter une requête et l’état de cette requête. Chaque trace se compose d’un ou plusieurs spans. Au cours de la durée de la requête, vous pouvez voir des appels distribués à travers les services (car un trace-id est injecté/extrait à travers les en-têtes HTTP), des bibliothèques instrumentées automatiquement et une instrumentation manuelle utilisant des outils open-source comme OpenTracing dans la vue du flame graph. Dans la page de vue de trace, chaque trace collecte des informations qui la relient à d’autres parties de la plateforme, y compris la connexion des journaux aux traces, l’ajout de balises aux spans, et la collecte de métriques d’exécution.
Propagation du contexte de trace
La propagation du contexte de trace est la méthode de transmission des identifiants de trace entre les services dans un système distribué. Elle permet à Datadog de relier des spans individuels provenant de différents services en une seule trace distribuée. La propagation du contexte de trace fonctionne en injectant des identifiants, tels que l’ID de trace et l’ID de span parent, dans les en-têtes HTTP au fur et à mesure que la requête circule dans le système. Le service en aval extrait ensuite ces identifiants et continue la trace. Cela permet à Datadog de reconstruire le chemin complet d’une requête à travers plusieurs services.
Pour plus d’informations, consultez la propagation du contexte de trace pour le langage de votre application.
Filtres de rétention
Définissez des filtres basés sur des tags dans l’interface utilisateur pour indexer les spans pendant 15 jours pour une utilisation avec Trace Search and Analytics.
Contrôles d’ingestion
Envoyez 100 % des traces de vos services vers Datadog et combinez-les avec des filtres de rétention basés sur des tags pour conserver les traces qui comptent pour votre entreprise pendant 15 jours.
Instrumentation
L’instrumentation est le processus d’ajout de code à votre application pour capturer et rapporter des données d’observabilité à Datadog, telles que des traces, des métriques et des journaux. Datadog fournit des bibliothèques d’instrumentation pour divers langages de programmation et frameworks.
Vous pouvez instrumenter automatiquement votre application lorsque vous installez l’Agent Datadog avec Single Step Instrumentation ou lorsque vous ajoutez manuellement les SDK Datadog à votre code.
Vous pouvez utiliser une instrumentation personnalisée en intégrant du code de traçage directement dans le code de votre application. Cela vous permet de créer, modifier ou supprimer des traces de manière programmatique à envoyer à Datadog.
Pour en savoir plus, lisez Application Instrumentation.
Baggage
Le baggage permet de propager des paires clé-valeur (également appelées baggage items) à travers les frontières de service dans un système distribué. Contrairement au contexte de trace, qui se concentre sur les identifiants de trace, le baggage permet la transmission de données commerciales et d’autres informations contextuelles aux côtés des traces.
Pour en savoir plus, lisez les formats de propagation pris en charge pour le langage de votre application.
Lectures complémentaires
Documentation, liens et articles supplémentaires utiles: