Risoluzione dei problemi relativi all'installazione di Application Signals - Amazon CloudWatch
OpenTelemetry Risolvi i conflitti di configurazione in Amazon EKS con Application SignalsPrestazioni di avvio a freddo del livello Java di Application SignalsL'applicazione non si avvia dopo l'abilitazione di Application SignalsL'applicazione Python non si avvia dopo l'abilitazione di Application SignalsNessun dato di Application Signals per l'applicazione Python che utilizza un server WSGILa mia applicazione Node.js non è instrumentata o non genera telemetria Application SignalsLa mia applicazione.NET non è dotata di strumentazione o si interrompe per le chiamate SDK AWSNessun dato applicativo nel pannello di controllo di Application SignalsI valori delle metriche del servizio o di dipendenza sono sconosciutiGestione di un ConfigurationConflict durante la gestione del componente aggiuntivo Amazon CloudWatch Observability EKSVoglio filtrare le metriche e le tracce non necessarieChe cosa significa InternalOperation?Come posso abilitare la registrazione per le applicazioni .NET?Come posso risolvere i conflitti tra le versioni dell'assemblaggio nelle applicazioni .NET?Posso disabilitare FluentBit?Posso filtrare i log dei contenitori prima di esportarli in Logs? CloudWatch Risoluzione TypeError quando si utilizza AWS Distro for OpenTelemetry (ADOT) Lambda Layer JavaScript TypeError quando si utilizzano gestori Response Streaming Lambda con AWS Distro for ( OpenTelemetry ADOT) Lambda Layer JavaScript Aggiornamento alle versioni richieste degli agenti o del componente aggiuntivo Amazon EKSEmbedded Metric Format (EMF) disabilitato per Application Signals

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi relativi all'installazione di Application Signals

Questa sezione contiene suggerimenti per la risoluzione dei problemi relativi a CloudWatch Application Signals.

Argomenti

OpenTelemetry Risolvi i conflitti di configurazione in Amazon EKS con Application Signals

Se utilizzi OpenTelemetry (OTel) per il monitoraggio delle prestazioni delle applicazioni (APM) con Amazon EKS e configuri endpoint di esportazione OTLP personalizzati diversi dagli CloudWatch endpoint, potresti riscontrare i seguenti comportamenti dopo l'installazione o l'aggiornamento alla versione 5.0.0 o successiva del componente aggiuntivo Observability: CloudWatch

  • Interruzione della OTel telemetria esistente: il componente aggiuntivo Observability può sostituire gli endpoint OTLP Exporter che hai codificato nella tua applicazione. CloudWatch Questa sostituzione non influisce sugli endpoint configurati tramite variabili di ambiente del contenitore o. envFrom ConfigMap Se sostituite, le metriche e le tracce potrebbero non raggiungere la destinazione prevista. Per mantenere la configurazione APM esistente dopo l'aggiornamento alla versione 5.0.0 o successiva, consulta Disattiva Application Signals

  • Application Signals potrebbe non funzionare se in precedenza hai abilitato Application Signals utilizzando il componente aggiuntivo CloudWatch Observability e hai configurato un endpoint OTLP personalizzato. Per risolvere questo problema, rimuovi gli endpoint OTLP personalizzati o imposta la variabile di ambiente OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true durante l'installazione o l'aggiornamento alla versione 5.0.0 o successiva

Prestazioni di avvio a freddo del livello Java di Application Signals

L'aggiunta del livello Application Signals alle funzioni Java Lambda aumenta la latenza di avvio (tempo di avvio a freddo). I seguenti suggerimenti possono aiutare a ridurre la latenza per le funzioni sensibili al fattore tempo.

