Osservabilità tramite OpenTelemetry

Scopri come AEM as a Cloud Service utilizza OpenTelemetry per inviare tracce, metriche e registri alla piattaforma di monitoraggio delle prestazioni delle applicazioni (APM) desiderata.

Adobe sta sostituendo l’integrazione integrata di Application Performance Monitoring (APM) in AEM as a Cloud Service con OpenTelemetry, uno standard aperto per la raccolta e l’esportazione di tracce, metriche e registri. Con OpenTelemetry, inserisci il tuo endpoint APM e monitora AEM insieme alle altre applicazioni, utilizzando gli strumenti già noti ai tuoi team. Per ulteriori informazioni, vedere la documentazione OpenTelemetry.

Questo articolo spiega cosa fornisce l’integrazione, come la telemetria scorre da AEM alla piattaforma APM, cosa controlli e cosa considerare prima di abilitarla. Nell’esercitazione sulla configurazione viene illustrato come impostare OpenTelemetry per l’ambiente AEM.

AVAILABILITY
Questa funzionalità si trova in Disponibilità limitata. Per utilizzarlo, richiedi l'accesso inviando un'e-mail a aemcs-apm-beta@adobe.com - Adobe abilita OpenTelemetry per i tuoi ambienti subito dopo aver risposto alla richiesta. Se l’ambiente utilizza attualmente l’integrazione APM integrata di Adobe, tale integrazione interrompe l’invio di dati dopo l’abilitazione di OpenTelemetry, poiché i due elementi non possono essere eseguiti contemporaneamente.
Tieni presente che non è disponibile per ambienti con ambito HIPAA, ambienti di sviluppo rapido (RDE) e sandbox.

Perché OpenTelemetry

Con OpenTelemetry è possibile:

  • Scegli la tua piattaforma: invia telemetria a qualsiasi backend che accetta OpenTelemetry Protocol over HTTPS (OTLP/HTTPS), incluso il tuo provider corrente se supporta OTLP.
  • Visualizza l’immagine completa: consente di ottenere tracce, metriche e registri tramite un’integrazione, anziché meccanismi separati.
  • Analizza più velocemente: trova richieste lente o non riuscite, tieni traccia dell’integrità di JVM nel tempo e correla il comportamento di AEM con gli altri servizi durante un problema.
  • Resta in controllo: configura la destinazione a cui inviare i dati utilizzando la pipeline di configurazione di Cloud Manager e gestisci dashboard, avvisi e conservazione nella tua piattaforma.

Adobe fornisce e aggiorna l’agente Java OpenTelemetry che viene eseguito con AEM, in modo da non installarlo o aggiornarlo. Si decide dove andare la telemetria.

Come funziona

Il diagramma seguente mostra il flusso logico della telemetria dai servizi AEM alla piattaforma di osservabilità:

Flusso logico di telemetria dai servizi AEM alla piattaforma di osservabilità dei clienti

L’agente Java OpenTelemetry raccoglie la telemetria dell’applicazione dai servizi AEM e la invia a un agente OpenTelemetry Collector in esecuzione nell’ambiente AEM. Il raccoglitore elabora la telemetria e la inoltra su OTLP/HTTPS alla piattaforma di osservabilità configurata.

Viene inviata solo la telemetria generata dall’applicazione AEM. Le informazioni relative al runtime e alla piattaforma sottostanti, ad esempio nomi host interni, indirizzi, identificatori dei contenitori e dettagli del sistema operativo o del processo, vengono rimosse prima che i dati lascino l’ambiente.

Che cos’è la telemetria disponibile

Segnale
I risultati ottenuti
Come abilitarli
Tracce
Si estende per le richieste gestite dall’applicazione: richieste HTTP in entrata, elaborazione servlet e chiamate in uscita.
Configura e distribuisci il file otel.yaml tramite la pipeline di configurazione di Cloud Manager. Consulta esercitazione sulla configurazione
Metriche
Metriche runtime JVM (memoria, Garbage Collection, thread, utilizzo di CPU) e metriche delle richieste del server HTTP (tasso, latenza e tasso di errore).
Configurare e distribuire il file otel.yaml con metrics: true utilizzando la pipeline di configurazione di Cloud Manager. Vedere esercitazione sulla configurazione
Registri
Voci del registro applicazioni di AEM (WARN e versioni successive), inviate utilizzando il segnale dei registri OpenTelemetry. Nota: i registri dispatcher e CDN NON vengono inviati.
Configurare e distribuire il file otel.yaml con logs: true utilizzando la pipeline di configurazione di Cloud Manager. Vedere esercitazione sulla configurazione

Alcuni dettagli da tenere a mente:

  • Per mantenere le tracce incentrate sulle richieste delle applicazioni, le attività interne di volume elevato, come i test di integrità e i processi di pianificazione (Quartz), vengono filtrate.
  • In questa versione non vengono emesse estensioni interne al framework di AEM precise, come la risoluzione delle risorse Sling, i servizi OSGi e l’accesso JCR.
  • Le metriche utilizzano nomi OpenTelemetry standard, ad esempio jvm.memory.used, jvm.gc.duration, jvm.thread.count e http.server.request.duration.
