Attivazione di CloudWatch Application Signals
Usa CloudWatch Application Signals per strumentare automaticamente le tue applicazioni su AWS in modo da monitorare le prestazioni delle applicazioni rispetto agli obiettivi aziendali. Application Signals offre una visione unificata e incentrata sulle applicazioni delle applicazioni Java, delle loro dipendenze e dei loro edge. Per ulteriori informazioni, consulta Application Signals.
CloudWatch Application Signals sfrutta l'agente CloudWatch per ricevere parametri e tracce dalle applicazioni dotate di strumentazione automatica, applicare facoltativamente regole per ridurre l'elevata cardinalità e quindi pubblicare la telemetria elaborata su CloudWatch. È possibile fornire una configurazione personalizzata all'agente CloudWatch specificamente per Application Signals utilizzando il file di configurazione dell'agente. Innanzitutto, la presenza di una sezione application_signals sotto la sezione metrics_collected all'interno della sezione logs del file di configurazione dell'agente specifica che l'agente CloudWatch riceverà i parametri dalle applicazioni dotate di strumentazione automatica. Analogamente, la presenza di una sezione application_signals sotto la sezione traces_collected all'interno della sezione traces del file di configurazione dell'agente specifica che l'agente CloudWatch è abilitato a ricevere le tracce dalle applicazioni dotate di strumentazione automatica. Inoltre, puoi facoltativamente inoltrate regole di configurazione personalizzate per ridurre la pubblicazione di telemetria ad alta cardinalità, come indicato in questa sezione.
-
Per i cluster Amazon EKS, quando installi il componente aggiuntivo Amazon CloudWatch Observability EKS, l'agente CloudWatch è abilitato per impostazione predefinita a ricevere sia parametri che tracce dalle applicazioni con strumentazione automatica. Se desideri facoltativamente inoltrare regole di configurazione personalizzate, puoi farlo inoltrando una configurazione dell'agente personalizzata al componente aggiuntivo Amazon EKS quando lo crei o lo aggiorni utilizzando una configurazione aggiuntiva, come indicato in (Facoltativo) Configurazione aggiuntiva.
-
Per RedHat for OpenShift on AWS (ROSA), quando installi l'operatore dell'agente CloudWatch utilizzando un grafico Helm, l'agente CloudWatch è abilitato per impostazione predefinita a ricevere sia metriche sia tracce dalle applicazioni con instrumentazione automatica. Se desideri facoltativamente inoltrare regole di configurazione personalizzate, puoi farlo inoltrando una configurazione dell'agente personalizzata al grafico Helm, come indicato in (Facoltativo) Configurazione aggiuntiva.
-
Per altre piattaforme supportate, tra cui Amazon EC2, è necessario avviare l'agente CloudWatch con una configurazione che abiliti Application Signals specificando le sezioni
application_signalse, facoltativamente, eventuali regole di configurazione personalizzate, come descritto più avanti in questa sezione.
Di seguito è riportata una panoramica dei campi del file di configurazione dell'agente CloudWatch correlati ai CloudWatch Application Signals.
-
logs-
metrics_collected: questo campo può contenere sezioni per specificare che l'agente deve raccogliere i log per abilitare casi d'uso come CloudWatch Application Signals e Approfondimenti sui container con osservabilità migliorata per Amazon EKS.Nota
In precedenza, questa sezione veniva utilizzata anche per specificare che l'agente deve raccogliere i log con formato del parametro incorporato. Queste impostazioni non sono più necessarie.
-
application_signals(Facoltativo) Specifica che desideri consentire a CloudWatch Application Signals di ricevere parametri dalle applicazioni con strumentazione automatica per facilitare CloudWatch Application Signals.-
rules(Facoltativo) Una serie di regole per selezionare parametri e tracce in modo condizionale e applicare azioni per gestire scenari ad alta cardinalità. Ogni regola può contenere i seguenti campi:-
rule_name(Facoltativo) Il nome della regola. -
selectors(Facoltativo) Una serie di corrispondenze tra le dimensioni di parametri e tracce. Ogni selettore deve fornire i campi riportati di seguito:-
dimensionObbligatorio seselectorsnon è vuoto. Questo specifica la dimensione delle metriche e delle tracce da utilizzare come filtro. -
matchObbligatorio seselectorsnon è vuoto. Un modello jolly utilizzato per i valori corrispondenti della dimensione specificata.
-
-
action(Facoltativo) L'operazione da applicare ai parametri e alle tracce che corrispondono ai selettori specificati.actiondeve essere una delle seguenti parole chiave.-
keepSpecifica di inviare solo i parametri e le tracce a CloudWatch se corrispondono aiselectors. -
dropSpecifica di eliminare il parametro e le tracce che corrispondono aiselectors. -
replaceSpecifica di sostituire le dimensioni dei parametri e delle tracce che corrispondono aiselectors. Le sostituzioni sono effettuate in base alla sezionereplacements.
-
-
replacementsObbligatorio seactionèreplace. Una serie di coppie di dimensioni e valori che verranno applicate a parametri e tracce che corrispondono aiselectorsspecificati quandoactionèreplace. Ogni sostituzione deve fornire i campi riportati di seguito:-
target_dimensionObbligatorio sereplacementsnon è vuoto. Specifica la dimensione che deve essere sostituita. -
valueObbligatorio sereplacementsnon è vuoto. Il valore con cui sostituire il valore originale ditarget_dimension.
-
-
-
limiter(Facoltativo) Utilizza questa sezione per limitare il numero di metriche e dimensioni che Application Signals invia a CloudWatch al fine di ottimizzare i costi.-
disabled(Facoltativo) Setrue, la funzionalità di limitazione delle metriche è disabilitata. Il valore predefinito èfalse. -
drop_threshold(Facoltativo) Il numero massimo di metriche distinte per servizio in un intervallo di rotazione che possono essere esportati da un agente CloudWatch. Il valore predefinito è 500. -
rotation_interval(Facoltativo) L'intervallo in base al quale il limitatore reimposta i record delle metriche per il conteggio delle distinzioni. Viene espresso sotto forma di una stringa con una sequenza di numeri e un suffisso di unità. Le frazioni sono supportate. I suffissi di unità supportati sonos,m,h,ms,usens.Il valore predefinito è
1hper un'ora. -
log_dropped_metrics(Facoltativo) Specifica se l'agente deve scrivere i log nei log dell'agente CloudWatch quando le metriche di Application Signals vengono scartate. Il valore predefinito èfalse.Nota
Per attivare questa registrazione, anche il parametro
debugnella sezioneagentdeve essere impostato sutrue.
-
-
-
-
-
traces-
traces_collected-
application_signalsFacoltativo. Deve essere specificato per consentire all'agente CloudWatch di ricevere tracce dalle applicazioni con strumentazione automatica per facilitare i CloudWatch Application Signals.
-
-
Nota
Anche se le regole application_signals personalizzate sono specificate nella sezione metrics_collected contenuta nella sezione logs, si applicano implicitamente anche alla sezione traces_collected. Lo stesso insieme di regole si applicherà sia ai parametri che alle tracce.
Quando sono presenti più regole con operazioni diverse, queste si applicano nella seguente sequenza: keep, poi drop, quindi replace.
Di seguito è riportato un esempio di un file di configurazione dell'agente di CloudWatch completo che applica regole personalizzate.
{ "logs": { "metrics_collected": { "application_signals": { "rules": [ { "rule_name": "keep01", "selectors": [ { "dimension": "Service", "match": "pet-clinic-frontend" }, { "dimension": "RemoteService", "match": "customers-service" } ], "action": "keep" }, { "rule_name": "drop01", "selectors": [ { "dimension": "Operation", "match": "GET /api/customer/owners/*" } ], "action": "drop" }, { "rule_name": "replace01", "selectors": [ { "dimension": "Operation", "match": "PUT /api/customer/owners/*/pets/*" }, { "dimension": "RemoteOperation", "match": "PUT /owners" } ], "replacements": [ { "target_dimension": "Operation", "value": "PUT /api/customer/owners/{ownerId}/pets{petId}" } ], "action": "replace" } ] } } }, "traces": { "traces_collected": { "application_signals": {} } } }
Per il file di configurazione di esempio precedente, le rules vengono elaborate come segue:
-
La regola
keep01assicura che tutte i parametri e le tracce con la dimensioneServicecomepet-clinic-frontende la dimensioneRemoteServicecomecustomers-servicevengano mantenute. -
Per i parametri e le tracce elaborati dopo l'applicazione di
keep01, la regoladrop01garantisce che i parametri e le tracce con la dimensioneOperationcomeGET /api/customer/owners/*vengano eliminati. -
Per i parametri e le tracce elaborati dopo l'applicazione di
drop01, la regolareplace01aggiorna i parametri e le tracce che hanno la dimensioneOperationcomePUT /api/customer/owners/*/pets/*e la dimensioneRemoteOperationcomePUT /ownersin modo che la dimensioneOperationvenga ora sostituita daPUT /api/customer/owners/{ownerId}/pets{petId}.
Di seguito è riportato un esempio completo di file di configurazione CloudWatch che gestisce la cardinalità in Application Signals modificando il limite delle metriche a 100, abilitando la registrazione delle metriche scartate e impostando l'intervallo di rotazione su due ore.
{ "logs": { "metrics_collected": { "application_signals": { "limiter": { "disabled": false, "drop_threshold": 100, "rotation_interval": "2h", "log_dropped_metrics": true } } }, "traces": { "traces_collected": { "application_signals": {} } } } }