Avvio rapido per agente Java: il livello Java Lambda di Application Signals include una funzionalità di avvio rapido che per impostazione predefinita è disattivata, ma che può essere abilitata impostando la variabile OTEL_JAVA_AGENT_FAST_STARTUP_ENABLED su true. Se abilitata, questa funzionalità configura la JVM per utilizzare il compilatore C1 di livello 1 di compilazione a più livelli per generare codice nativo ottimizzato rapido per velocizzare gli avvii a freddo. Il compilatore C1 dà priorità alla velocità a scapito dell'ottimizzazione a lungo termine, mentre il compilatore C2 offre prestazioni complessive superiori profilando i dati nel tempo.

Per ulteriori informazioni, consulta Fast startup for Java agent.

Riduci i tempi di avvio a freddo con Provisioned Concurrency: AWS Lambda provisioned Concurrency prealloca un numero specifico di istanze di funzione, mantenendole inizializzate e pronte a gestire immediatamente le richieste. Ciò riduce i tempi di avvio a freddo eliminando la necessità di inizializzare l'ambiente della funzione durante l'esecuzione e garantendo prestazioni più rapide e coerenti, in particolare per i carichi di lavoro sensibili alla latenza. Per ulteriori informazioni, consulta Configuring provisioned concurrency for a function.

Ottimizza le prestazioni di avvio con Lambda SnapStart: AWS Lambda SnapStart è una funzionalità che ottimizza le prestazioni di avvio delle funzioni Lambda creando un'istantanea preinizializzata dell'ambiente di esecuzione dopo la fase di inizializzazione della funzione. Questo snapshot viene quindi riutilizzato per avviare nuove istanze, riducendo in modo significativo i tempi di avvio a freddo saltando il processo di inizializzazione durante l'invocazione della funzione. Per informazioni, consulta Migliorare le prestazioni di avvio con Lambda SnapStart

L'applicazione non si avvia dopo l'abilitazione di Application Signals

Se l'applicazione su un cluster Amazon EKS non si avvia dopo aver abilitato Application Signals sul cluster, verifica quanto segue:

  • Verifica se l'applicazione è stata strumentata da un'altra soluzione di monitoraggio. Application Signals potrebbe non supportare la coesistenza con altre soluzioni di instrumentazione.

  • Verifica che l'applicazione soddisfi i requisiti di compatibilità per utilizzare Application Signals. Per ulteriori informazioni, consulta Sistemi supportati.

  • Se l'applicazione non è riuscita a recuperare gli artefatti di Application Signals come l'agente AWS Distro for Java OpenTelemetery o Python e CloudWatch le immagini degli agenti, potrebbe trattarsi di un problema di rete.

Per mitigare il problema, rimuovi l'annotazione instrumentation.opentelemetry.io/inject-java: "true" o instrumentation.opentelemetry.io/inject-python: "true" dal manifesto di implementazione dell'applicazione e implementa nuovamente l'applicazione. Quindi controlla se l'applicazione funziona.

Problemi noti

È noto che la raccolta di metriche di runtime nella versione Java SDK v1.32.5 non funziona con le applicazioni che utilizzano Wildfly. JBoss Questo problema si estende al componente aggiuntivo Amazon CloudWatch Observability EKS, interessando le versioni successive2.3.0-eksbuild.1. 2.5.0-eksbuild.1

Se riscontri problemi, esegui il downgrade della versione o disabilita la raccolta delle metriche di runtime aggiungendo la variabile di ambiente OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false all'applicazione.

L'applicazione Python non si avvia dopo l'abilitazione di Application Signals

È un problema noto nella OpenTelemetry strumentazione automatica che una variabile di PYTHONPATH ambiente mancante a volte può causare il mancato avvio dell'applicazione. Per risolvere questo problema, assicurati di impostare la variabile di ambiente PYTHONPATH sulla posizione della directory di lavoro dell'applicazione. Per ulteriori informazioni su questo problema, consulta Python autoinstrumentation setting of PYTHONPATH is not compliant with Python's module resolution behavior, breaking Django applications.

