Use o ARMS SDK para obter dinamicamente o trace ID e as propriedades de rastreamento associadas diretamente no código da aplicação.
Uso
Para versões do agente 4.x e posteriores, recomendamos usar o OpenTelemetry Java SDK para instrumentação personalizada e obtenção do contexto de rastreamento:
Manually instrument applications with the OpenTelemetry Java SDK
Propagate context in intra-process asynchronous scenarios by using the OpenTelemetry Java SDK
Propagate context across processes by using the OpenTelemetry Java SDK
Evite usar o ARMS SDK para instrumentação personalizada ou para obter o contexto de rastreamento, a menos que seja impossível atualizar o agente para uma versão 4.x.
Pré-requisitos
Ative o Application Monitoring para sua aplicação no console do ARMS e inicie o agente na aplicação Java. Para mais informações, consulte Manually install an agent.
-
A aplicação deve incluir a dependência arms-sdk-1.7.3.jar.
<dependency> <groupId>com.alibaba.arms.apm</groupId> <artifactId>arms-sdk</artifactId> <version>1.7.3</version> </dependency>NotaCaso não consiga obter a dependência pelo arquivo pom.xml, baixe o arms-sdk-1.7.3.jar.
Obter o trace ID e o RPC ID
Use o código abaixo para obter o trace ID e o RPC ID.
Span span = Tracer.builder().getSpan(); // This does not create a new span.
String traceId = span.getTraceId();
String rpcId = span.getRpcId();
Propagar baggage personalizado
Ao adicionar baggage com um filtro do Spring Cloud Gateway, a propagação falha se você atualizar o agente para a versão 4.2.x e enable the spring-bean plug-in in the custom configuration. Para corrigir isso, desative o plug-in spring-bean ou faça o downgrade do agente para a versão 4.1.x ou anterior.
Para propagar baggage personalizado, adicione código para definir e recuperar os itens conforme descrito a seguir:
-
Adicione o baggage personalizado no código da aplicação.
Map<String, String> baggage = new HashMap<String, String>(); baggage.put("key-01", "value-01"); baggage.put("key-02", "value-02"); baggage.put("key-03", "value-03"); Span span = Tracer.builder().getSpan(); span.withBaggage(baggage); -
Recupere o baggage personalizado no código da aplicação.
Span span = Tracer.builder().getSpan(); Map<String, String> baggage = span.baggageItems(); Nas versões do agente 4.x e posteriores, ocorre apenas a propagação do baggage. O agente não adiciona automaticamente esse conteúdo às tags de cada span. Se precisar desses dados nas tags, set a custom tag for a span manualmente.
Definir tags personalizadas para um span
As tags aplicam-se exclusivamente ao span específico onde foram definidas e não são propagadas para outros spans. Siga estas etapas para definir e obter tags personalizadas:
-
Adicione tags personalizadas a um span no código da aplicação. É possível adicionar múltiplas tags.
Span span = Tracer.builder().getSpan(); // Add a tag to the Span. span.setTag("tag-key1", "tag-value1"); span.setTag("tag-key2", "tag-value2"); -
Obtenha as tags personalizadas de um span.
Span span = Tracer.builder().getSpan(); // Inspect the Span's tags. Map<String, String> tags = span.tags();
Consultar rastreamentos por baggage e tags personalizados
Use o baggage e as tags personalizados definidos em um span para consultar rastreamentos.
O baggage é propagado para serviços downstream e geralmente serve para propagar contexto de negócios. Evite configurar uma quantidade excessiva de itens de baggage.
Uma tag aplica-se apenas ao span atual. Defina várias tags para dados de negócios conforme necessário.
Faça login no console do ARMS. No painel de navegação à esquerda, selecione .
Na página , selecione a região desejada na parte superior. Em seguida, selecione um , insira o valor da tag personalizada no campo e clique em .
Na lista de rastreamentos, clique no Trace ID do rastreamento desejado.
-
Na página de detalhes de Traces, passe o mouse sobre a coluna para visualizar as tags do span atual.
Por exemplo, as tags personalizadas
tag-userid(com o valor123456789) etag-bu(com o valortaobao) foram adicionadas às tags do span. Nas versões do agente 4.x e posteriores, caso precise gravar o conteúdo do baggage em um span, primeiro recupere todos os itens de baggage conforme descrito em Propagate custom baggage. Depois, grave-os no span usando o método descrito em Set custom tags for a span.