Metriche raccolte da Application Signals - Amazon CloudWatch

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à.

Metriche raccolte da Application Signals

Application Signals raccoglie sia le metriche standard delle applicazioni che le metriche di runtime dalle applicazioni per le quali lo abiliti.

Le metriche standard delle applicazioni si riferiscono agli aspetti più critici delle prestazioni, della latenza e della disponibilità del servizio.

Le metriche di runtime tengono traccia delle metriche delle applicazioni nel tempo, tra cui l'utilizzo della memoria, l'utilizzo della CPU e la raccolta dei rifiuti. Application Signals visualizza le metriche di runtime nel contesto dei servizi abilitati per Application Signals. In caso di problemi operativi, l'osservazione delle metriche di runtime può essere utile per individuare la causa principale del problema. Ad esempio, puoi vedere se i picchi di latenza nel tuo servizio sono correlati ai picchi di una metrica di runtime.

Parametri dell'applicazione standard raccolti

Application Signals raccoglie i parametri dell'applicazione standard dai servizi che rileva. Questi parametri si riferiscono agli aspetti più critici delle prestazioni di un servizio: latenza, guasti ed errori. Possono aiutarti a identificare i problemi, monitorare le tendenze delle prestazioni e ottimizzare le risorse per migliorare complessivamente l'esperienza utente.

La tabella seguente elenca i parametri raccolti da Application Signals. Queste metriche vengono inviate CloudWatch nel namespace. ApplicationSignals

Parametro Descrizione

Latency

Il ritardo prima dell'inizio del trasferimento dei dati dopo la richiesta.

Unità: millisecondi

Fault

Un conteggio degli errori sul lato server HTTP 5XX e degli errori di stato span. OpenTelemetry

Unità: nessuna

Error

Un numero di errori HTTP 4XX lato client. Questi sono considerati errori di richiesta non causati da problemi del servizio. Pertanto, il parametro Availability visualizzato nei pannelli di controllo di Application Signals non considera questi errori guasti del servizio.

Unità: nessuna

La Availability metrica visualizzata nei dashboard di Application Signals viene calcolata come (1 - /totale) *100. Faults Le risposte totali includono tutte le risposte e sono derivate da. SampleCount(Latency) Le risposte con esito positivo sono tutte risposte senza errori 5XX. Le risposte 4XX vengono considerate corrette durante il calcolo di Availability di Application Signals.

Dimensioni raccolte e combinazioni di dimensioni

Le seguenti dimensioni sono definite per ciascuno dei parametri standard dell'applicazione. Per ulteriori informazioni sulle dimensioni, consulta Dimensioni.

Vengono raccolte diverse dimensioni per i parametri del servizio e i parametri di dipendenza. All'interno dei servizi scoperti da Application Signals, quando il microservizio A chiama il microservizio B, il microservizio B elabora la richiesta. In questo caso, il microservizio A emette parametri di dipendenza e il microservizio B emette parametri del servizio. Quando un client chiama il microservizio A, il microservizio A elabora la richiesta ed emette i parametri del servizio.

Dimensioni per i parametri del servizio

Le seguenti dimensioni vengono utilizzate per i parametri del servizio.

Dimensione Descrizione

Service

Il nome del servizio .

Il valore massimo è 255 caratteri.

Operation

Il nome dell'operazione API o di altra attività.

Il valore massimo è 1024 caratteri. Attualmente, è possibile impostare obiettivi di livello di servizio per le operazioni solo se il nome dell'operazione è composto da un massimo di 194 caratteri.

Environment

Il nome dell'ambiente in cui i servizi sono in esecuzione. Se i servizi non sono in esecuzione su Amazon EKS, puoi specificare un valore personalizzato opzionale per deployment.environment nel OTEL_ATTRIBUTE_RESOURCES parametro.

Il valore massimo è 259 caratteri.

Quando visualizzi queste metriche nella CloudWatch console, puoi visualizzarle utilizzando le seguenti combinazioni di dimensioni:

  • [Environment, Service, Operation, [Latency, Error, Fault]]

  • [Environment, Service, [Latency, Error, Fault]]

Dimensioni per i parametri di dipendenza

Le seguenti dimensioni vengono raccolte per le metriche di dipendenza:

Dimensione Descrizione

Service

Il nome del servizio .

Il valore massimo è 255 caratteri.

Operation

Il nome dell'operazione API o di un'altra operazione.

Il valore massimo è 1024 caratteri.

RemoteService

Il nome del servizio remoto richiamato.

Il valore massimo è 255 caratteri.

RemoteOperation

Il nome dell'operazione API che viene richiamata.

