Hinweis:

Anwendungen mit OCI Application Performance Monitoring und OpenTelemetry überwachen

Einführung

Die Überwachung von Anwendungen, die sich in Stack-Komponenten unterscheiden, kann oft schwierig sein. Ein einheitlicher Ansatz zur Überwachung dieser Komponenten ermöglicht eine durchgängige Transparenz und Einblicke in möglicherweise auftretende Probleme. OpenTelemetry ist ein Branchenstandard zum Erfassen von Trace-, Metrik- und Logdaten für die meisten Programmiersprachen. Sie kann in Kombination mit Oracle Cloud Infrastructure (OCI) Observability and Management-Services wie OCI Application Performance Monitoring und OCI Logging Analytics leistungsstarke Einblicke liefern.

Diagramm mit dem Datenfluss OpenTelemetry.

OCI Application Performance Monitoring bietet einen tiefen Einblick in die Performance von Anwendungen und bietet die Möglichkeit, Probleme schnell zu diagnostizieren, um ein konsistentes Servicelevel zu bieten. Dazu gehört das Monitoring der verschiedenen Komponenten und der Anwendungslogik, die auf Clients, Drittanbieterservices und Backend-Computing-Tiers verteilt sind, vor Ort oder in der Cloud.

Diagramm mit Überblick über den OCI Application Performance Monitoring-Service.

OCI Logging Analytics ist eine Cloud-Lösung in OCI, die alle Logdaten aus Anwendungen und Systeminfrastruktur indexiert, anreichert, aggregiert, exploriert, durchsucht, analysiert, korreliert, visualisiert und überwacht. Erhalten Sie mithilfe kuratierter KI/ML-Modelle, die in OCI Logging Analytics integriert sind, aussagekräftige Einblicke aus Logdaten.

Diagramm mit Überblick über den OCI Logging Analytics-Service.

OpenTelemetry verfügt über verschiedene Implementierungen für verschiedene Programmiersprachen und wird ständig aktualisiert oder entwickelt. Der Zweck dieses Frameworks besteht darin, eine einheitliche und standardisierte Möglichkeit zur Erfassung und Übermittlung von Überwachungsdaten zu haben.

In diesem Tutorial lernen Sie, wie Sie eine Anwendung mit OpenTelemetry instrumentieren und die erfassten Daten in OCI-Services wie OCI Application Performance Monitoring und OCI Logging Analytics exportieren.

Ziele

Voraussetzungen

GitHub - Beispiel

Wenn Sie Überwachung für MERN/MEAN/MEVN-Anwendungen implementieren möchten, verwenden Sie das Repository GitHub oci-observability-and-management. Dieses Repository enthält Dateien für:

Aufgabe 1: OCI Application Performance Monitoring konfigurieren

  1. OCI Application Performance Monitoring-(APM-)Domain erstellen

    Hinweis: Die erforderlichen Aufgaben finden Sie in der Dokumentation zu OCI Application Performance Monitoring.

    1. Melden Sie sich bei der OCI-Konsole an, und navigieren Sie zu Observability and Management, Application Performance Management, Administration, um die Administrationsseite von OCI Application Performance Monitoring zu öffnen.

    2. Klicken Sie auf APM-Domain erstellen, und geben Sie einen Domainnamen ein. Beachten Sie die folgenden Informationen auf der OCI Application Performance Monitoring-Domainseite.

      • Datenuploadendpunkt: URL zum Senden von Daten an OCI Application Performance Monitoring.

      • Öffentlicher Datenschlüssel: Wird mit dem OCI-Browser-Agent Application Performance Monitoring verwendet.

      • Privater Datenschlüssel: Zum Verbinden mit Datensammlern wie OpenTelemetry.

      Abbildung mit OCI Application Performance Monitoring-Domaindetails.

  2. Anwendung instrumentieren

    Um das Frontend einer Anwendung zu überwachen, instrumentieren Sie den OCI Application Performance Monitoring-Browser-Agent. Weitere Informationen finden Sie unter Browser-/Clientinstrumentierungsschritte.

    Server-Instrumentierung

    • Um End-to-End-Traces zu erhalten, ist eine Kontextpropagierung von den Frontend-Traces eines Browsers/Clients zum Server erforderlich. Eine Sache, die dabei zu beachten ist, ist sicherzustellen, dass es HTTP-Header gibt, um den Kontext bereitzustellen. Standardmäßig verwendet OpenTelemetry W3C (traceparent), um den Kontext automatisch zu propagieren. Es gibt andere Headertypen, die verwendet werden können, aber im Anwendungscode berücksichtigt werden müssen.

      Diagramm-HTTP-Headerdaten für die Kontextpropagierung.

    • Fügen Sie unbedingt den folgenden Code mit dem Snippet JavaScript hinzu, das die Browser-/Clientinstrumentierung ausführt.

      window.apmrum.traceSupportingEndpoints = [ { headers: [ 'W3C'], hostPattern: '.*' } ];
      
    • Instrumentieren Sie die automatische Instrumentierung oder das manuelle Backend je nach Verfügbarkeit, siehe Schritte für Ihre Programmiersprache.

    Beispiele in GitHub

