Adicionar atributos personalizados - Amazon CloudWatch

Adicionar atributos personalizados

O CloudWatch Application Signals utiliza o OpenTelemetry para instrumentar automaticamente as aplicações e coletar extensões de bibliotecas populares em diferentes linguagens, como Java, Python e muito mais.

A instrumentação automática captura informações, como consultas ao banco de dados, solicitações HTTP, acessos ao cache e chamadas de serviços externos, o que permite solucionar problemas de performance da aplicação.

Você pode adicionar instrumentação personalizada para enriquecer as extensões com dados específicos da empresa ou outras informações que você deseje capturar. Esses dados podem ser registrados como um atributo personalizado ou um evento de extensão, fornecendo insights personalizados para suas necessidades de solução de problemas.

nota

Para obter informações sobre como adicionar atributos personalizados ou eventos de extensão em uma linguagem diferente, consulte APIs e SDKS de linguagem no site do OpenTelemetry.

Atributos personalizados

Você pode adicionar atributos relacionados a negócios ou quaisquer outros atributos às extensões em todas as linguagens com as quais o OpenTelemetry é compatível. Veja a seguir um trecho de código Java que adiciona um ID de pedido e detalhes do cliente a uma extensão.

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"); } }

Depois que esses atributos são adicionados à extensão, eles ficam disponíveis para pesquisa e análise no editor visual do Transaction Search.

Eventos de extensão

Um evento de extensão é normalmente usado para denotar um momento significativo e singular durante o período de uma extensão. As exceções são capturadas automaticamente como eventos de extensão por meio da instrumentação automática, mas você também pode adicionar eventos comerciais personalizados, como status de pagamento ou abandono do carrinho. Para obter mais informações, consulte Eventos de trechos no site do OpenTelemetry.

Você pode incorporar eventos de extensão às suas extensões em todas as linguagens com as quais o CloudWatch Application Signals e o OpenTelemetry são compatíveis. Veja a seguir um trecho de código Java para adicionar um evento personalizado a uma extensão.

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"); } }

Pré-requisitos do agente do CloudWatch

Ao usar o agente do CloudWatch para emitir eventos de extensão para o X-Ray, você deve ativar o sinalizador `transit_spans_in_otlp_format` na configuração.

{ "traces": { ... "transit_spans_in_otlp_format": true ... } }

Depois de adicionar esses eventos, eles ficam disponíveis no editor visual do Transaction Search.

Consultas do CloudWatch Logs

Você pode consultar eventos de extensão no CloudWatch Logs para visualizar insights avançados. Os exemplos de comandos de consulta a seguir mostram como analisar exceções lançadas pela aplicação:

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`