View a markdown version of this page

Monitora gli eventi di servizio - 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à.

Monitora gli eventi di servizio

Service Events fornisce un'osservabilità approfondita automatizzata per i servizi monitorati con Application Signals. CloudWatch Acquisisce metriche di errore, dati sulle prestazioni a livello di funzione, istantanee degli incidenti (quando le richieste superano le soglie di latenza o generano eccezioni) ed eventi di distribuzione, senza ulteriori modifiche al codice.

Come funzionano gli eventi di servizio

Service Events raccoglie i seguenti tipi di segnali dai servizi strumentati:

  • Metriche di Per-exception-type errore: conteggi e tassi di errore per ogni operazione, che consentono di identificare quali sono le eccezioni più frequenti e di tendenza.

  • Function-call metriche: numero di richiami, durata e tassi di errore per le singole funzioni all'interno del codice dell'applicazione.

  • Istantanee degli incidenti: acquisizioni dettagliate attivate quando una richiesta supera una soglia di latenza o genera un'eccezione, tra cui tracce dello stack, alberi delle chiamate, dettagli del chiamante e contesto operativo.

  • Eventi di distribuzione: indicatori emessi all'avvio dell'applicazione e ogni 24 ore che correlano le distribuzioni del codice con le modifiche nel comportamento del servizio. L'applicazione emette automaticamente gli eventi di distribuzione. La fornitura di metadati di distribuzione (git commit, ID di distribuzione) arricchisce questi eventi con un contesto aggiuntivo.

Service Events viene abilitato automaticamente quando abiliti Application Signals per il tuo servizio. CloudWatch Le metriche degli errori e il monitoraggio delle eccezioni sono attivi immediatamente. Function-call le metriche richiedono una configurazione aggiuntiva: è necessario configurare i pacchetti in base allo strumento prima di raccogliere i dati sulle chiamate di funzione (vedere). Abilita la strumentazione funzionale Gli eventi di servizio possono essere disabilitati impostando. OTEL_AWS_SERVICE_EVENTS_ENABLED=false Flussi di dati dall'ADOT SDK all' CloudWatch agente. L'agente pubblica gli eventi CloudWatch nei log (/aws/service-events/service-namegruppi di log) e nelle metriche. CloudWatch

Linguaggi supportati: Java, Python e. Node.js

Nota

Service Events è disabilitato automaticamente negli ambienti Lambda.

Archiviazione di dati

Service Events memorizza i dati nei CloudWatch log. CloudWatch pubblica i dati degli eventi di servizio in un gruppo di log con il prefisso/aws/application-signals/service-name, dove service-name è il valore della variabile di OTEL_SERVICE_NAME ambiente. Viene creato un gruppo di log per servizio.

L'inserimento e l'archiviazione dei log vengono fatturati alle tariffe standard CloudWatch dei log.

Visualizza gli errori nella console

Nella CloudWatch console, vai su Application Signals, scegli il tuo servizio, quindi scegli la scheda Errori. Questa scheda mostra le metriche delle eccezioni per il tuo servizio.

La scheda mostra:

  • Un grafico del conteggio delle eccezioni che mostra le tendenze degli errori nel tempo. Usalo per rilevare quali tipi di eccezioni sono cambiati di frequenza di recente.

  • Una tabella che elenca ogni tipo di eccezione, l'operazione in cui si è verificata, il numero di occorrenze e la modifica rispetto al periodo precedente.

Seleziona un'eccezione per approfondire i dettagli, tra cui la traccia dello stack, il messaggio di eccezione e un collegamento alla traccia associata.

Gli errori sono raggruppati per operazione, tipo di eccezione e frame principali dello stack. Viene mostrato solo il rappresentante più recente di ciascun gruppo.

Nota

Per visualizzare i dati sugli errori, è necessario che nel tuo account sia presente almeno un gruppo di /aws/service-events/service-name log. Se non esistono gruppi di log, nella scheda Errori viene visualizzata una richiesta di onboarding.

Visualizza gli eventi di servizio nei registri

I dati degli eventi di servizio vengono archiviati nei CloudWatch registri in gruppi di log con il prefisso/aws/service-events/service-name. Puoi interrogare questi dati direttamente utilizzando CloudWatch Logs Insights per creare visualizzazioni personalizzate, creare dashboard o indagare su incidenti specifici.

Per interrogare gli eventi del servizio:

  1. Apri la CloudWatch console e vai a Logs Insights.

  2. Seleziona il gruppo di log /aws/service-events/service-name per il tuo servizio.

  3. Inserisci una query per filtrare e analizzare i dati degli eventi del servizio.

Eventi di servizio nel server MCP (Model Context Protocol) di CloudWatch Application Signals

I dati sugli eventi di servizio sono accessibili tramite il server CloudWatch Application Signals MCP (Model Context Protocol), che consente agli assistenti e agli agenti di codifica AI di interrogare direttamente il comportamento di runtime del servizio.

