Escolar Documentos
Profissional Documentos
Cultura Documentos
PERSONALIZADA
DO JAVA COM A
BIBLIOTECA
DATADOG
ABRIL 2023
Versão do Documento: 01
Adicionando tags
Adicione tags personalizadas aos seus spans para personalizar sua observabilidade dentro
do Datadog. As tags de spans são aplicadas aos seus traces de entrada, permitindo que
você correlacione o comportamento observado com informações de nível de código, como o
nível do comerciante, o valor do checkout ou o ID do usuário.
import org.apache.cxf.transport.servlet.AbstractHTTPServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import io.opentracing.Tracer;
import io.opentracing.util.GlobalTracer;
@WebServlet
class ShoppingCartServlet extends AbstractHttpServlet {
@Override
void doGet(HttpServletRequest req, HttpServletResponse resp) {
// Get the active span
final Span span = GlobalTracer.get().activeSpan();
if (span != null) {
// customer_id -> 254889
// customer_tier -> platinum
// cart_value -> 867
span.setTag("customer.id", customer_id);
span.setTag("customer.tier", customer_tier);
span.setTag("cart.value", cart_value);
}
// [...]
}
...
final Span span = GlobalTracer.get().activeSpan();
if (span != null) {
span.setTag(Tags.ERROR, true);
span.setTag(DDTags.ERROR_MSG, ex.getMessage());
span.setTag(DDTags.ERROR_TYPE, ex.getClass().getName());
Se você não estiver criando manualmente um span, ainda poderá acessar o root span por
meio do GlobalTracer:
import io.opentracing.Span;
import io.opentracing.util.GlobalTracer;
import datadog.trace.api.interceptor.MutableSpan;
...
Adicionando spans
Se você não estiver usando uma instrumentação de framework suportada, ou se desejar
uma profundidade adicional nas traces de sua aplicação, poderá adicionar instrumentação
personalizada ao seu código para obter gráficos de chamas completos ou para medir os
tempos de execução de trechos de código.
Se a modificação do código da aplicação não for possível, use a variável de ambiente
dd.trace.methods para detalhar esses métodos.
Se você tiver anotações @Trace existentes ou semelhantes, ou preferir usar anotações para
completar quaisquer traces incompletas dentro do Datadog, use Anotações de Trace.
Anotações de trace
Adicione @Trace a métodos para que sejam rastreados quando executados com dd-java-
agent.jar. Se o agente não estiver anexado, esta anotação não terá efeito na sua aplicação.
A anotação de Trace do Datadog é fornecida pela dependência dd-trace-api.
As anotações @Trace têm o nome de operação padrão trace.annotation e o nome de
recurso do método rastreado. Estes podem ser definidos como argumentos da anotação
@Trace para refletir melhor o que está sendo instrumentado. Estes são os únicos
argumentos possíveis que podem ser definidos para a anotação @Trace.
import datadog.trace.api.Trace;
class SomeClass {
void someMethod() {
Tracer tracer = GlobalTracer.get();
} catch (Exception e) {
// Set error on span
} finally {
// Close span in a finally block
span.finish();
}
}
}
Estendendo tracers
As bibliotecas de rastreamento são projetadas para serem extensíveis. Os clientes podem
considerar escrever um pós-processador personalizado chamado TraceInterceptor para
interceptar Spans e ajustá-los ou descartá-los conforme necessário (por exemplo, com base
em expressões regulares). O seguinte exemplo implementa dois interceptadores para
alcançar lógica de pós-processamento complexa.
import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
INSTRUMENTAÇÃO PERSONALIZADA DO JAVA COM A
BIBLIOTECA DATADOG
ABRIL 2023
CONFIDENCIALERRO! USE A GUIA PÁGINA INICIAL PARA
APLICAR TITLE OF THE DOCUMENT AO TEXTO QUE DEVERÁ
APARECER AQUI.TITLE OF THE DOCUMENTERRO! USE A GUIA
PÁGINA INICIAL PARA APLICAR TITLE OF THE DOCUMENT AO
TEXTO QUE DEVERÁ APARECER AQUI.TITLE OF THE DOCUMENT
import datadog.trace.api.interceptor.TraceInterceptor;
import datadog.trace.api.interceptor.MutableSpan;
return filteredTrace;
}
@Override
public int priority() {
// some high unique number so this interceptor is last
return 100;
}
}
return trace;
}
@Override
public int priority() {
return 20; // some unique number
}
}
Filtragem de recursos
Os rastreamentos podem ser excluídos com base no nome do recurso, para remover o
tráfego sintético, como verificações de integridade, do relatório de rastreamentos para a
INSTRUMENTAÇÃO PERSONALIZADA DO JAVA COM A
BIBLIOTECA DATADOG
ABRIL 2023
CONFIDENCIALERRO! USE A GUIA PÁGINA INICIAL PARA
APLICAR TITLE OF THE DOCUMENT AO TEXTO QUE DEVERÁ
APARECER AQUI.TITLE OF THE DOCUMENTERRO! USE A GUIA
PÁGINA INICIAL PARA APLICAR TITLE OF THE DOCUMENT AO
TEXTO QUE DEVERÁ APARECER AQUI.TITLE OF THE DOCUMENT
Datadog. Essas e outras configurações de segurança e ajuste fino podem ser encontradas
na página de Segurança ou em Ignorando Recursos Indesejados.