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.

AVAILABILITY
Diese Funktion ist in Eingeschränkte Verfügbarkeit verfügbar. Um sie zu verwenden, fordern Sie Zugriff per E-Mail an aemcs-apm-beta@adobe.com - Adobe aktiviert OpenTelemetry für Ihre Umgebungen kurz nach der Beantwortung Ihrer Anfrage. Wenn Ihre Umgebung derzeit die integrierte APM-Integration von Adobe verwendet, sendet diese Integration keine Daten mehr, sobald OpenTelemetry aktiviert ist, da die beiden nicht gleichzeitig ausgeführt werden können.
Beachten Sie, sie nicht HIPAA-Umgebungen, schnellen Entwicklungsumgebungen (RDE) und Sandboxes verfügbar ist.

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:

Logischer Fluss der Telemetrie von AEM-Services zur Kundenbeobachtungsplattform

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

Signal
Was Sie erhalten
Aktivierung
TRACES
Umfasst alle Anforderungen, die Ihre Anwendung verarbeitet: eingehende HTTP-Anforderungen, Servlet-Verarbeitung und ausgehende Aufrufe.
Informationen zum Konfigurieren und Bereitstellen otel.yaml Datei mithilfe der Cloud Manager-Konfigurations-Pipeline finden Sie Konfigurations-Tutorial
Metriken
JVM-Laufzeitmetriken (Arbeitsspeicher, Speicherbereinigung, Threads, CPU-Nutzung) und HTTP-Server-Anforderungsmetriken (Rate, Latenz und Fehlerrate).
Informationen zum Konfigurieren und Bereitstellen otel.yaml Datei mit metrics: true mithilfe der Cloud Manager-Konfigurations-Pipeline finden Sie Konfigurations-Tutorial
Protokolle
AEM-Anwendungsprotokolleinträge (WARNUNG und höher), die mit dem OpenTelemetry-Protokollsignal gesendet werden. Hinweis: Dispatcher- und CDN-Protokolle werden NICHT gesendet.
Informationen zum Konfigurieren und Bereitstellen otel.yaml Datei mit logs: true mithilfe der Cloud Manager-Konfigurations-Pipeline finden Sie Konfigurations-Tutorial

Einige 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.count und http.server.request.duration.
WARNING
Wenn Sie Protokolle über OpenTelemetry und über Protokollweiterleitung an dasselbe Ziel senden, erhalten Sie doppelte Protokollmeldungen. Nur einen Pfad pro Ziel aktivieren oder jeden an ein anderes Ziel senden.
Die Protokollweiterleitung ist ein separater Mechanismus und funktioniert weiterhin wie bisher.

So werden AEM-Services identifiziert

Jeder Trace-, Metrik- und Protokolleintrag enthält Ressourcenattribute, mit denen Ihre Plattform Umgebungen und Ebenen unterscheiden kann:

  • service.name kennzeichnet 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-prod der Veröffentlichungs-Service der Umgebung 67890 in Programm 12345, der in einer Produktionsumgebung ausgeführt wird.

  • deployment.environment identifiziert den Umgebungstyp, z. B. prod oder stage.

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, generic usw.) und OTP/HTTPS-Endpunkt
  • Die Authentifizierungsberechtigungen (authHeaderName und authHeaderValue), referenziert als Cloud Manager-Umgebungsvariable secret namens OTEL_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:

Vom Anbieter gehostete (SaaS)
Selbst gehostet
Setup
Nichts zu installieren oder zu bedienen.
Sie installieren, aktualisieren und skalieren die Plattform.
Datenspeicherort
Telemetrie verlässt Ihre Umgebung und benötigt möglicherweise eine Sicherheits- oder Datenschutzüberprüfung.
Telemetrie bleibt in der Infrastruktur, die Sie steuern.
Funktionen
Dashboards, Warnhinweise und APM-Ansichten sind normalerweise integriert. Einige Funktionen sind anbieterspezifisch.
Die Funktionen hängen von der gewählten Software ab.
Kosten
Die Preise hängen normalerweise vom Datenvolumen ab.
Sie zahlen für Infrastruktur und Entwicklungszeit.
Verfügbarkeit
Der Anbieter betreibt den Service.
Sie verwalten Betriebszeiten, Speicher, Backups und Aufbewahrung.

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.

Zusätzliche Ressourcen

recommendation-more-help
experience-manager-learn-help-cloud-service