Attivazione di CloudWatch Application Signals - Amazon CloudWatch

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_signals e, 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:

            • dimension Obbligatorio se selectors non è vuoto. Questo specifica la dimensione delle metriche e delle tracce da utilizzare come filtro.

            • match Obbligatorio se selectors non è 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. action deve essere una delle seguenti parole chiave.

            • keep Specifica di inviare solo i parametri e le tracce a CloudWatch se corrispondono ai selectors.

            • drop Specifica di eliminare il parametro e le tracce che corrispondono ai selectors.

            • replace Specifica di sostituire le dimensioni dei parametri e delle tracce che corrispondono ai selectors. Le sostituzioni sono effettuate in base alla sezione replacements.

          • replacements Obbligatorio se action è replace. Una serie di coppie di dimensioni e valori che verranno applicate a parametri e tracce che corrispondono ai selectors specificati quando action è replace. Ogni sostituzione deve fornire i campi riportati di seguito:

            • target_dimension Obbligatorio se replacements non è vuoto. Specifica la dimensione che deve essere sostituita.

            • value Obbligatorio se replacements non è vuoto. Il valore con cui sostituire il valore originale di target_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) Se true, 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 sono s, m, h, ms, us e ns.

            Il valore predefinito è 1h per 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 debug nella sezione agent deve essere impostato su true.

  • traces

    • traces_collected

      • application_signals Facoltativo. 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:

  1. La regola keep01 assicura che tutte i parametri e le tracce con la dimensione Service come pet-clinic-frontend e la dimensione RemoteService come customers-service vengano mantenute.

  2. Per i parametri e le tracce elaborati dopo l'applicazione di keep01, la regola drop01 garantisce che i parametri e le tracce con la dimensione Operation come GET /api/customer/owners/* vengano eliminati.

  3. Per i parametri e le tracce elaborati dopo l'applicazione di drop01, la regola replace01 aggiorna i parametri e le tracce che hanno la dimensione Operation come PUT /api/customer/owners/*/pets/* e la dimensione RemoteOperation come PUT /owners in modo che la dimensione Operation venga ora sostituita da PUT /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": {} } } } }