Risoluzione dei problemi

  • Correla automaticamente gli errori nel codice con le istantanee degli incidenti di produzione, comprese le tracce complete dello stack e gli endpoint interessati.

  • Utilizza il contesto degli incidenti (tipi di eccezione, percorsi di chiamata, ID di tracciamento) per suggerire correzioni mirate senza dover navigare manualmente nelle dashboard.

  • Recupera gli eventi di distribuzione per determinare se una versione recente ha introdotto una regressione.

Miglioramento delle prestazioni

  • Interroga i dati sulle prestazioni a livello di funzione per identificare i colli di bottiglia nell'analisi dei problemi di latenza.

  • Confronta la durata delle chiamate di funzione tra le distribuzioni per individuare le regressioni delle prestazioni.

Per le istruzioni di configurazione e utilizzo, consulta il server MCP Application Signals sul sito Web. GitHub

Configurare gli eventi di servizio

Prerequisiti

Per utilizzare gli eventi di servizio, assicurati di disporre delle versioni minime richieste dei seguenti componenti:

  1. Aggiorna l'SDK ADOT: aggiorna l'SDK per la strumentazione AWS Distro for OpenTelemetry (ADOT) alla versione più recente per la tua lingua (Java, Python o). Node.js

  2. Aggiorna il componente aggiuntivo Amazon EKS (se applicabile): se utilizzi il componente aggiuntivo CloudWatch Observability Amazon EKS per strumentare le tue applicazioni, esegui l'aggiornamento alla versione più recente del componente aggiuntivo.

  3. Aggiorna l' CloudWatch agente: aggiorna alla versione 1.300069.0 o successiva dell'agente. CloudWatch

Se usi Amazon EKS, consulta le istruzioni Abilitazione delle applicazioni sui cluster Amazon EKS per la configurazione del componente aggiuntivo.

Funzionalità abilitate per impostazione predefinita

Se si utilizzano CloudWatch Application Signals, i seguenti segnali di eventi di servizio sono abilitati per impostazione predefinita senza necessità di ulteriori configurazioni:

  • Istantanee degli incidenti (attivate in caso di eccezioni e violazioni della soglia di latenza)

  • Metriche degli errori (conteggio degli errori per tipo di eccezione per operazione)

  • Eventi di distribuzione (sempre emessi; arricchiti quando si forniscono i metadati di distribuzione)

  • Strumentazione funzionale (abilitata per impostazione predefinita, ma non produce metriche finché non si configurano i pacchetti in strumento)

Le seguenti funzionalità sono opzionali e richiedono l'impostazione di variabili di ambiente per produrre dati:

  • Function-level metriche (richiede la configurazione) OTEL_AWS_SERVICE_EVENTS_PACKAGES_INCLUDE

  • Filtraggio personalizzato degli endpoint

  • Per-endpoint soglie di latenza

Impostazioni generali

