Metriche raccolte da Application Signals
Application Signals raccoglie sia le metriche standard delle applicazioni sia le metriche di runtime dalle applicazioni per le quali è abilitata.
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 rimozione di oggetti inutili (garbage collection). Application Signals visualizza le metriche di runtime nel contesto dei servizi che hai abilitato 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 in un servizio sono correlati ai picchi di una metrica di runtime.
Argomenti
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. Tali parametri sono inviati a CloudWatch nello spazio dei nomi di ApplicationSignals.
| Parametro | Descrizione |
|---|---|
|
|
Il ritardo prima dell'inizio del trasferimento dei dati dopo la richiesta. Unità: millisecondi |
|
|
Un conteggio degli errori lato server HTTP 5XX e degli errori di stato di intervallo di OpenTelemetry. Unità: nessuna |
|
|
Un numero di errori HTTP 4XX lato client. Questi sono considerati errori di richiesta non causati da problemi del servizio. Pertanto, il parametro Unità: nessuna |
La metrica Availability visualizzata nei pannelli di controllo di Application Signals viene calcolata come (1 - Faults/totale)*100. Le risposte totali includono tutte le risposte e sono ricavate 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 |
|---|---|
|
|
Il nome del servizio . Il valore massimo è 255 caratteri. |
|
|
Il nome dell'operazione API o altra attività. Il valore massimo è 1.024 caratteri. È possibile impostare obiettivi del livello di servizio per le operazioni solo se il nome dell'operazione è composto da un massimo di 194 caratteri. |
|
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 facoltativo per Il valore massimo è 259 caratteri. |
Quando visualizzi queste metriche nella console CloudWatch, 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
Per le metriche di dipendenza vengono raccolte le dimensioni seguenti:
| Dimensione | Descrizione |
|---|---|
|
|
Il nome del servizio . Il valore massimo è 255 caratteri. |
|
|
Il nome dell'operazione API o di un'altra operazione. Il valore massimo è 1024 caratteri. |
|
|
Il nome del servizio remoto invocato. Il valore massimo è 255 caratteri. |
|
|
Il nome dell'operazione API invocata. Il valore massimo è 1024 caratteri. |
|
|
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 facoltativo per Il valore massimo è 259 caratteri. |
|
|
Il nome dell'ambiente in cui i servizi della dipendenza sono in esecuzione. Il parametro Il valore massimo è 259 caratteri. |
|
|
Il nome della risorsa invocata da una chiamata remota. Il parametro Il valore massimo è 1024 caratteri. |
|
|
Il tipo di risorsa invocata da una chiamata remota. Obbligatorio solo se Il valore massimo è 1024 caratteri. |
Quando visualizzi queste metriche nella console CloudWatch, 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 l'SDK AWS Distro per OpenTelemetry per raccogliere automaticamente metriche compatibili con OpenTelemetry dalle applicazioni Java e Python. Affinché le metriche di runtime possano essere raccolte, è necessario soddisfare i seguenti prerequisiti:
La versione dell'agente CloudWatch deve essere
1.300049.1o successiva.Se utilizzi il componente aggiuntivo Amazon CloudWatch Observability EKS, la versione deve essere
2.30-eksbuild.1o successiva. Se aggiorni il componente aggiuntivo, devi riavviare le applicazioni.Per le applicazioni Java, è necessario che sia in esecuzione
1.32.5o una versione successiva dell'SDK AWS Distro per OpenTelemetry per Java.Per le applicazioni Python, è necessario che sia in esecuzione
0.7.0o una versione successiva dell'SDK AWS Distro per OpenTelemetry per Python.Per le applicazioni .Net, è necessario che sia in esecuzione
1.6.0o una versione successiva dell'SDK AWS Distro per OpenTelemetry per .Net.
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 prezzi di CloudWatch, consulta Prezzi di Amazon CloudWatch
Nota
Problemi noti
È noto che la raccolta delle metriche di runtime nella versione dell'SDK Java v1.32.5 non funziona con le applicazioni che utilizzano JBoss Wildfly. Questo problema si estende al componente aggiuntivo Amazon CloudWatch Observability EKS e riguarda le versioni da 2.3.0-eksbuild.1 a 2.6.0-eksbuild.1. Questo problema è risolto nell'SDK per Java versione v1.32.6 e nel componente aggiuntivo Amazon CloudWatch Observability EKS versione v3.0.0-eksbuild.1.
Se riscontri problemi, esegui l'upgrade della versione dell'SDK per Java o disabilita la raccolta delle metriche di runtime aggiungendo la variabile di ambiente OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false all'applicazione.
Metriche di runtime di Java
Application Signals raccoglie le seguenti metriche JVM dalle applicazioni Java abilitate per Application Signals. Tutte le metriche di runtime vengono inviate a CloudWatch nel namespace ApplicationSignals e raccolte con l'insieme di dimensioni Service e Environment.
| Nome parametro | Descrizione | Statistiche significative |
|---|---|---|
|
|
Metrica aggregata per la durata delle operazioni di rimozione di oggetti inutili di JVM. Unità: millisecondi |
Somma, Media, Minimo, Massimo |
|
|
Metrica aggregata per la durata delle operazioni di rimozione di oggetti inutili di JVM di vecchia generazione. Disponibile solo in G1. Unità: millisecondi |
Somma, Media, Minimo, Massimo |
|
|
Metrica aggregata per la durata delle operazioni di rimozione di oggetti inutili di JVM di nuova generazione. Disponibile solo in G1. Unità: millisecondi |
Somma, Media, Minimo, Massimo |
|
|
Metrica aggregata per il numero delle operazioni di rimozione di oggetti inutili di JVM. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Metrica aggregata per il numero delle operazioni di rimozione di oggetti inutili di JVM di vecchia generazione. Disponibile solo in G1. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Metrica aggregata per il numero delle operazioni di rimozione di oggetti inutili di JVM di nuova generazione. Disponibile solo in G1. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
La quantità di heap di memoria utilizzata. Unità: byte |
Media, Minimo, Massimo |
|
|
Quantità di memoria utilizzata, misurata dopo l'evento di rimozione di oggetti inutili più recente su questo pool. Unità: byte |
Media, Minimo, Massimo |
|
|
La quantità di memoria utilizzata dalla vecchia generazione. Unità: byte |
Media, Minimo, Massimo |
|
|
La quantità di memoria heap utilizzata dal survivor space. Unità: byte |
Media, Minimo, Massimo |
|
|
La quantità di memoria utilizzata dall'eden space. Unità: byte |
Media, Minimo, Massimo |
|
|
La quantità di memoria non heap utilizzata. Unità: byte |
Media, Minimo, Massimo |
|
|
Il numero di thread in esecuzione, inclusi i thread daemon e non daemon. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Il numero di classi caricate. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Il tempo di CPU utilizzato dal processo, come riportato dalla JVM. Unità: nessuna (nanosecondi) |
Somma, Media, Minimo, Massimo |
|
|
La CPU recente utilizzata dal processo, come riportato dalla JVM. Unità: nessuna |
Media, Minimo, Massimo |
Metriche di runtime di Python
Application Signals raccoglie le seguenti metriche dalle applicazioni Python abilitate per Application Signals. Tutte le metriche di runtime vengono inviate a CloudWatch nel namespace ApplicationSignals e raccolte con l'insieme di dimensioni Service e Environment.
| Nome parametro | Descrizione | Statistiche significative |
|---|---|---|
|
|
Il numero totale di oggetti attualmente tracciati. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Il numero di oggetti attualmente tracciati nella Generazione 0. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Il numero di oggetti attualmente tracciati nella Generazione 1. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Il numero di oggetti attualmente tracciati nella Generazione 2. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
La quantità totale di memoria virtuale utilizzata dal processo. Unità: byte |
Media, Minimo, Massimo |
|
|
La quantità totale di memoria fisica non-swap utilizzata dal processo. Unità: byte |
Media, Minimo, Massimo |
|
|
Il numero di thread attualmente utilizzati dal proccesso. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Il tempo di CPU utilizzato dal processo. Unità: secondi |
Somma, Media, Minimo, Massimo |
|
|
L'utilizzo della CPU del processo. Unità: nessuna |
Media, Minimo, Massimo |
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 a CloudWatch nel namespace ApplicationSignals e raccolte con l'insieme di dimensioni Service e Environment.
| Nome parametro | Descrizione | Statistiche significative |
|---|---|---|
|
|
Il numero totale di metriche di rimozione di oggetti inutili tracciate nella Generazione 0 dall'inizio del processo. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Il numero totale di metriche di rimozione di oggetti inutili tracciate nella Generazione 1 dall'inizio del processo. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Il numero totale di metriche di rimozione di oggetti inutili tracciate nella Generazione 2 dall'inizio del processo. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
Il tempo totale di pausa nella rimozione di oggetti inutili dall'inizio del processo. Unità: nessuna |
Somma, Media, Minimo, Massimo |
|
|
La dimensione dell'heap (inclusa la frammentazione) della Generazione 0 osservata durante l'ultima rimozione di oggetti inutili. NotaQuesta metrica è disponibile solo al termine della rimozione di oggetti inutili. Unità: byte |
Media, Minimo, Massimo |
|
|
La dimensione dell'heap (inclusa la frammentazione) della Generazione 1 osservata durante l'ultima rimozione di oggetti inutili. NotaQuesta metrica è disponibile solo al termine della rimozione di oggetti inutili. Unità: byte |
Media, Minimo, Massimo |
|
|
La dimensione dell'heap (inclusa la frammentazione) della Generazione 2 osservata durante l'ultima rimozione di oggetti inutili. NotaQuesta metrica è disponibile solo al termine della rimozione di oggetti inutili. Unità: byte |
Media, Minimo, Massimo |
|
|
La dimensione dell'heap di oggetti di grandi dimensioni (inclusa la frammentazione) osservata durante l'ultima rimozione di oggetti inutili. NotaQuesta metrica è disponibile solo al termine della rimozione di oggetti inutili. Unità: byte |
Media, Minimo, Massimo |
|
|
La dimensione dell'heap di oggetti fissati (inclusa la frammentazione) osservata durante l'ultima rimozione di oggetti inutili. NotaQuesta metrica è disponibile solo al termine della rimozione di oggetti inutili. Unità: byte |
Media, Minimo, Massimo |
|
|
Il numero di thread del pool di thread attualmente esistenti. Unità: nessuna |
Media, Minimo, Massimo |
|
|
Il numero di elementi di lavoro attualmente in coda per essere elaborati dal pool di thread. Unità: nessuna |
Media, Minimo, Massimo |
Disabilitazione 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 relative al tuo ambiente riportate in questa sezione.
Amazon EKS
Per disabilitare le metriche 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 le metriche di runtime nelle applicazioni Amazon EKS a livello di cluster, applica la configurazione alla configurazione avanzata del 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 le metriche 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 implementa nuovamente l'applicazione.
EC2
Per disabilitare le metriche di runtime nelle applicazioni Amazon EC2, 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 alla specifica del tuo 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