Il valore massimo è 1024 caratteri.

Environment

Il nome dell'ambiente in cui i servizi sono in esecuzione. Se i servizi non sono in esecuzione su Amazon EKS, puoi specificare un valore personalizzato opzionale per deployment.environment nel OTEL_ATTRIBUTE_RESOURCES parametro.

Il valore massimo è 259 caratteri.

RemoteEnvironment

Il nome dell'ambiente in cui vengono eseguiti i servizi di dipendenza. Il RemoteEnvironment parametro viene generato automaticamente quando un servizio richiama una dipendenza e entrambi sono in esecuzione nello stesso cluster. Altrimenti, non RemoteEnvironment viene né generato né riportato nelle metriche della dipendenza dal servizio. Attualmente disponibile solo su Amazon EKS e K8S piattaforme.

Il valore massimo è 259 caratteri.

RemoteResourceIdentifier

Il nome della risorsa richiamata da una chiamata remota. Il RemoteResourceIdentifier parametro viene generato automaticamente se il servizio chiama un AWS servizio remoto. Altrimenti, non RemoteResourceIdentifier viene né generato né riportato nelle metriche della dipendenza dal servizio.

Il valore massimo è 1024 caratteri.

RemoteResourceType

Il tipo di risorsa richiamata da una chiamata remota. Obbligatorio solo se RemoteResourceIdentifier definito.

Il valore massimo è 1024 caratteri.

Quando visualizzi queste metriche nella CloudWatch console, puoi visualizzarle utilizzando le seguenti combinazioni di dimensioni:

Esecuzione su cluster Amazon EKS

  • [Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]

  • [Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, [Latency, Error, Fault]]

  • [Environment, Service, Operation, RemoteService, RemoteOperation, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]

  • [Environment, Service, Operation, RemoteService, RemoteOperation, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, RemoteEnvironment, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, RemoteOperation, RemoteEnvironment, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, RemoteOperation, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, RemoteOperation, [Latency, Error, Fault]]

  • [RemoteService [Latency, Error, Fault]]

  • [RemoteService, RemoteResourceIdentifier, RemoteResourceType [Latency, Error, Fault]]

Metriche di runtime

Application Signals utilizza AWS Distro for OpenTelemetry SDK per raccogliere automaticamente metriche OpenTelemetry compatibili dalle applicazioni Java e Python. Per raccogliere le metriche di runtime, devi soddisfare i seguenti prerequisiti:

  • Il tuo CloudWatch agente deve avere una versione o una versione successiva1.300049.1.

  • Se utilizzi il componente aggiuntivo Amazon CloudWatch Observability EKS, deve essere una versione 2.30-eksbuild.1 o successiva. Se aggiorni il componente aggiuntivo, devi riavviare le applicazioni.

  • Per le applicazioni Java, è necessario eseguire 1.32.5 o utilizzare una versione successiva di AWS Distro for OpenTelemetry SDK for Java.

  • Per le applicazioni Python, è necessario eseguire 0.7.0 o utilizzare una versione successiva di AWS Distro for OpenTelemetry SDK for Python.

  • Per le applicazioni.Net, è necessario eseguire 1.6.0 o utilizzare una versione successiva della AWS Distro for SDK for .Net. OpenTelemetry

Le metriche di runtime non vengono raccolte per le applicazioni Node.js.

Le metriche di runtime vengono addebitate come parte dei costi di Application Signals. Per ulteriori informazioni sui CloudWatch prezzi, consulta la pagina CloudWatch dei prezzi di Amazon.

Nota

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.6.0-eksbuild.1 Il problema è stato risolto nella versione Java SDK v1.32.6 e nella versione aggiuntiva Amazon CloudWatch Observability EKS. v3.0.0-eksbuild.1

In caso di impatto, aggiorna la versione di Java SDK o disabilita la raccolta di parametri di runtime aggiungendo la variabile di ambiente all'applicazione. OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false

Metriche di runtime Java

Application Signals raccoglie le seguenti metriche JVM dalle applicazioni Java abilitate per Application Signals. Tutte le metriche di runtime vengono inviate CloudWatch nello spazio dei ApplicationSignals nomi e raccolte con il set di dimensioni and. Service Environment

Nome parametro Descrizione Statistiche significative

JVMGCDuration

Metrica aggregata per la durata delle azioni di raccolta dei rifiuti JVM.

Unità: millisecondi

Somma, media, minimo, massimo

JVMGCOldGenDuration

Metrica aggregata per la durata delle azioni di raccolta dei rifiuti JVM della vecchia generazione. Disponibile solo in G1.

Unità: millisecondi

