Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Registrieren eines kostenlosen Accounts finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch spezifische Werte für Ihre Cloud-Umgebung.
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.
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.
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.
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
-
Konfigurieren Sie OpenTelemetry für eine Nicht-Oracle-Stackanwendung.
-
Senden Sie Traces und Metriken an OCI Application Performance Monitoring.
-
Senden Sie Logdaten an OCI Logging Analytics.
Voraussetzungen
-
Ein OCI-Mandant mit dem anfänglichen Administratoraccount.
-
Eine
Node.js
-Anwendung (Beispiel für das GitHub-Repository: oci-observability-and-management). -
Ein grundlegendes Verständnis von JavaScript.
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:
-
Instrumentieren Sie das Frontend und Backend der Anwendung.
-
Senden Sie benutzerdefinierte Metriken an OCI Application Performance Monitoring (APM).
-
Senden Sie Logmeldungen an OCI Logging Analytics.
-
Eine Beispielanwendung zum Experimentieren mit der OpenTelemetry-Implementierung.
Aufgabe 1: OCI Application Performance Monitoring konfigurieren
-
OCI Application Performance Monitoring-(APM-)Domain erstellen
Hinweis: Die erforderlichen Aufgaben finden Sie in der Dokumentation zu OCI Application Performance Monitoring.
-
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.
-
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.
-
-
-
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.
-
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
-
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.
-
API-Signaturschlüssel erstellen
-
Navigieren Sie zur OCI-Konsole, und navigieren Sie zu Benutzer, Benutzereinstellungen.
-
Wählen Sie unter Ressourcen die Option "API-Schlüssel" aus.
-
Klicken Sie auf API-Schlüssel hinzufügen, API-Schlüsselpaar generieren, Private Key herunterladen und Hinzufügen.
-
Kopieren Sie den Inhalt aus der Vorschau von Konfigurationsdatei, und klicken Sie auf Schließen.
-
-
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]
-
Logparser erstellen
-
Navigieren Sie zur OCI-Konsole, und navigieren Sie zu Observability and Management, Logging Analytics, Administration.
-
Klicken Sie auf Parser, Parser erstellen, und wählen Sie Typ als
JSON
aus. -
Geben Sie den Beispielloginhalt
JSON
ein. Er parst und extrahiert Felder und ordnet sie bestimmten Feldnamen zu, und klicken Sie auf Änderungen speichern.
-
-
Logquelle erstellen
-
Navigieren Sie zur OCI-Konsole, und navigieren Sie zu Logging Analytics, Administration, Quellen, Quelle erstellen.
-
Geben Sie als Quelltyp
File
und alsHost (Linux)
Entitytypen ein. -
Wählen Sie unter Bestimmter Parser den in Aufgabe 2.4 erstellten Parser aus, und klicken Sie auf Quelle erstellen.
-
-
Loggruppe erstellen
-
Navigieren Sie zur OCI-Konsole, und navigieren Sie zu Logging Analytics, Administration, Loggruppen, Loggruppe erstellen.
-
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.
-
-
Namespace-Details abrufen
-
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.
-
Öffnen Sie Cloud Shell, und führen Sie den folgenden Befehl aus, um den Namespace abzurufen.
oci os ns get -c compartmentID
-
-
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.
- [PATH]/config: Pfad zur Konfigurationsdatei.
- [PROFILE]: Profil in Konfigurationsdatei, das für die OCI-Authentifizierung verwendet werden soll.
- [NAMESPACE]: Namespace.
- [UPLOADNAME]: Benutzerdefinierter Name für Uploads.
- [LOGSOURCENAME]: Logquellenname, der in OCI Logging Analytics erstellt wurde.
- [LOGFILENAME]: Logdateiname, mit dem angegeben wird, dass Logmeldungen sich auf eine bestimmte Logdatei beziehen.
- [LOGGROUPID]: Loggruppen-ID, die in OCI Logging Analytics erstellt wurde, um die Logmeldungen zu gruppieren.
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.
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.
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:
- Benutzerdefinierte APM-Dashboards erstellen
- Benutzerdefinierte Logging Analytics-Dashboards erstellen
- Anpassen und Anzeigen von Tracedaten in Application Performance Monitoring-Dashboards mit Widgets, um benutzerdefinierte Widgets aus den Trace Explorer-Abfragen von Application Performance Monitoring zu erstellen.
Beispiel-Dashboard, das für eine MERN-Anwendung erstellt wurde.
Verwandte Links
Danksagungen
- Autor - Zyaad Khader (Strategischer Kundenprogramm-Engineer)
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.
Monitor Applications using OCI Application Performance Monitoring and OpenTelemetry
F91948-01
January 2024
Copyright © APMOT, Oracle and/or its affiliates.