Aufgabe 2: OCI Logging Analytics konfigurieren

  1. Anwendungslogs senden

    Senden Sie Anwendungslogs an OCI Logging Analytics, mit denen Traces, Metriken und Logs korreliert werden können, um vollständige Sichtbarkeit der Anwendung zu erhalten. Logging kann mit Standardloggingbibliotheken und benutzerdefiniertem Log-Appender aktiviert werden. Log-Appender muss so erstellt werden, dass die Logs mit dem von OCI bereitgestellten SDK oder den REST-Endpunkten gesendet werden, wie dargestellt.

    Diagramm mit dem Logdatenfluss.

  2. API-Signaturschlüssel erstellen

    1. Navigieren Sie zur OCI-Konsole, und navigieren Sie zu Benutzer, Benutzereinstellungen.

    2. Wählen Sie unter Ressourcen die Option "API-Schlüssel" aus.

    3. Klicken Sie auf API-Schlüssel hinzufügen, API-Schlüsselpaar generieren, Private Key herunterladen und Hinzufügen.

    4. Kopieren Sie den Inhalt aus der Vorschau von Konfigurationsdatei, und klicken Sie auf Schließen.

      Bild einer Vorschau einer Konfigurationsdatei in OCI.

  3. Erstellen Sie eine Konfigurationsdatei

    Erstellen Sie ein Verzeichnis (.oci) und eine Konfigurationsdatei mit Inhalt aus der Konfigurationsdateivorschau und dem Pfad zur Private-Key-Datei. Im Folgenden ist ein Beispiel für die Konfigurationsdatei aufgeführt.

    [DEFAULT]
    user= [User OCID]
    fingerprint= [API Key Fingerprint]
    tenancy= [Tenancy OCID]
    region= [Region]
    key_file= [Path to Private Key File]
    
  4. Logparser erstellen

    1. Navigieren Sie zur OCI-Konsole, und navigieren Sie zu Observability and Management, Logging Analytics, Administration.

    2. Klicken Sie auf Parser, Parser erstellen, und wählen Sie Typ als JSON aus.

    3. Geben Sie den Beispielloginhalt JSON ein. Er parst und extrahiert Felder und ordnet sie bestimmten Feldnamen zu, und klicken Sie auf Änderungen speichern.

      Abbildung einer Logparserkonfiguration in OCI.

  5. Logquelle erstellen

    1. Navigieren Sie zur OCI-Konsole, und navigieren Sie zu Logging Analytics, Administration, Quellen, Quelle erstellen.

    2. Geben Sie als Quelltyp File und als Host (Linux) Entitytypen ein.

    3. Wählen Sie unter Bestimmter Parser den in Aufgabe 2.4 erstellten Parser aus, und klicken Sie auf Quelle erstellen.

      Abbildung einer Logquellendetails in OCI.

  6. Loggruppe erstellen

    1. Navigieren Sie zur OCI-Konsole, und navigieren Sie zu Logging Analytics, Administration, Loggruppen, Loggruppe erstellen.

    2. Geben Sie Name, Beschreibung der Loggruppe ein, und klicken Sie auf Erstellen.

      Hinweis: Beachten Sie die Oracle Cloud-Identität (OCID) der Loggruppe, die später verwendet wird.

      Abbildung der Details einer Loggruppe in OCI.

      Image, das eine Loggruppen-OCID in OCI hervorhebt.

      Image, das eine Compartment-OCID in OCI hervorhebt.

  7. Namespace-Details abrufen

    1. Navigieren Sie zur OCI-Konsole, und navigieren Sie zu Identität, Compartments, klicken Sie auf das Compartment, in dem die Logquelle erstellt wird, und kopieren Sie die OCID des Compartments.

    2. Öffnen Sie Cloud Shell, und führen Sie den folgenden Befehl aus, um den Namespace abzurufen.

      oci os ns get -c compartmentID
      

    Bild, das zeigt, wie Sie die Namespace-Details in einer OCI-Konsole abrufen.

  8. Log-Appender erstellen

    Ein benutzerdefinierter Log-Appender kann mit OCI Logging Analytics-SDKs erstellt werden, die für verschiedene Programmiersprachen wie Java, Python, .Net, TypeScript/JavaScript, Go und Ruby bereitgestellt werden, oder OCI API Rest-Endpunkte verwenden. Weitere Informationen finden Sie unter Software Development Kits (SDKs) und API Reference and Endpoints.

    Beispiel in GitHub: Log-Appender - JavaScript (MERN-Stack).