Somma, media, minimo, massimo

JVMGCYoungGenDuration

Metrica aggregata per la durata delle azioni di raccolta dei rifiuti JVM delle giovani generazioni. Disponibile solo in G1.

Unità: millisecondi

Somma, media, minimo, massimo

JVMGCCount

Metrica aggregata per il numero di azioni di raccolta dei rifiuti JVM.

Unità: nessuna

Somma, media, minimo, massimo

JVMGCOldGenCount

Metrica aggregata per il numero di azioni di raccolta dei rifiuti JVM della vecchia generazione. Disponibile solo in G1.

Unità: nessuna

Somma, media, minimo, massimo

JVMGCYoungGenCount

Metrica aggregata per il numero di azioni di raccolta dei rifiuti JVM delle giovani generazioni. Disponibile solo in G1.

Unità: nessuna

Somma, media, minimo, massimo

JVMMemoryHeapUsed

La quantità di heap di memoria utilizzata.

Unità: byte

Media, minima, massima

JVMMemoryUsedAfterLastGC

Quantità di memoria utilizzata, misurata dopo l'evento di raccolta dei rifiuti più recente su questo pool.

Unità: byte

Media, minima, massima

JVMMemoryOldGenUsed

La quantità di memoria utilizzata dalla vecchia generazione.

Unità: byte

Media, minima, massima

JVMMemorySurvivorSpaceUsed

La quantità di memoria utilizzata dallo spazio dei sopravvissuti.

Unità: byte

Media, minima, massima

JVMMemoryEdenSpaceUsed

La quantità di memoria utilizzata dallo spazio dell'Eden.

Unità: byte

Media, minima, massima

JVMMemoryNonHeapUsed

La quantità di memoria non heap utilizzata.

Unità: byte

Media, minima, massima

JVMThreadCount

Il numero di thread in esecuzione, inclusi i thread daemon e non daemon.

Unità: nessuna

Somma, media, minimo, massimo

JVMClassLoaded

Il numero di classi caricate.

Unità: nessuna

Somma, media, minimo, massimo

JVMCpuTime

Il tempo di CPU utilizzato dal processo, come riportato dalla JVM.

Unità: nessuna (nanosecondi)

Somma, media, minimo, massimo

JVMCpuRecentUtilization

La CPU recente utilizzata dal processo, come riportato dalla JVM.

Unità: nessuna

Media, minima, massima

Metriche di runtime in Python

Application Signals raccoglie le seguenti metriche dalle applicazioni Python abilitate per Application Signals. Tutte le metriche di runtime vengono inviate CloudWatch nello spazio dei ApplicationSignals nomi e raccolte con il set di dimensioni and. Service Environment

Nome parametro Descrizione Statistiche significative

PythonProcessGCCount

Il numero totale di oggetti attualmente tracciati.

Unità: nessuna

Somma, media, minimo, massimo

PythonProcessGCGen0Count

Il numero di oggetti attualmente tracciati nella generazione 0.

Unità: nessuna

Somma, media, minimo, massimo

PythonProcessGCGen1Count

Il numero di oggetti attualmente tracciati nella prima generazione.

Unità: nessuna

Somma, media, minimo, massimo

PythonProcessGCGen2Count

Il numero di oggetti attualmente tracciati nella seconda generazione.

Unità: nessuna

Somma, media, minimo, massimo

PythonProcessVMSMemoryUsed

La quantità totale di memoria virtuale utilizzata dal processo.

Unità: byte

Media, minima, massima

PythonProcessRSSMemoryUsed

La quantità totale di memoria fisica non scambiata utilizzata dal processo.

Unità: byte

Media, minima, massima

PythonProcessThreadCount

Il numero di thread attualmente utilizzati dal processo.

Unità: nessuna

Somma, media, minimo, massimo

PythonProcessCpuTime

Il tempo di CPU utilizzato dal processo.

Unità: secondi

Somma, media, minimo, massimo

PythonProcessCpuUtilization

L'utilizzo della CPU del processo.

Unità: nessuna

Media, minima, massima

Metriche di runtime di.Net

Application Signals raccoglie le seguenti metriche dalle applicazioni.Net abilitate per Application Signals. Tutte le metriche di runtime vengono inviate CloudWatch nello spazio dei ApplicationSignals nomi e raccolte con il set di dimensioni and. Service Environment

Nome parametro Descrizione Statistiche significative

DotNetGCGen0Count

Il numero totale di metriche relative alla raccolta dei rifiuti monitorate nella Generazione 0 dall'inizio del processo.

Unità: nessuna

Somma, media, minimo, massimo

