Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par des valeurs propres à votre environnement cloud.
Surveillance des applications à l'aide d'OCI Application Performance Monitoring et de OpenTelemetry
Introduction
La surveillance des applications qui varient en composants de pile peut souvent s'avérer difficile. Une approche unifiée pour surveiller ces composants permet une visibilité de bout en bout et un aperçu des problèmes qui peuvent survenir. OpenTelemetry est une norme du secteur pour la collecte de données de trace, de mesure et de journal pour la plupart des langages de programmation. Il peut fournir des informations puissantes lorsqu'il est associé à des services d'observabilité et de gestion Oracle Cloud Infrastructure (OCI), tels qu'OCI Application Performance Monitoring et OCI Logging Analytics.
OCI Application Performance Monitoring offre une visibilité étendue sur les performances des applications et permet de diagnostiquer rapidement les problèmes pour fournir un niveau de service cohérent. Cela inclut la surveillance des différents composants et la répartition de la logique d'application entre les clients, les services tiers et les niveaux de calcul de back-end, sur site ou sur le cloud.
OCI Logging Analytics est une solution cloud dans OCI qui permet d'indexer, d'enrichir, d'agréger, d'explorer, de rechercher, d'analyser, de corréler, de visualiser et de surveiller toutes les données de journal des applications et de l'infrastructure système. Obtenez de puissantes informations à partir des données de journal à l'aide de modèles d'IA/ML organisés intégrés à OCI Logging Analytics.
OpenTelemetry dispose de différentes implémentations pour différents langages de programmation et est constamment mis à jour ou développé. L'objectif de cette structure est de disposer d'un moyen unifié et normalisé de collecter et d'envoyer des données de surveillance.
Dans ce tutoriel, vous allez apprendre à instrumenter une application avec OpenTelemetry et à exporter les données collectées vers des services OCI tels qu'OCI Application Performance Monitoring et OCI Logging Analytics.
Objectifs
-
Configurez OpenTelemetry pour une application de pile non Oracle.
-
Envoyez des traces et des mesures à OCI Application Performance Monitoring.
-
Envoyez les données de journal à OCI Logging Analytics.
Prérequis
-
Une location OCI avec le compte d'administrateur initial.
-
Application
Node.js
(exemple de référentiel GitHub : oci-observability-and-management). -
Une compréhension de base de JavaScript.
Exemple GitHub
Pour implémenter la surveillance des applications MERN/MEAN/MEVN, utilisez le référentiel GitHub oci-observability-and-management. Ce référentiel inclut des fichiers pour :
-
Instrument du front-end et du back-end de l'application.
-
Envoyez des mesures personnalisées à OCI Application Performance Monitoring (APM).
-
Envoyez des messages de journal à OCI Logging Analytics.
-
Exemple d'application pour tester l'implémentation OpenTelemetry.
Tâche 1 : configurer OCI Application Performance Monitoring
-
Création d'un domaine OCI Application Performance Monitoring (APM)
Remarque : consultez la documentation OCI Application Performance Monitoring pour connaître les tâches prérequises.
-
Connectez-vous à la console OCI et accédez à Observabilité et gestion, Gestion des performances des applications et Administration pour ouvrir la page d'administration OCI Application Performance Monitoring.
-
Cliquez sur Créer un domaine APM et entrez un nom de domaine. Les informations suivantes se trouvent sur la page de domaine OCI Application Performance Monitoring.
-
Adresse de téléchargement des données : URL d'envoi des données vers OCI Application Performance Monitoring.
-
Clé de données publique : utilisée avec l'agent de navigateur OCI Application Performance Monitoring.
-
Clé de données privée : permet de se connecter à des collecteurs de données tels que OpenTelemetry.
-
-
-
Instrument d'une application
Pour surveiller le front-end d'une application, instrumentez l'agent de navigateur OCI Application Performance Monitoring. Pour plus d'informations, reportez-vous à Etapes d'instrumentation du navigateur/client.
Instrumentation du serveur
-
Pour obtenir des traces de bout en bout, la propagation du contexte est nécessaire à partir des traces frontales d'un navigateur/client vers le serveur. Une chose à garder à l'esprit est de s'assurer qu'il existe des en-têtes HTTP pour fournir le contexte. Par défaut, OpenTelemetry utilise W3C (tracepteur) pour propager automatiquement le contexte. D'autres types d'en-tête peuvent être utilisés mais doivent être pris en compte dans le code application.
-
Veillez à ajouter le code suivant avec le fragment de code JavaScript qui exécute l'instrumentation du navigateur/client.
window.apmrum.traceSupportingEndpoints = [ { headers: [ 'W3C'], hostPattern: '.*' } ];
-
Instrumentez l'instrumentation automatique ou le back-end manuel en fonction des éléments disponibles. Reportez-vous aux étapes de votre langage de programmation.
Exemples dans GitHub
-
Tâche 2 : configurer OCI Logging Analytics
-
Envoyer les journaux d'application
Envoyez les journaux d'application à OCI Logging Analytics, qui permet de corréler les traces, les mesures et les journaux pour obtenir une visibilité complète de l'application. La journalisation peut être activée à l'aide des bibliothèques de journalisation standard et de l'appendice de journal personnalisé. L'apprenant de journal doit être créé pour envoyer les journaux à l'aide des adresses REST ou du kit SDK fourni par OCI, comme indiqué.
-
Création d'une clé de signature d'API
-
Accédez à la console OCI et accédez à Utilisateur, Paramètres d'utilisateur.
-
Sélectionnez les clés d'API sous Ressources.
-
Cliquez sur Ajouter une clé d'API, Générer une paire de clés d'API, Télécharger la clé privée et Ajouter.
-
Copiez le contenu de l'aperçu du fichier de configuration et cliquez sur Fermer.
-
-
Création d'un fichier de configuration
Créez un répertoire (
.oci
) et un fichier de configuration avec le contenu de l'aperçu du fichier de configuration et le chemin du fichier de clé privée. Voici un exemple de fichier de configuration.[DEFAULT] user= [User OCID] fingerprint= [API Key Fingerprint] tenancy= [Tenancy OCID] region= [Region] key_file= [Path to Private Key File]
-
Créer un analyseur de journal
-
Accédez à la console OCI et à Observation & gestion, Logging Analytics, Administration.
-
Cliquez sur Analyseurs, Créer un analyseur et sélectionnez Type en tant que
JSON
. -
Entrez l'exemple de contenu de journal
JSON
. Il analyse et extrait les champs et les met en correspondance avec des noms de champ spécifiques, puis cliquez sur Enregistrer les modifications.
-
-
Créer une source de journal
-
Accédez à la console OCI et à Logging Analytics, Administration, Sources, Créer une source.
-
Entrez Type de source en tant que
File
et Types d'entité en tant queHost (Linux)
. -
Dans Analyseur spécifique, sélectionnez l'analyseur créé dans la tâche 2.4 et cliquez sur Créer une source.
-
-
Créer un groupe de journaux
-
Accédez à la console OCI et à Logging Analytics, Administration, Groupes de journaux, Créer un groupe de journaux.
-
Entrez le nom, la description du groupe de journaux et cliquez sur Créer.
Remarque : notez l'OCID (Oracle Cloud Identity) du groupe de journaux qui sera utilisé ultérieurement.
-
-
Obtention des détails de l'espace de noms
-
Accédez à la console OCI, accédez à Identité, à Compartiments, cliquez sur le compartiment dans lequel la source de journal est créée et copiez l'OCID du compartiment.
-
Ouvrez Cloud Shell et exécutez la commande suivante pour obtenir l'espace de noms.
oci os ns get -c compartmentID
-
-
Créer un appender de journal
Un appender de journal personnalisé peut être créé à l'aide des kits SDK OCI Logging Analytics fournis pour différents langages de programmation tels que Java, Python, .Net, TypeScript/JavaScript, Go et Ruby, ou utiliser les adresses OCI API Rest. Pour plus d'informations, reportez-vous à Kits SDK et à Adresses et référence d'API.
Exemple dans GitHub : Log Appender - JavaScript (Pile MERN).
Notez les paramètres suivants requis pour initialiser et envoyer des journaux à OCI Logging Analytics à partir des étapes ci-dessus.
- [PATH]/config : chemin du fichier de configuration.
- [PROFILE] : profil dans le fichier de configuration à utiliser pour l'authentification OCI.
- [NAMESPACE] : espace de noms.
- [UPLOADNAME] : Nom défini par l'utilisateur pour les chargements.
- [LOGSOURCENAME] : nom de source de journal créé dans OCI Logging Analytics.
- [LOGFILENAME] : nom du fichier journal pour indiquer que les messages de journal sont liés à un fichier journal spécifique.
- [LOGGROUPID] : ID de groupe de journaux créé dans OCI Logging Analytics pour regrouper les messages de journal.
Une fois les enregistrements de journal créés pour différents niveaux de journal (débogage, informations, avertissement et erreur) via l'appender de journal, ils sont envoyés à OCI Logging Analytics et vous pouvez visualiser les enregistrements de journal dans l'explorateur de journaux comme indiqué ci-dessous.
Tâche 3 : Corréler les traces et les journaux
OpenTelemetry inclut TraceId
et SpanId
dans les enregistrements de journal, ce qui permet de corréler directement les journaux et les traces correspondant au même contexte d'exécution. L'application suit et couvre les flux vers OCI Application Performance Monitoring et se connecte au service OCI Logging Analytics. OCI Application Performance Monitoring permet de naviguer facilement des traces et des étendues aux journaux dans OCI Logging Analytics en un clic à l'aide d'une configuration d'exploration vers le bas.
Les analyses descendantes sont des liens vers d'autres services dans OCI ou d'autres services personnalisés à l'aide d'URL personnalisables, y compris des attributs provenant d'étendues (par exemple : loganalytics/explorer?search=<OciInstanceId>
où ociInstanceId
est un attribut d'étendue). Suivez les étapes ci-dessous pour configurer les analyses descendantes dans OCI Application Performance Monitoring.
Tâche 4 : créer un tableau de bord personnalisé
Une fois que les données de trace et les mesures sont dans OCI, utilisez ces données pour les représenter visuellement. La création d'un tableau de bord personnalisé est facile. Il suffit de glisser-déplacer les widgets nécessaires et de modifier les données source (mesures, traces ou données de journal).
Pour plus d'informations sur les tableaux de bord personnalisés, reportez-vous à :
- Création de tableaux de bord APM personnalisés
- Création de tableaux de bord Logging Analytics personnalisés
- Personnaliser et afficher les données de trace dans les tableaux de bord Application Performance Monitoring à l'aide de widgets pour créer des widgets personnalisés à partir des requêtes de l'explorateur de traces d'Application Performance Monitoring.
Exemple de tableau de bord créé pour une application MERN.
Liens connexes
Remerciements
- Auteur - Zyaad Khader (ingénieur programme client stratégique)
Ressources de formation supplémentaires
Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Monitor Applications using OCI Application Performance Monitoring and OpenTelemetry
F91950-01
January 2024
Copyright © APMOT, Oracle and/or its affiliates.