Variabile di ambiente Predefinita Description
OTEL_AWS_SERVICE_EVENTS_ENABLED Segue i segnali dell'applicazione CloudWatch Attiva l'opzione Eventi di servizio. Service Events viene abilitato automaticamente quando CloudWatch Application Signals è abilitato. Impostato su false per disabilitare esplicitamente.
OTEL_AWS_SERVICE_EVENTS_SAMPLING_MODE always Controlla la strategia di campionamento dei dati delle chiamate di funzione. Valori: always (registra tutte le chiamate di funzione), auto (lascia che l'SDK decida in base al carico), never (disabilita la registrazione delle chiamate di funzione). Si applica solo quando i pacchetti di strumentazione funzionale sono configurati.

Abilita la strumentazione funzionale

La strumentazione delle funzioni è abilitata per impostazione predefinita, ma non produce metriche finché non si configura quali pacchetti utilizzare. Fornisci un elenco dei pacchetti consentiti per iniziare a raccogliere la telemetria per funzione:

Variabile di ambiente Predefinita Description
OTEL_AWS_SERVICE_EVENTS_FUNCTION_INSTRUMENT_ENABLED true Abilita o disabilita la strumentazione a livello di funzione. Imposta su per disabilitare completamente. false
OTEL_AWS_SERVICE_EVENTS_PACKAGES_INCLUDE Nessuno (obbligatorio per le metriche) Comma-separated elenco dei prefissi dei pacchetti per lo strumento. Non è necessaria alcuna jolly. Ad esempio: Java usacom.myapp, Python usamyapp, Node.js usa. src/myapp
OTEL_AWS_SERVICE_EVENTS_PACKAGES_EXCLUDE Nessuno Comma-separated elenco di sottopacchetti da escludere dalla strumentazione. L'esclusione ha sempre la precedenza su include. Ad esempio, includi com.myapp ed escludi com.myapp.models per definire il codice dell'applicazione ma salta le classi del modello di dati.

Filtraggio degli endpoint

Il filtro degli endpoint controlla quali endpoint generano le metriche di errore degli endpoint e le istantanee degli incidenti. Queste impostazioni non influiscono sulla strumentazione delle funzioni.

Variabile di ambiente Predefinita Description
OTEL_AWS_SERVICE_EVENTS_ENDPOINT_INCLUDE_PATTERNS Tutti gli endpoint Comma-separated schemi globali degli endpoint da includere. Abbinato a. METHOD /route
OTEL_AWS_SERVICE_EVENTS_ENDPOINT_EXCLUDE_PATTERNS Nessuno Comma-separated modelli globali di endpoint da escludere. L'esclusione ha la precedenza quando un endpoint corrisponde a entrambi.

Soglie di latenza

Utilizzate le seguenti variabili di ambiente per configurare le soglie di latenza per i trigger delle istantanee degli incidenti.

Variabile di ambiente Predefinita Description
OTEL_AWS_SERVICE_EVENTS_INCIDENT_SNAPSHOT_DURATION_THRESHOLD_MS 5000 Soglia di latenza globale in millisecondi. Le richieste che superano questa durata attivano un'istantanea dell'incidente.
OTEL_AWS_SERVICE_EVENTS_LATENCY_THRESHOLDS Nessuno Per-endpoint soglie di latenza che sostituiscono l'impostazione predefinita globale. Formato: METHOD /route:ms (ad esempio,). GET /health:200,POST /checkout:8000

Limitazione della velocità

Utilizza le seguenti variabili di ambiente per controllare la velocità con cui i dati sugli eventi di servizio vengono raccolti e segnalati.

Variabile di ambiente Predefinita Description
OTEL_AWS_SERVICE_EVENTS_INCIDENT_SNAPSHOT_MAX_PER_MINUTE 100 Numero massimo di istantanee degli incidenti acquisite al minuto.
OTEL_AWS_SERVICE_EVENTS_INCIDENT_SNAPSHOT_MAX_SAME_ERROR 1 Numero massimo di istantanee per lo stesso errore per finestra di acquisizione.

Configurare gli eventi di distribuzione

Gli eventi di distribuzione vengono sempre emessi all'avvio dell'applicazione e ogni 24 ore. La fornitura di metadati di distribuzione arricchisce questi eventi in modo da poter correlare incidenti e modifiche delle prestazioni con distribuzioni di codice specifiche.

Imposta le seguenti variabili di ambiente nei contenitori o nei processi dell'applicazione per fornire i metadati di distribuzione:

Variabile di ambiente Description
OTEL_AWS_SERVICE_EVENTS_GIT_COMMIT_SHA Git esegue il commit SHA del codice distribuito.
OTEL_AWS_SERVICE_EVENTS_GIT_REPO_URL URL del repository Git.
OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_ID Identificatore univoco per la distribuzione (ad esempio, un ID di esecuzione della CI/CD pipeline).
OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_TIMESTAMP Timestamp ISO 8601 della distribuzione.
OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_URL URL della build di distribuzione o dell'esecuzione della pipeline.

Configura gli eventi di distribuzione con Actions GitHub

Nel flusso di lavoro di GitHub Actions, utilizza le variabili di ambiente integrate per popolare i metadati di distribuzione. Aggiungi quanto segue alla fase di distribuzione o all'ambiente del contenitore:

env: OTEL_AWS_SERVICE_EVENTS_GIT_COMMIT_SHA: ${{ github.sha }} OTEL_AWS_SERVICE_EVENTS_GIT_REPO_URL: ${{ github.server_url }}/${{ github.repository }} OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_ID: ${{ github.run_id }} OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_TIMESTAMP: $(date -u +%Y-%m-%dT%H:%M:%SZ) OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

Se distribuisci immagini di container, passa questi valori come variabili di ambiente nella definizione dell'attività o nelle specifiche del pod. Puoi inserirli nell'immagine in fase di compilazione o inserirli in fase di distribuzione tramite la configurazione di distribuzione.

Configura gli eventi di distribuzione con GitLab CI/CD

Nella GitLab CI/CD pipeline, utilizza le CI/CD variabili predefinite per popolare i metadati di distribuzione. Aggiungi quanto segue al tuo processo di distribuzione:

deploy: variables: OTEL_AWS_SERVICE_EVENTS_GIT_COMMIT_SHA: $CI_COMMIT_SHA OTEL_AWS_SERVICE_EVENTS_GIT_REPO_URL: $CI_PROJECT_URL OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_ID: $CI_PIPELINE_ID OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_TIMESTAMP: $(date -u +%Y-%m-%dT%H:%M:%SZ) OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_URL: $CI_PIPELINE_URL

Passa queste variabili ai contenitori delle applicazioni in fase di distribuzione tramite la tua piattaforma di orchestrazione dei container (ad esempio, come variabili di ambiente nella definizione delle attività di Amazon ECS o nel manifesto di distribuzione Kubernetes).