DotNetGCGen1Count

Il numero totale di metriche relative alla raccolta dei rifiuti monitorate nella prima generazione dall'inizio del processo.

Unità: nessuna

Somma, media, minimo, massimo

DotNetGCGen2Count

Il numero totale di metriche relative alla raccolta dei rifiuti monitorate nella seconda generazione dall'inizio del processo.

Unità: nessuna

Somma, media, minimo, massimo

DotNetGCDuration

Il tempo totale di pausa nella raccolta dei rifiuti dall'inizio del processo.

Unità: nessuna

Somma, media, minimo, massimo

DotNetGCGen0HeapSize

La dimensione dell'heap (inclusa la frammentazione) della generazione 0 osservata durante l'ultima raccolta dei rifiuti.

Nota

Questa metrica è disponibile solo dopo il completamento della prima Garbage Collection.

Unità: byte

Media, minima, massima

DotNetGCGen1HeapSize

La dimensione del cumulo (inclusa la frammentazione) della prima generazione osservata durante l'ultima raccolta dei rifiuti.

Nota

Questa metrica è disponibile solo dopo il completamento della prima Garbage Collection.

Unità: byte

Media, minima, massima

DotNetGCGen2HeapSize

La dimensione del cumulo (inclusa la frammentazione) della seconda generazione osservata durante l'ultima raccolta dei rifiuti.

Nota

Questa metrica è disponibile solo dopo il completamento della prima Garbage Collection.

Unità: byte

Media, minima, massima

DotNetGCLOHHeapSize

La grande dimensione dell'heap di oggetti (inclusa la frammentazione) osservata durante l'ultima raccolta dei rifiuti.

Nota

Questa metrica è disponibile solo dopo il completamento della prima Garbage Collection.

Unità: byte

Media, minima, massima

DotNetGCPOHHeapSize

La dimensione dell'heap di oggetti bloccati (inclusa la frammentazione) osservata durante l'ultima raccolta dei rifiuti.

Nota

Questa metrica è disponibile solo dopo il completamento della prima Garbage Collection.

Unità: byte

Media, minima, massima

DotNetThreadCount

Il numero di thread del pool di thread attualmente esistenti.

Unità: nessuna

Media, Minima, Massima

DotNetThreadQueueLength

Il numero di elementi di lavoro attualmente in coda per essere elaborati dal pool di thread.

Unità: nessuna

Media, Minima, Massima

Disattivazione della raccolta di metriche di runtime

Le metriche di runtime vengono raccolte per impostazione predefinita per le applicazioni Java e Python abilitate per Application Signals. Se desideri disabilitare la raccolta di queste metriche, segui le istruzioni in questa sezione per il tuo ambiente.

Amazon EKS

Per disabilitare i parametri di runtime nelle applicazioni Amazon EKS a livello di applicazione, aggiungi la seguente variabile di ambiente alla specifica del tuo carico di lavoro.

env: - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED value: "false"

Per disabilitare i parametri di runtime nelle applicazioni Amazon EKS a livello di cluster, applica la configurazione alla configurazione avanzata del tuo componente aggiuntivo Amazon CloudWatch Observability EKS.

{ "agent": { "config": { "traces": { "traces_collected": { "application_signals": { } } }, "logs": { "metrics_collected": { "application_signals": { } } } }, "manager": { "autoInstrumentationConfiguration": { "java": { "runtime_metrics": { "enabled": false } }, "python": { "runtime_metrics": { "enabled": false } }, "dotnet": { "runtime_metrics": { "enabled": false } } } } } }

Amazon ECS

Per disabilitare i parametri di runtime nelle applicazioni Amazon ECS, aggiungi la variabile di ambiente OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false nella nuova revisione della definizione delle attività e ridistribuisci l'applicazione.

EC2

Per disabilitare i parametri di runtime nelle EC2 applicazioni Amazon, aggiungi la variabile di ambiente OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false prima dell'avvio dell'applicazione.

Kubernetes

Per disabilitare le metriche di runtime nelle applicazioni Kubernetes a livello di applicazione, aggiungi la seguente variabile di ambiente alle specifiche del carico di lavoro.

env: - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED value: "false"

Per disabilitare le metriche di runtime nelle applicazioni Kubernetes a livello di cluster, utilizza quanto segue:

helm upgrade ... \ --set-string manager.autoInstrumentationConfiguration.java.runtime_metrics.enabled=false \ --set-string manager.autoInstrumentationConfiguration.python.runtime_metrics.enabled=false \ -\-set-string manager.autoInstrumentationConfiguration.dotnet.runtime_metrics.enabled=false