Si vous écrivez des applications, vous pouvez instrumenter votre code pour générer des données de télémétrie et obtenir une observabilité approfondie du comportement d'exécution interne de votre application. Cette page présente les concepts d'instrumentation en cours de processus, explique les avantages des frameworks neutres du point de vue des fournisseurs comme OpenTelemetry et vous redirige vers des guides et des exemples de code spécifiques à un langage pour Google Cloud Observability.
Que sont l'instrumentation et l'observabilité ?
L'instrumentation fait référence au code spécifique qui génère ou collecte des données sur le comportement d'exécution de votre application. Dans votre application, l'instrumentation, telle que celle fournie par OpenTelemetry, peut collecter des informations spécifiques au domaine sur l'environnement d'exécution du langage, le framework ou la logique de l'application, puis envoyer ces données à un Google Cloud projet ou à une autre destination. Ces données, également appelées télémétrie, incluent des journaux, des métriques et des traces.
Les métriques au niveau du système, telles que l'utilisation du processeur, de la mémoire et du disque, sont utiles pour détecter les problèmes liés à votre application, mais elles ne fournissent pas de renseignements très précis sur les problèmes au niveau de l'application. L'instrumentation peut aider votre application à générer les données dont vous avez besoin pour diagnostiquer la cause première d'un problème, car la télémétrie obtenue vous montre ce qui se passe dans votre application. Par exemple, les journaux incluent souvent du contexte sur votre programme, comme un message d'erreur ou une trace de pile spécifique, ainsi que l'emplacement dans votre code source. De même, les traces distribuées vous permettent de comprendre comment plusieurs services interagissent lors du traitement des requêtes. Les métriques vous permettent de déterminer quand votre application ne se comporte pas correctement.
Pour instrumenter votre application, vous devez générer des données de télémétrie et les envoyer à un système où les données peuvent être stockées et interrogées. Par exemple, votre instrumentation peut envoyer des données de télémétrie à un Google Cloud projet. Les services de Google Cloud Observability vous aident à collecter, analyser et mettre en corrélation des données de télémétrie. Ils fournissent également des valeurs par défaut intégrées pour vous aider à démarrer plus rapidement, telles que des tableaux de bord par défaut et des règles d'alerte. Pour en savoir plus sur Google Cloud Observability, consultez la page Observabilité dans Google Cloud.
La figure suivante montre comment une application utilise l'instrumentation pour générer et envoyer des données de télémétrie à un système de stockage :
Comme illustré dans la figure précédente, le code d'instrumentation existe dans le processus de votre application et interagit avec celle-ci pour générer des données de télémétrie. Le framework d'instrumentation exporte ensuite votre télémétrie vers un système de stockage configuré. Sur la figure, le système de stockage correspond à votre Google Cloud project.
Pourquoi utiliser des frameworks d'instrumentation neutres du point de vue des fournisseurs
Même si vous prévoyez de n'envoyer des données de télémétrie qu'à Google Cloud, nous vous recommandons d' utiliser un framework d'instrumentation Open Source neutre du point de vue du fournisseur pour instrumenter vos applications. Ces types de frameworks présentent des avantages essentiels :
- Pas de dépendance vis-à-vis d'un fournisseur
- Les frameworks neutres du point de vue des fournisseurs ne sont liés à aucun fournisseur particulier et fournissent leur propre modèle de données pour la télémétrie générée. Par conséquent, vous pouvez envoyer des données à plusieurs fournisseurs, et vous pouvez généralement changer le fournisseur que vous utilisez sans modifier votre code.
- Procédures standardisées pour la collecte de données de télémétrie
- Les frameworks bien conçus, tels qu'OpenTelemetry, fournissent une approche standardisée pour collecter la télémétrie à partir d'applications. Vous pouvez utiliser le même framework pour les applications écrites dans les langages compatibles. De plus, comme le framework est standardisé, vous pouvez collecter et comparer les données de télémétrie de tous vos services.
- Bibliothèques interopérables
- Les frameworks d'instrumentation incluent un riche écosystème de bibliothèques collectant des signaux de télémétrie, et ces bibliothèques sont interopérables. Par exemple, OpenTelemetry fournit des bibliothèques permettant de collecter des données de trace et de collecter des données de métriques. Vous pouvez utiliser l'une des bibliothèques ou les deux.
Déterminer votre stratégie d'instrumentation
- Choisir une approche d'instrumentation fournit des recommandations d'instrumentation en fonction de votre Google Cloud plate-forme de calcul et de vos exigences en matière de télémétrie.
- Qu'est-ce qu'OpenTelemetry ? décrit la mission et les objectifs d'OpenTelemetry.
- Observabilité dans Google Cloud fournit des informations générales.
Exemples et guides d'implémentation
Présentation de l'exemple décrit l'architecture et les rôles Identity and Access Management requis pour les exemples de code suivants basés sur un collecteur :
Migrer de l'exportateur de traces vers le point de terminaison OTLP explique comment mettre à jour une application qui utilise l'exportation directe pour envoyer des données de trace au format OTLP.
Utiliser l'instrumentation sans code OpenTelemetry pour les charges de travail Java sur GKE explique comment collecter des données de télémétrie sans modifier votre application Java.