Observability via OpenTelemetry
Erfahren Sie, wie AEM as a Cloud Service mithilfe von OpenTelemetry Traces, Metriken und Protokolle an die gewünschte APM-Plattform (Application Performance Monitoring) sendet.
Adobe ersetzt die integrierte APM-Integration (Application Performance Monitoring) in AEM as a Cloud Service durch OpenTelemetry, einen offenen Standard für die Erfassung und den Export von Ablaufverfolgungen, Metriken und Protokollen. Mit OpenTelemetry Sie Ihren eigenen APM Endpunkt und überwachen AEM zusammen mit den anderen Anwendungen, indem Sie die Tools verwenden, die Ihren Teams bereits bekannt sind. Weitere Informationen finden Sie in der OpenTelemetry-Dokumentation.
In diesem Artikel wird erläutert, was die Integration bietet, wie die Telemetrie von AEM zu Ihrer APM-Plattform fließt, was Sie steuern und was Sie beachten müssen, bevor Sie sie aktivieren. Im Konfigurations-Tutorial wird erläutert, wie Sie OpenTelemetry für Ihre AEM-Umgebung einrichten.
Warum OpenTelemetry?
Mit OpenTelemetry können Sie:
- Wählen Sie Ihre Plattform: Senden Sie Telemetrie an ein beliebiges Backend, das das OpenTelemetry-Protokoll über HTTPS (OTLP/HTTPS) akzeptiert, einschließlich Ihres aktuellen Anbieters, falls er OTLP unterstützt.
- Vollständige Übersicht: Abruf von Spuren, Metriken und Protokollen durch eine Integration anstelle von separaten Mechanismen.
- Schnellere Untersuchung: Finden Sie langsame oder fehlgeschlagene Anfragen, verfolgen Sie den JVM-Status im Laufe der Zeit und korrelieren Sie das Verhalten von AEM mit Ihren anderen Services während eines Vorfalls.
- Kontrolle behalten Konfigurieren Sie mithilfe der Cloud Manager Config-Pipeline, an welches Ziel Daten gesendet werden sollen, und verwalten Sie Dashboards, Warnhinweise und die Datenspeicherung in Ihrer eigenen Plattform.
Adobe stellt den OpenTelemetry-Java-Agenten bereit, der mit AEM ausgeführt wird, und aktualisiert ihn, sodass Sie ihn nicht installieren oder aktualisieren. Man entscheidet, wohin die Telemetrie geht.
Funktionsweise
Das folgende Diagramm zeigt den logischen Fluss der Telemetrie von AEM-Services zu Ihrer Beobachtbarkeitsplattform:
Der OpenTelemetry-Java-Agent erfasst Anwendungstelemetrie aus AEM-Services und sendet sie an einen OpenTelemetry-Collector, der in der AEM-Umgebung ausgeführt wird. Der Collector verarbeitet die Telemetrie und leitet sie über OTP/HTTPS an Ihre konfigurierte Beobachtbarkeitsplattform weiter.
Es wird nur die von Ihrer AEM-Anwendung generierte Telemetrie gesendet. Informationen zur zugrunde liegenden Laufzeit und Plattform, wie interne Hostnamen, Adressen, Container-IDs und Betriebssystem- oder Prozessdetails, werden entfernt, bevor Daten Ihre Umgebung verlassen.
Welche Telemetrie verfügbar ist
otel.yaml Datei mithilfe der Cloud Manager-Konfigurations-Pipeline finden Sie Konfigurations-Tutorialotel.yaml Datei mit metrics: true mithilfe der Cloud Manager-Konfigurations-Pipeline finden Sie Konfigurations-Tutorialotel.yaml Datei mit logs: true mithilfe der Cloud Manager-Konfigurations-Pipeline finden Sie Konfigurations-TutorialEinige Details sollten Sie beachten:
- Um die Verfolgung auf Anwendungsanfragen zu beschränken, werden interne Aktivitäten mit hohem Volumen wie Konsistenzprüfungen und Planungsaufträge (Quartz) herausgefiltert.
- Detaillierte AEM-Framework-interne Bereiche wie Sling-Ressourcenauflösung, OSGi-Services und JCR-Zugriff werden in dieser Version nicht ausgegeben.
- Metriken verwenden standardmäßige OpenTelemetry-Namen, z. B.
jvm.memory.used,jvm.gc.duration,jvm.thread.countundhttp.server.request.duration.
So werden AEM-Services identifiziert
Jeder Trace-, Metrik- und Protokolleintrag enthält Ressourcenattribute, mit denen Ihre Plattform Umgebungen und Ebenen unterscheiden kann:
-
service.namekennzeichnet das Programm, die Umgebung, die Ebene und den Umgebungstyp nach diesem Muster:code language-text cm-p<program>-e<environment>-aem-<author|publish|preview>-<environment-type>Beispielsweise ist
cm-p12345-e67890-aem-publish-prodder Veröffentlichungs-Service der Umgebung 67890 in Programm 12345, der in einer Produktionsumgebung ausgeführt wird. -
deployment.environmentidentifiziert den Umgebungstyp, z. B.prododerstage.
Verwenden Sie diese Attribute, um die Telemetrie zu filtern und zu gruppieren und Protokolle mit Ablaufverfolgungen und Metriken desselben Services zu korrelieren.
Was Sie kontrollieren
Sie konfigurieren die Integration, indem Sie die config/otel.yaml-Datei mithilfe der Cloud Manager Config-Pipeline bereitstellen.
Die Beispielkonfigurationsdatei lautet:
kind: "Otel"
version: "v1"
metadata:
envTypes:
- "dev"
- "stage"
- "prod"
data:
enabled: true
type: "generic"
endpoint: "<YOUR_OTLP_HTTPS_ENDPOINT>"
authHeaderName: "Authorization"
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}"
metrics: true
logs: true
advancedNetworking: false
Die Konfiguration bestimmt:
- Die Umgebungstypen (
prod,stage,dev), für die sie gilt - Der Zieltyp (
newrelic,dynatrace,genericusw.) und OTP/HTTPS-Endpunkt - Die Authentifizierungsberechtigungen (
authHeaderNameundauthHeaderValue), referenziert als Cloud Manager-Umgebungsvariable secret namensOTEL_CUSTOMER_AUTH - Ob Metriken (
metrics: true) und Protokolle (logs: true) zusätzlich zu Traces exportiert werden - Ob erweiterte Vernetzung (
advancedNetworking: true) für das Ziel verwendet wird
Die Authentifizierungsberechtigung (authHeaderValue) sollte als Cloud Manager-Umgebungsvariable secret mit dem Namen OTEL_CUSTOMER_AUTH gespeichert und in der Konfigurationsdatei referenziert werden. Speichern Sie Anmeldeinformationen niemals als Nur-Text im Repository.
Wenn Ihr OTP/HTTPS-Endpunkt privat ist oder ausgehenden Traffic von einer bekannten, stabilen IP-Adresse erfordert, aktivieren Sie Erweiterte Netzwerke mit dediziertem Ausgang. Die advancedNetworking-Einstellung hat keine Auswirkungen, es sei denn, Cloud Manager hat bereits erweiterte Netzwerkfunktionen für die Umgebung bereitgestellt. Ein öffentlicher SaaS-Endpunkt verwendet den standardmäßigen ausgehenden Netzwerkpfad.
Unterstützte Ziele
Sie können Telemetrie an jede APM-Plattform senden, die einen OTP/HTTPS-Endpunkt bereitstellt, einschließlich:
- New Relic
- Dynatrace
- Datadog
- Grafana Cloud
- Splunk Observability Cloud
- DASH0
- Honigwabe
- elastische Beobachtbarkeit
- Sumo Logic
- ServiceNow-Cloud-Beobachtbarkeit
Diese Liste ist nicht vollständig. OpenTelemetry definiert das Telemetrieformat und das Exportprotokoll, und Ihre ausgewählte Plattform bestimmt, wie die Daten abgefragt, visualisiert, gespeichert und gewarnt werden.
Beobachtbarkeitsplattform wählen
Sie benötigen eine Plattform, die OTP/HTTPS akzeptiert, um die Telemetrie zu erhalten. Adobe stellt dies nicht bereit. Sie müssen Ihre eigene Beobachtbarkeitsplattform mitbringen.
Wenn Ihr Unternehmen bereits eine der oben genannten Plattformen verwendet, beginnen Sie dort. Wenn nicht, wählen Sie zwischen einer vom Anbieter gehosteten (SaaS) und einer selbst gehosteten Plattform:
Bevor Sie beginnen
- Umgebungen: Sie können OpenTelemetry individuell für Produktions-, Staging- und Entwicklungsumgebungen aktivieren. HIPAA-Umgebungen, Sandbox-Programme und schnelle Entwicklungsumgebungen (RDEs) werden jedoch NICHT unterstützt.
- Versionen: Die Integration unterstützt OpenTelemetry Java Agent 2.x und das OTLP/HTTPS-Exportprotokoll.
Nächste Schritte
Folgen Sie dem Konfigurations-Tutorial, um OpenTelemetry mit dem AEM WKND-Beispielprojekt oder Ihrem eigenen AEM-Projekt einzurichten.