Adición de atributos personalizados
CloudWatch Application Signals utiliza OpenTelemetry para instrumentar automáticamente sus aplicaciones y recopilar unidades de seguimiento de bibliotecas populares en diferentes lenguajes, como Java, Python y más.
La instrumentación automática captura información, como las consultas a bases de datos, las solicitudes HTTP, los accesos a la caché y las llamadas de servicios externos, lo que le permite solucionar problemas de rendimiento de las aplicaciones.
Puede agregar instrumentación personalizada para enriquecer las unidades de seguimiento con datos específicos de la empresa u otra información que desee capturar. Estos datos se pueden registrar como un atributo personalizado o un evento de unidades de seguimiento, lo que proporciona información adaptada a sus necesidades de solución de problemas.
nota
Para obtener información sobre cómo agregar atributos personalizados o eventos de unidades de seguimiento en otro idioma, consulte Language APIs and SDKS
Custom attributes (Atributos personalizados)
Puede agregar atributos relacionados con la empresa o cualquier otro atributo a las unidades de seguimiento en todos los lenguajes compatibles con OpenTelemetry. El siguiente es un fragmento de código de Java que agrega un identificador de pedido y los detalles del cliente a una unidad de seguimiento.
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"); } }
Una vez que estos atributos se hayan agregado a la unidad de seguimiento, estarán disponibles para su búsqueda y análisis en el editor visual de Transaction Search.
Eventos de unidades de seguimiento
Un evento de unidades de seguimiento se utiliza normalmente para indicar un punto significativo y singular en el tiempo durante la duración de una unidad de seguimiento. Las excepciones se capturan automáticamente como eventos de unidades de seguimiento mediante la instrumentación automática, pero también puede agregar eventos empresariales personalizados, como el estado del pago o el abandono del carrito. Para obtener más información, consulte Span events
Puede incrustar eventos de unidades de seguimiento en sus unidades de seguimiento en todos los lenguajes compatibles con CloudWatch Application Signals y OpenTelemetry. El siguiente es un fragmento de código de Java para agregar un evento personalizado a una unidad de seguimiento.
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"); } }
Requisitos previos del agente de CloudWatch
Cuando utilice el agente CloudWatch para emitir eventos de unidades de seguimiento a X-Ray, debe activar la marca `transit_spans_in_otlp_format`
en la configuración.
{ "traces": { ... "transit_spans_in_otlp_format": true ... } }
Tras agregar estos eventos, estarán disponibles en el editor visual de Transaction Search.
Consultas de Registros de CloudWatch
Puede consultar los eventos de unidades de seguimiento en Registros de CloudWatch para ver información avanzada. Los siguientes ejemplos de comandos de consulta muestran cómo analizar las excepciones generadas por la aplicación:
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`