WARNING
Se invii i registri tramite OpenTelemetry e tramite Log Forwarding alla stessa destinazione, riceverai messaggi di registro duplicati. Abilitare un solo percorso per destinazione o inviarli a una destinazione diversa.
L’inoltro del registro è un meccanismo separato e continua a funzionare come oggi.

Come vengono identificati i servizi AEM

Ogni traccia, metrica e voce di registro contiene attributi di risorse che consentono alla piattaforma di distinguere ambienti e livelli:

  • service.name identifica il programma, l’ambiente, il livello e il tipo di ambiente, seguendo questo modello:

    code language-text
    cm-p<program>-e<environment>-aem-<author|publish|preview>-<environment-type>
    

    Ad esempio, cm-p12345-e67890-aem-publish-prod è il servizio di pubblicazione dell’ambiente 67890 in 12345 di programma, in esecuzione in un ambiente di produzione.

  • deployment.environment identifica il tipo di ambiente, ad esempio prod o stage.

Utilizzare questi attributi per filtrare e raggruppare la telemetria e per correlare i registri con tracce e metriche dello stesso servizio.

Cosa controlli

L’integrazione viene configurata distribuendo il file config/otel.yaml tramite la pipeline di configurazione di Cloud Manager.

Il file di configurazione di esempio è:

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

La configurazione determina:

  • Tipi di ambiente (prod, stage, dev) a cui si applica
  • Il tipo di destinazione (newrelic, dynatrace, generic, ecc.) e endpoint OTLP/HTTPS
  • Credenziali di autenticazione (authHeaderName e authHeaderValue), con riferimento come variabile di ambiente Cloud Manager secret denominata OTEL_CUSTOMER_AUTH
  • Indica se le metriche (metrics: true) e i registri (logs: true) vengono esportati in aggiunta alle tracce
  • Indica se la rete avanzata (advancedNetworking: true) è utilizzata per la destinazione

Le credenziali di autenticazione (authHeaderValue) devono essere archiviate come variabile di ambiente Cloud Manager secret denominata OTEL_CUSTOMER_AUTH e a cui si fa riferimento dal file di configurazione. Non memorizzare mai le credenziali come testo normale nell’archivio.

Se l’endpoint OTLP/HTTPS è privato o richiede traffico in uscita da un indirizzo IP stabile noto, abilitare Rete avanzata con uscita dedicata. L’impostazione advancedNetworking non ha alcun effetto a meno che Cloud Manager non abbia già eseguito il provisioning di Advanced Networking per l’ambiente. Un endpoint SaaS pubblico utilizza il percorso di rete in uscita standard.

Destinazioni supportati

Puoi inviare telemetria a qualsiasi piattaforma APM che espone un endpoint OTLP/HTTPS, tra cui:

  • New Relic
  • Dynatrace
  • Datadog
  • Grafana Cloud
  • Splunk Observability Cloud
  • Trattino0
  • favo d’ape
  • Osservabilità elastica
  • Logica sumo
  • Osservabilità ServiceNow Cloud

Questo elenco non è esaustivo. OpenTelemetry definisce il formato di telemetria e il protocollo di esportazione e la piattaforma selezionata determina il modo in cui i dati vengono interrogati, visualizzati, conservati e avvisati.

Scegli una piattaforma di osservabilità

Per ricevere la telemetria è necessaria una piattaforma che accetti OTLP/HTTPS. Adobe non lo fornisce, devi fornire una tua piattaforma di osservabilità.

Se la tua organizzazione utilizza già una delle piattaforme descritte qui sopra, inizia da lì. In caso contrario, scegli tra una piattaforma ospitata dal fornitore (SaaS) e una con hosting autonomo:

SaaS (Vendor-Hosted)
Self-hosted
Configurazione
Nessun elemento da installare o utilizzare.
Puoi installare, aggiornare e scalare la piattaforma.
Percorso dati
La telemetria lascia l’ambiente e potrebbe richiedere una revisione della sicurezza o della privacy.
La telemetria rimane nell’infrastruttura che controlli.
Funzioni
In genere, le dashboard, gli avvisi e le viste APM sono integrati. Alcune funzioni sono specifiche per il fornitore.
Le funzioni dipendono dal software scelto.
Costo
I prezzi dipendono in genere dal volume dei dati.
Si paga per l’infrastruttura e i tempi tecnici.
Disponibilità
Il fornitore gestisce il servizio.
Consente di gestire tempi di attività, storage, backup e conservazione.

Prima di iniziare

  • Ambienti: è possibile abilitare OpenTelemetry singolarmente negli ambienti di produzione, stage e sviluppo. Tuttavia, gli ambienti con ambito HIPAA, i programmi sandbox e gli ambienti di sviluppo rapido (RDE) NON sono supportati.
  • Versioni: l’integrazione supporta OpenTelemetry Java agent 2.x e il protocollo di esportazione OTLP/HTTPS.

Passaggi successivi

Segui l’esercitazione sulla configurazione per configurare OpenTelemetry con il progetto di esempio AEM WKND o con il tuo progetto AEM.

Risorse aggiuntive

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