Per le applicazioni Django, ci sono configurazioni aggiuntive richieste, che sono descritte nella documentazione di Python OpenTelemetry .

  • Usa il flag --noreload per impedire il ricaricamento automatico.

  • Imposta la variabile di ambiente DJANGO_SETTINGS_MODULE sulla posizione del file settings.py dell'applicazione Django. Ciò garantisce che OpenTelemetry possa accedere e integrarsi correttamente con le impostazioni di Django.

Nessun dato di Application Signals per l'applicazione Python che utilizza un server WSGI

Se si utilizza un server WSGI come Gunicorn o uWSGI, è necessario apportare ulteriori modifiche per far funzionare l'instrumentazione automatica di ADOT Python.

Nota

Assicurati di utilizzare la versione più recente di ADOT Python e il componente aggiuntivo CloudWatch Amazon Observability EKS prima di procedere.

Passaggi aggiuntivi per abilitare Application Signals con un server WSGI
  1. Importa l'instrumentazione automatica nei processi di lavoro biforcati.

    Per Gunicorn, usa l'hook post_fork:

    # gunicorn.conf.py def post_fork(server, worker): from opentelemetry.instrumentation.auto_instrumentation import sitecustomize

    Per uWSGI, usa la direttiva import.

    # uwsgi.ini [uwsgi] ; required for the instrumentation of worker processes enable-threads = true lazy-apps = true import = opentelemetry.instrumentation.auto_instrumentation.sitecustomize
  2. Abilita la configurazione per l'instrumentazione automatica di ADOT Python per saltare il processo principale e rimandarlo ai worker impostando la variabile di ambiente OTEL_AWS_PYTHON_DEFER_TO_WORKERS_ENABLED su true.

La mia applicazione Node.js non è instrumentata o non genera telemetria Application Signals

Per abilitare Application Signals per Node.js, è necessario assicurarsi che l'applicazione Node.js utilizzi il formato del modulo CommonJS (CJS). Il AWS Distro for OpenTelemetry Node.js non supporta il formato del modulo ESM, poiché il supporto di ESM OpenTelemetry JavaScript è sperimentale ed è in corso di elaborazione.

Per determinare se la tua applicazione utilizza CJS e non ESM, assicurati che l'applicazione non soddisfi le condizioni per abilitare ESM.

La mia applicazione.NET non è dotata di strumentazione o si interrompe per le chiamate SDK AWS

L'SDK AWS Distro for Open Telemetry (ADOT) per .NET non supporta SDK per .NET V4. AWS Utilizza AWS SDK .NET V3 per il supporto completo di Application Signals.

Nessun dato applicativo nel pannello di controllo di Application Signals