Notieren Sie sich die folgenden Parameter, die zum Initialisieren und Senden von Logs an OCI Logging Analytics aus den obigen Schritten erforderlich sind.

Nachdem die Logdatensätze für verschiedene Logebenen (Debug, Info, Warnung und Fehler) über den Log-Appender erstellt wurden, werden sie an OCI Logging Analytics gesendet. Sie können die Logdatensätze im Log Explorer wie unten gezeigt anzeigen.

Ansicht "Log Explorer" in OCI Logging Analytics.

Aufgabe 3: Traces und Logs korrelieren

OpenTelemetry enthält TraceId und SpanId in den Logdatensätzen. Dadurch können Logs und Traces, die demselben Ausführungskontext entsprechen, direkt korreliert werden. Application Traces und Spans fließen in OCI Application Performance Monitoring ein und melden sich beim OCI Logging Analytics-Service an. OCI Application Performance Monitoring bietet eine einfache Möglichkeit, mit einer Drilldown-Konfiguration mit einem Klick von Traces und Spans zu Logs in OCI Logging Analytics zu navigieren.

Drilldowns sind Links zu anderen Services in OCI oder anderen benutzerdefinierten Services mit anpassbaren URLs, einschließlich Attributen aus Spans (Beispiel: loganalytics/explorer?search=<OciInstanceId>, wobei ociInstanceId ein Span-Attribut ist). Führen Sie die folgenden Schritte aus, um Drilldowns in OCI Application Performance Monitoring zu konfigurieren.

GIF mit einem Beispiel-Drilldown von OCI Application Performance Monitoring zu OCI Logging Analytics.

Aufgabe 4: Benutzerdefiniertes Dashboard erstellen

Sobald sich Tracingdaten und Metriken in OCI befinden, verwenden Sie diese Daten, um sie visuell darzustellen. Das Erstellen eines benutzerdefinierten Dashboards ist einfach. Ziehen Sie einfach die benötigten Widgets per Drag-and-Drop und ändern Sie die Quelldaten (Metrik-, Trace- oder Logdaten).

Weitere Informationen zu benutzerdefinierten Dashboards finden Sie unter:

Beispiel-Dashboard, das für eine MERN-Anwendung erstellt wurde.

Bild mit einem benutzerdefinierten Dashboard in OCI Application Performance Monitoring.

Danksagungen

Weitere Lernressourcen

Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie im Oracle Help Center.