Aggiunta degli attributi personalizzati
CloudWatch Application Signals utilizza OpenTelemetry per instrumentare automaticamente le tue applicazioni e raccogliere span dalle librerie più diffuse in diversi linguaggi, come Java, Python e molti altri.
L'instrumentazione automatica acquisisce informazioni, come le query del database, le richieste HTTP, gli accessi alla cache e le chiamate ai servizi esterni, consentendo di risolvere i problemi di prestazioni delle applicazioni.
Puoi aggiungere un'instrumentazione personalizzata per arricchire gli span con dati specifici dell'azienda o altre informazioni che desideri acquisire. Questi dati possono essere registrati come attributo personalizzato o come evento di intervallo, fornendo approfondimenti personalizzati in base alle esigenze di risoluzione dei problemi.
Nota
Per informazioni sull'aggiunta di attributi personalizzati o eventi di intervallo in un linguaggio diverso, consulta Language APIs and SDKS
Attributi personalizzati
Puoi aggiungere attributi relativi all'azienda o qualsiasi altro attributo ai tuoi intervalli in tutti i linguaggi supportati da OpenTelemetry. Di seguito è riportato un frammento di codice Java che aggiunge un ID dell'ordine e i dettagli del cliente a un intervallo.
import io.opentelemetry.api.trace.Span; public class OrderProcessor { public void processOrder() { Span span = Span.current(); span.setAttribute("order.id", "123456"); span.setAttribute("customer.name", "John Doe"); span.setAttribute("customer.id", "4343dfdd"); // Your order processing logic here System.out.println("Order processed with custom attributes"); } }
Dopo che questi attributi sono stati aggiunti all'intervallo, diventano disponibili per la ricerca e l'analisi nell'editor visivo di Transaction Search.
Eventi di intervallo
Un evento di intervallo viene in genere utilizzato per indicare un punto temporale singolare e significativo durante una durata di un intervallo. Le eccezioni vengono acquisite automaticamente come eventi di span tramite l'instrumentazione automatica, ma puoi anche aggiungere eventi di business personalizzati, come lo stato del pagamento o l'abbandono del carrello. Per ulteriori informazioni, consulta Span events
Puoi incorporare eventi di intervallo nei tuoi intervalli in tutti i linguaggi supportati da CloudWatch Application Signals e OpenTelemetry. Di seguito è riportato un frammento di codice Java relativo all'aggiunta di un evento personalizzato a un intervallo.
import io.opentelemetry.api.trace.Span; public class OrderProcessor { public void bookOrder() { Span span = Span.current(); // Add a booking started event span.addEvent("booking started"); // Add a payment succeeded event or failed event span.addEvent("booking failed"); } }
Prerequisiti per l'agente CloudWatch
Quando si utilizza l'agente CloudWatch per emettere eventi di intervallo su X-Ray, è necessario attivare il flag `transit_spans_in_otlp_format` nella configurazione.
{ "traces": { ... "transit_spans_in_otlp_format": true ... } }
Dopo aver aggiunto questi eventi, diventano disponibili nell'editor visivo di Transaction Search.
Query di CloudWatch Logs
Puoi interrogare gli eventi di intervallo in CloudWatch Logs per visualizzare approfondimenti avanzati. I seguenti comandi di query di esempio mostrano come analizzare le eccezioni generate dall'applicazione:
fields jsonparse(@message) as js | unnest js.events into event | filter event.name = "exception" | display event.attributes.`exception.stacktrace`
fields jsonparse(@message) as js | unnest js.events into event | filter event.name = "exception" | stats count() by event.attributes.`exception.type`