Se nei pannelli di controllo di Application Signals mancano parametri o tracce, le cause potrebbero essere le seguenti. Esamina queste cause solo se hai atteso per 15 minuti che Application Signals raccogliesse e visualizzasse i dati dall'ultimo aggiornamento.

  • Assicurati che la libreria e il framework che stai utilizzando siano supportati dall'agente Java ADOT. Per ulteriori informazioni, consulta Librerie/framework.

  • Assicurati che l' CloudWatch agente sia in esecuzione. Per prima cosa controlla lo stato dei pod degli CloudWatch agenti e assicurati che siano tutti a Running posto.

    kubectl -n amazon-cloudwatch get pods.

    Aggiungi quanto segue al file di configurazione dell' CloudWatch agente per abilitare i log di debug, quindi riavvia l'agente.

    "agent": { "region": "${REGION}", "debug": true },

    Quindi verifica la presenza di errori nei pod dell'agente. CloudWatch

  • Verifica la presenza di problemi di configurazione con l' CloudWatch agente. Verificate che quanto segue sia ancora presente nel file di configurazione dell' CloudWatch agente e che l'agente sia stato riavviato da quando è stato aggiunto.

    "agent": { "region": "${REGION}", "debug": true },

    Quindi controlla i registri di OpenTelemetry debug per verificare la presenza di messaggi di errore come. ERROR io.opentelemetry.exporter.internal.grpc.OkHttpGrpcExporter - Failed to export ... Questi messaggi potrebbero indicare il problema.

    Se questo non risolve il problema, scarica e controlla le variabili di ambiente con nomi che iniziano con OTEL_ descrivendo il pod con il comando kubectl describe pod.

  • Per abilitare la registrazione di debug in OpenTelemetry Python, imposta la variabile di ambiente su debug e ridistribuisci l'OTEL_PYTHON_LOG_LEVELapplicazione.

  • Verifica la presenza di autorizzazioni errate o insufficienti per l'esportazione dei dati dall'agente. CloudWatch Se vedi Access Denied dei messaggi nei registri degli CloudWatch agenti, questo potrebbe essere il problema. È possibile che le autorizzazioni applicate durante l'installazione dell' CloudWatch agente siano state successivamente modificate o revocate.

  • Verifica la presenza di un problema relativo a AWS Distro for OpenTelemetry (ADOT) durante la generazione di dati di telemetria.

    Assicurati che le annotazioni sulla strumentazione instrumentation.opentelemetry.io/inject-java e sidecar.opentelemetry.io/inject-java vengano applicate alla distribuzione dell'applicazione e che il valore sia true. Senza questi, i pod dell'applicazione non saranno dotati di strumenti anche se il componente aggiuntivo ADOT è installato correttamente.

    Quindi, controlla se il container init è applicato all'applicazione e lo stato di Ready è True. Se il container init non è pronto, verifica lo stato del motivo.

    Se il problema persiste, abilita la registrazione di debug su OpenTelemetry Java SDK impostando la variabile di ambiente su true e ridistribuendo l'applicazione. OTEL_JAVAAGENT_DEBUG Quindi cerca i messaggi che iniziano con ERROR io.telemetry.

  • È possibile che l'esportatore stia eliminando i dati. metric/span Per scoprirlo, controlla il log dell'applicazione per i messaggi che includono Failed to export...

  • L' CloudWatch agente potrebbe subire delle limitazioni durante l'invio di metriche o intervalli ad Application Signals. Verifica la presenza di messaggi che indicano una limitazione nei registri degli agenti. CloudWatch

  • Assicurati di aver abilitato la configurazione di rilevamento servizi. È necessario eseguire questa operazione solo una volta nella Regione in uso.

    Per confermare ciò, nella CloudWatch console scegli Application Signals, Services. Se il Passaggio 1 non è contrassegnato come Completo, scegli Scoperta dei servizi. I dati dovrebbero iniziare ad arrivare entro cinque minuti.

I valori delle metriche del servizio o di dipendenza sono sconosciuti

Se vedi UnknownService, UnknownOperationUnknownRemoteService, o UnknownRemoteOperationper un nome o un'operazione di dipendenza nei dashboard di Application Signals, controlla se la presenza di punti dati per il servizio remoto sconosciuto e il funzionamento remoto sconosciuto coincidono con le relative distribuzioni.

  • UnknownServicesignifica che il nome di un'applicazione strumentata è sconosciuto. Se la variabile di ambiente OTEL_SERVICE_NAME non è definita e service.name non è specificato in OTEL_RESOURCE_ATTRIBUTES, il nome del servizio è impostato su UnknownService. Per risolvere questo problema, specifica il nome del servizio in OTEL_SERVICE_NAME o OTEL_RESOURCE_ATTRIBUTES.

  • UnknownOperationsignifica che il nome di un'operazione richiamata è sconosciuto. Ciò si verifica quando Application Signals non è in grado di rilevare il nome di un'operazione che invoca la chiamata remota o quando il nome dell'operazione estratto contiene valori di cardinalità elevati.

  • UnknownRemoteServicesignifica che il nome del servizio di destinazione è sconosciuto. Ciò si verifica quando il sistema non è in grado di estrarre il nome del servizio di destinazione a cui accede la chiamata remota.

    Una soluzione consiste nel creare un intervallo personalizzato attorno alla funzione che invia la richiesta e aggiungere l'attributo aws.remote.service con il valore designato. Un'altra opzione è configurare l' CloudWatch agente per personalizzare il valore metrico diRemoteService. Per ulteriori informazioni sulle personalizzazioni nell' CloudWatch agente, consulta. Abilita CloudWatch Application Signals

  • UnknownRemoteOperationsignifica che il nome dell'operazione di destinazione è sconosciuto. Ciò si verifica quando il sistema non è in grado di estrarre il nome dell'operazione di destinazione a cui accede la chiamata remota.

    Una soluzione consiste nel creare un intervallo personalizzato attorno alla funzione che invia la richiesta e aggiungere l'attributo aws.remote.operation con il valore designato. Un'altra opzione è configurare l' CloudWatch agente per personalizzare il valore metrico diRemoteOperation. Per ulteriori informazioni sulle personalizzazioni nell' CloudWatch agente, consulta. Abilita CloudWatch Application Signals

