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.
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à:
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
otel.yaml tramite la pipeline di configurazione di Cloud Manager. Consulta esercitazione sulla configurazioneotel.yaml con metrics: true utilizzando la pipeline di configurazione di Cloud Manager. Vedere esercitazione sulla configurazioneotel.yaml con logs: true utilizzando la pipeline di configurazione di Cloud Manager. Vedere esercitazione sulla configurazioneAlcuni 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.countehttp.server.request.duration.
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.nameidentifica 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.environmentidentifica il tipo di ambiente, ad esempioprodostage.
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 (
authHeaderNameeauthHeaderValue), con riferimento come variabile di ambiente Cloud Manager secret denominataOTEL_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:
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.