Remarques :

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.

Diagramme présentant le flux de données OpenTelemetry.

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.

Diagramme présentant la présentation du service OCI Application Performance Monitoring.

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.

Diagramme présentant la présentation du service 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

Prérequis

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 :

Tâche 1 : configurer OCI Application Performance Monitoring

  1. 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.

    1. 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.

    2. 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.

      Image présentant les détails du domaine OCI Application Performance Monitoring.

  2. 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.

      Données d'en-tête HTTP du diagramme pour la propagation du contexte.

    • 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

  1. 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é.

    Diagramme présentant le flux de données de journal.

  2. Création d'une clé de signature d'API

    1. Accédez à la console OCI et accédez à Utilisateur, Paramètres d'utilisateur.

    2. Sélectionnez les clés d'API sous Ressources.

    3. 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.

    4. Copiez le contenu de l'aperçu du fichier de configuration et cliquez sur Fermer.

      Image d'un aperçu de fichier de configuration dans OCI.

  3. 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]
    
  4. Créer un analyseur de journal

    1. Accédez à la console OCI et à Observation & gestion, Logging Analytics, Administration.

    2. Cliquez sur Analyseurs, Créer un analyseur et sélectionnez Type en tant que JSON.

    3. 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.

      Image d'une configuration d'analyseur de journal dans OCI.

  5. Créer une source de journal

    1. Accédez à la console OCI et à Logging Analytics, Administration, Sources, Créer une source.

    2. Entrez Type de source en tant que File et Types d'entité en tant que Host (Linux).

    3. Dans Analyseur spécifique, sélectionnez l'analyseur créé dans la tâche 2.4 et cliquez sur Créer une source.

      Image des détails d'une source de journal dans OCI.

  6. Créer un groupe de journaux

    1. Accédez à la console OCI et à Logging Analytics, Administration, Groupes de journaux, Créer un groupe de journaux.

    2. 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.

      Image des détails d'un groupe de journaux dans OCI.

      Image mettant en surbrillance un OCID de groupe de journaux dans OCI.

      Image mettant en surbrillance un OCID de compartiment dans OCI.

  7. Obtention des détails de l'espace de noms

    1. 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.

    2. Ouvrez Cloud Shell et exécutez la commande suivante pour obtenir l'espace de noms.

      oci os ns get -c compartmentID
      

    Image montrant comment obtenir les détails de l'espace de noms dans une console OCI.

  8. 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.

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.

Vue Explorateur de journaux dans OCI Logging Analytics.

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>ociInstanceId est un attribut d'étendue). Suivez les étapes ci-dessous pour configurer les analyses descendantes dans OCI Application Performance Monitoring.

GIF présentant un exemple d'analyse descendante d'OCI Application Performance Monitoring vers OCI Logging Analytics.

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 à :

Exemple de tableau de bord créé pour une application MERN.

Image représentant un tableau de bord personnalisé dans OCI Application Performance Monitoring.

Remerciements

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.