Gestione di un ConfigurationConflict durante la gestione del componente aggiuntivo Amazon CloudWatch Observability EKS

Quando installi o aggiorni il componente aggiuntivo Amazon CloudWatch Observability EKS, se noti un errore causato da un Health Issue di tipo ConfigurationConflict con una descrizione che inizia conConflicts found when trying to apply. Will not continue due to resolve conflicts mode, è probabile che l' CloudWatch agente e i relativi componenti associati, come il ServiceAccount, il ClusterRole e il, siano ClusterRoleBinding installati nel cluster. Quando il componente aggiuntivo tenta di installare l' CloudWatch agente e i componenti associati, se rileva modifiche nei contenuti, per impostazione predefinita fallisce l'installazione o l'aggiornamento per evitare di sovrascrivere lo stato delle risorse sul cluster.

Se stai tentando di effettuare l'onboarding al componente aggiuntivo Amazon CloudWatch Observability EKS e riscontri questo errore, ti consigliamo di eliminare una configurazione di CloudWatch agente esistente che avevi precedentemente installato sul cluster e quindi di installare il componente aggiuntivo EKS. Assicurati di eseguire il backup di tutte le personalizzazioni che potresti aver apportato alla configurazione originale dell' CloudWatch agente, ad esempio una configurazione personalizzata dell'agente, e di fornirle al componente aggiuntivo Amazon CloudWatch Observability EKS alla prossima installazione o aggiornamento. Se in precedenza avevi installato l' CloudWatch agente per l'onboarding su Container Insights, consulta per ulteriori informazioni. Eliminazione dell' CloudWatch agente e di Fluent Bit for Container Insights

In alternativa, il componente aggiuntivo supporta un'opzione di configurazione per la risoluzione dei conflitti che può specificare OVERWRITE. È possibile utilizzare questa opzione per procedere con l'installazione o l'aggiornamento del componente aggiuntivo sovrascrivendo i conflitti nel cluster. Se utilizzi la console Amazon EKS, trovi il metodo di risoluzione dei conflitti selezionando le impostazioni di configurazione facoltative quando crei o aggiorni il componente aggiuntivo. Se utilizzi il AWS CLI, puoi fornire il comando --resolve-conflicts OVERWRITE al tuo comando per creare o aggiornare il componente aggiuntivo.

Voglio filtrare le metriche e le tracce non necessarie

Se Application Signals sta raccogliendo tracce e metriche che non desideri, consulta Gestione di operazioni ad alta cardinalità per informazioni sulla configurazione dell' CloudWatch agente con regole personalizzate per ridurre la cardinalità.

Per ulteriori informazioni sulla personalizzazione delle regole di campionamento in tracce, consulta Configure sampling rules nella documentazione di X-Ray.

Che cosa significa InternalOperation?

InternalOperation è un'operazione che viene attivata dall'applicazione internamente anziché da un'invocazione esterna. La visualizzazione di InternalOperation è il comportamento previsto ed è indicazione di integrità.

Alcuni esempi tipici in cui potresti vedere InternalOperation includono quanto segue:

  • Precaricamento all'avvio: l'applicazione esegue un'operazione denominata loadDatafromDB che legge i metadati da un database durante la fase di riscaldamento. Invece di vedere loadDatafromDB come operazione di servizio, la vedrai classificata come InternalOperation.

  • Esecuzione asincrona in background: l'applicazione si abbona a una coda di eventi ed elabora i dati in streaming di conseguenza ogni volta che viene effettuato un aggiornamento. Ogni operazione attivata verrà eseguita sotto InternalOperation come operazione di servizio.

  • Recupero delle informazioni sull'host da un registro dei servizi: l'applicazione comunica con un registro dei servizi per il rilevamento servizi. Tutte le interazioni con il sistema di rilevamento sono classificate come InternalOperation.

Come posso abilitare la registrazione per le applicazioni .NET?

Per abilitare la registrazione per le applicazioni .NET, configura le seguenti variabili di ambiente. Per ulteriori informazioni su come configurare queste variabili di ambiente, consulta Risoluzione dei problemi relativi alla strumentazione automatica.NET nella documentazione. OpenTelemetry

  • OTEL_LOG_LEVEL

  • OTEL_DOTNET_AUTO_LOG_DIRECTORY

  • COREHOST_TRACE

  • COREHOST_TRACEFILE

Come posso risolvere i conflitti tra le versioni dell'assemblaggio nelle applicazioni .NET?

Se viene visualizzato il seguente errore, consulta Conflitti tra versioni di Assembly nella OpenTelemetry documentazione per i passaggi di risoluzione.

Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified. File name: 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' at Microsoft.AspNetCore.Builder.WebApplicationBuilder..ctor(WebApplicationOptions options, Action`1 configureDefaults) at Microsoft.AspNetCore.Builder.WebApplication.CreateBuilder(String[] args) at Program.<Main>$(String[] args) in /Blog.Core/Blog.Core.Api/Program.cs:line 26

Posso disabilitare FluentBit?

Puoi disabilitarlo FluentBit configurando il componente aggiuntivo Amazon CloudWatch Observability EKS. Per ulteriori informazioni, consulta (Facoltativo) Configurazione aggiuntiva.

Posso filtrare i log dei contenitori prima di esportarli in Logs? CloudWatch

No, il filtraggio dei log dei container non è ancora supportato.

Risoluzione TypeError quando si utilizza AWS Distro for OpenTelemetry (ADOT) Lambda Layer JavaScript

La tua funzione Lambda potrebbe fallire con questo errore: TypeError - "Cannot redefine property: handler" quando:

  • Usa il layer ADOT JavaScript Lambda

  • Usa per compilare esbuild TypeScript

  • Si esporta il gestore con la parola chiave export

L'ADOT JavaScript Lambda Layer deve modificare il gestore in fase di esecuzione. Quando si utilizza la export parola chiave with esbuild (direttamente o tramite AWS CDK), esbuild rende il gestore immutabile, impedendo queste modifiche.

Esporta la tua funzione di gestione utilizzando module.exports invece della parola chiave export:

// Before export const handler = (event) => { // Handler Code }
// After const handler = async (event) => { // Handler Code } module.exports = { handler }

TypeError quando si utilizzano gestori Response Streaming Lambda con AWS Distro for ( OpenTelemetry ADOT) Lambda Layer JavaScript

La tua funzione Lambda potrebbe fallire con questo errore: TypeError - "responseStream.write is not a function" quando:

  • Usa ADOT JavaScript Lambda Layer con AWS Lambda Instrumentation abilitata (abilitata per impostazione predefinita)

  • Utilizzo della funzionalità di streaming delle risposte nei runtime gestiti di Node.js. Ad esempio, quando il gestore delle funzioni è simile a:

    * export const handler = awslambda.streamifyResponse(...)

La strumentazione AWS Lambda nell'ADOT JavaScript Lambda Layer attualmente non supporta lo streaming di risposte nei runtime gestiti di Node.js, quindi deve essere disabilitata per evitare che ciò si verifichi. TypeError

Aggiornamento alle versioni richieste degli agenti o del componente aggiuntivo Amazon EKS

Dopo il 9 agosto 2024, CloudWatch Application Signals non supporterà più le versioni precedenti del componente aggiuntivo Amazon CloudWatch Observability EKS, dell' CloudWatch agente e dell'agente AWS Distro per la strumentazione automatica. OpenTelemetry

  • Per il componente aggiuntivo Amazon CloudWatch Observability EKS, le versioni precedenti a v1.7.0-eksbuild.1 non saranno supportate.

  • Per l' CloudWatch agente, le versioni precedenti a 1.300040.0 non saranno supportate.

  • Per l'agente AWS Distro for OpenTelemetry autostrumentation:

    • Per Java, le versioni precedenti alla 1.32.2 non sono supportate.

    • Per Python, le versioni precedenti alla 0.2.0 non sono supportate.

    • Per .NET, le versioni precedenti alla 1.3.2 non sono supportate.

    • Per Node.js, le versioni precedenti alla 0.3.0 non sono supportate.

Importante

Le versioni più recenti degli agenti includono aggiornamenti allo schema delle metriche di Application Signals. Questi aggiornamenti non sono compatibili con le versioni precedenti e ciò può causare problemi di dati se vengono utilizzate versioni incompatibili. Per garantire una transizione ottimale alla nuova funzionalità, effettua le seguenti operazioni:

  • Se la tua applicazione è in esecuzione su Amazon EKS, assicurati di riavviare tutte le applicazioni strumentate dopo aver aggiornato il componente aggiuntivo Amazon CloudWatch Observability.

  • Per le applicazioni in esecuzione su altre piattaforme, assicurati di aggiornare sia l' CloudWatch agente che l'agente di AWS OpenTelemetry strumentazione automatica alle versioni più recenti.

Le istruzioni nelle sezioni seguenti possono aiutarti a eseguire l'aggiornamento a una versione supportata.

Aggiorna il componente aggiuntivo Amazon CloudWatch Observability EKS

Per il componente aggiuntivo Amazon CloudWatch Observability EKS, puoi utilizzare Console di gestione AWS o il. AWS CLI

Utilizzo della console

Per aggiornare il componente aggiuntivo utilizzando la console
  1. Apri la console Amazon EKS a https://console.aws.amazon.com/eks/home#/clusters.

  2. Scegli il nome del cluster Amazon EKS da aggiornare.

  3. Scegli la scheda Componenti aggiuntivi, quindi scegli Amazon CloudWatch Observability.

  4. Scegli Modifica, seleziona la versione a cui desideri eseguire l'aggiornamento, quindi scegli Salva modifiche.

    Assicurati di scegliere v1.7.0-eksbuild.1 o successive.

  5. Inserisci uno dei seguenti AWS CLI comandi per riavviare i tuoi servizi.

    # Restart a deployment kubectl rollout restart deployment/name # Restart a daemonset kubectl rollout restart daemonset/name # Restart a statefulset kubectl rollout restart statefulset/name

Usa il AWS CLI

Per aggiornare il componente aggiuntivo utilizzando il AWS CLI
  1. Immetti il seguente comando per trovare la versione più recente.

    aws eks describe-addon-versions \ --addon-name amazon-cloudwatch-observability
  2. Immetti il seguente comando per aggiornare il componente aggiuntivo. Sostituiscilo $VERSION con una versione precedente v1.7.0-eksbuild.1 o successiva. Sostituisci $AWS_REGION e $CLUSTER con la tua regione e il nome del cluster.

    aws eks update-addon \ --region $AWS_REGION \ --cluster-name $CLUSTER \ --addon-name amazon-cloudwatch-observability \ --addon-version $VERSION \ # required only if the advanced configuration is used. --configuration-values $JSON_CONFIG
    Nota

    Se utilizzi una configurazione personalizzata per il componente aggiuntivo, puoi trovare un esempio della configurazione da utilizzare $JSON_CONFIG inAbilita CloudWatch Application Signals.

  3. Inserisci uno dei seguenti AWS CLI comandi per riavviare i servizi.

    # Restart a deployment kubectl rollout restart deployment/name # Restart a daemonset kubectl rollout restart daemonset/name # Restart a statefulset kubectl rollout restart statefulset/name

Aggiorna l' CloudWatch agente e l'agente ADOT

Se i tuoi servizi funzionano su architetture diverse da Amazon EKS, dovrai aggiornare sia l'agente che l' CloudWatch agente di strumentazione automatica ADOT per utilizzare le funzionalità di Application Signals più recenti.

Aggiornamento su Amazon ECS

Per aggiornare gli agenti per i servizi in esecuzione su Amazon ECS
  1. Crea una nuova revisione della definizione delle attività. Per ulteriori informazioni, consulta Updating a task definition using the console.

  2. Sostituisci il valore $IMAGE del container ecs-cwagent con il tag dell'ultima immagine di cloudwatch-agent su Amazon ECR.

    Se esegui l'upgrade a una versione fissa, assicurati di utilizzare una versione pari a 1.300040.0 o successiva.

  3. Sostituisci il valore $IMAGE del container init con il tag dell'ultima immagine dalle seguenti posizioni:

  4. Aggiorna le variabili di ambiente di Application Signals nel container dell'app seguendo le istruzioni riportate all'indirizzo Fase 4: Strumentate la vostra candidatura con l' CloudWatch agente.

  5. Implementa il servizio con la nuova definizione di attività.

Aggiornamento su Amazon EC2 o altre architetture

Per aggiornare i tuoi agenti per i servizi eseguiti su Amazon EC2 o altre architetture
  1. Assicurati di selezionare la versione 1.300040.0 o una versione successiva della versione dell' CloudWatch agente.

  2. Scarica l'ultima versione dell'agente AWS Distro for OpenTelemetry Auto Instrumentation da una delle seguenti posizioni:

    • Per Java, usa. aws-otel-java-instrumentation

      Se esegui l'aggiornamento a una versione fissa, assicurati di scegliere 1.32.2 o una versione successiva.

    • Per Python, usa. aws-otel-python-instrumentation

      Se esegui l'aggiornamento a una versione fissa, assicurati di scegliere 0.2.0 o una versione successiva.

    • Per .NET, usa aws-otel-dotnet-instrumentation.

      Se esegui l'aggiornamento a una versione fissa, assicurati di scegliere 1.3.2 o una versione successiva.

    • Per Node.js, usa aws-otel-js-instrumentation.

      Se esegui l'aggiornamento a una versione fissa, assicurati di scegliere 0.3.0 o una versione successiva.

  3. Applica le variabili di ambiente aggiornate di Application Signals all'applicazione, quindi avviala. Per ulteriori informazioni, consulta Passaggio 3: instrumentazione e avvio dell'applicazione.

Embedded Metric Format (EMF) disabilitato per Application Signals

La disabilitazione di EMF per il gruppo di log /aws/application-signals/data può avere il seguente impatto sulla funzionalità di Application Signals.

  • Le metriche e i grafici di Application Signals non verranno visualizzati

  • La funzionalità di Application Signals verrà ridotta

Come posso ripristinare Application Signals?

Quando Application Signals visualizza grafici o metriche vuoti, è necessario abilitare EMF per il gruppo di log /aws/application-signals/data per ripristinare la piena funzionalità. Per ulteriori informazioni, consulta PutAccountPolicy.