As configurações de distributed tracing controlam como o agente propaga o contexto do trace entre serviços, configura a coleta de eventos de span e habilita o Infinite Tracing.
distributed tracing permite ver o caminho que uma solicitação percorre ao percorrer sistemas distribuídos. Está ativado por padrão para o agente Java versão 7.4.0 ou superior.
No arquivo de configuração, você pode substituir isso manualmente na seção distributed_tracing . Você também pode substituir isso usando uma propriedade de sistema prefixada (newrelic.config.distributed_tracing) ou uma variável de ambiente (NEW_RELIC_DISTRIBUTED_TRACING_ENABLED). Veja os exemplos abaixo.
Por padrão, as versões suportadas do agente utilizam o cabeçalho newrelic e os cabeçalhos W3C Trace Context para distributed tracing. O cabeçalho distributed tracing newrelic permite interoperabilidade com agentes mais antigos que não suportam cabeçalhos W3C Trace Context . As versões do agente que suportam cabeçalhos W3C Trace Context os priorizarão em relação a newrelic cabeçalhos para distributed tracing.
Se você não quiser utilizar o cabeçalho newrelic, defini-lo como true fará com que o agente exclua o cabeçalho newrelic e use apenas cabeçalhos W3C Trace Context para distributed tracing.
Por exemplo, para excluir cabeçalhos newrelic no arquivo de configuração, você usaria:
Define o destino de amostragem adaptativa global, compartilhado pelos contextos root, remote_parent_sampled e remote_parent_not_sampled. Este destino controla o número de trace por minuto que o amostrador adaptativo tenta capturar. Um contexto pode sobrescrever esse padrão global com seu próprio adaptive.sampling_target específico do contexto.
distributed_tracing:
sampler:
adaptive_sampling_target:30# Applied to all contexts without an explicit override
Substitui o adaptive_sampling_target global apenas para o contexto root, definindo o número de traces raiz por minuto que o amostrador adaptativo tenta capturar.
distributed_tracing:
sampler:
adaptive_sampling_target:120# Global default
root:
adaptive:
sampling_target:5# Overrides global default to capture 5 traces/min for the root context
A propriedade ratio é obrigatória ao usar o amostrador trace_id_ratio_based. Se uma proporção não for definida, o Adaptive Sampler padrão será usado para este contexto em vez disso.
Como o Adaptive Sampler geralmente coleta amostras de trace com amostragem upstream (e não os contabiliza para o destino de amostragem), essa configuração geralmente não tem efeito. Para coletar amostras de apenas alguns trace remote_parent_sampled, prefira o amostrador trace_id_ratio_based.
A propriedade ratio é obrigatória ao usar o amostrador trace_id_ratio_based. Se uma proporção não for definida, o Adaptive Sampler padrão será usado para este contexto em vez disso.
distributed_tracing:
sampler:
remote_parent_sampled:
trace_id_ratio_based:
ratio:0.2# Sample 20% of traces sampled by upstream
Tipo
String ou propriedade aninhada
Padrão
adaptive
Configura o amostrador usado para o contexto de pai remoto não amostrado (um serviço upstream decidiu NÃO amostrar este trace). Os valores possíveis são:
Como o Adaptive Sampler geralmente não amostra trace que não foram amostrados por um serviço upstream, essa configuração geralmente não tem efeito. Para garantir a captura de alguns trace remote_parent_not_sampled, prefira o amostrador trace_id_ratio_based.
A propriedade ratio é obrigatória ao usar o amostrador trace_id_ratio_based. Se uma proporção não for definida, o Adaptive Sampler padrão será usado para este contexto em vez disso.
distributed_tracing:
sampler:
remote_parent_not_sampled:
trace_id_ratio_based:
ratio:0.05# Sample 5% even if upstream said not to
Cuidado
Substituir as decisões upstream de "não amostrado" pode criar trace fragmentados onde apenas alguns serviços estão presentes. Use este padrão apenas quando tiver uma necessidade específica de ver a atividade em um serviço downstream, mesmo quando o upstream não a amostrou.
Para uma análise aprofundada de como esses amostradores funcionam, destino de amostragem adaptativa e contextos de amostragem, consulte Configurar amostragem. Para cenários de configuração do mundo real, consulte Exemplos de configuração de amostrador.
Você também pode usar a propriedade do sistema newrelic.config.infinite_tracing.trace_observer.host ou a variável de ambiente NEW_RELIC_INFINITE_TRACING_TRACE_OBSERVER_HOST.
Defina a configuração de evento de span na seção span_events. Essas configurações podem ser substituídas por uma propriedade de sistema com prefixo newrelic.config.span_events. As opções incluem:
Tipo
Boleano
Padrão
true
Usado para ativar/desativar relatórios de eventos de extensão.
Tipo
Inteiro
Padrão
2000
Máx.
10000
Determina o número de eventos de span que podem ser capturados durante um ciclo de coleta de agente. Disponível no agente Java 7.4.0 e superior.
Ao configurar o agente para AI Monitoring, defina o valor máximo 10000. Garante que a quantidade máxima de rastreamento seja capturada.
Importante
Aumentar o número de eventos de span pode levar a sobrecarga adicional do agente.
Tipo
Boleano
Padrão
true
Esta configuração pode ser usada para ativar ou desativar todos os atributos do evento span. Se attributes.enabled no nível raiz for false, nenhum atributo será enviado para span evento, independentemente de como esta propriedade (span_events.attributes.enabled) estiver definida.
Tipo
Lista de strings
Padrão
(nenhum)
Se atributo estiver habilitado para span evento, todas as chaves de atributo encontradas nesta lista serão enviadas para New Relic em span_events. Para mais informações, consulte as regras de atribuição de agentes.
Tipo
Lista de strings
Padrão
(nenhum)
Todas as chaves de atributo encontradas nesta lista não serão enviadas para New Relic no evento span. Para mais informações, consulte as regras de atribuição de agentes.
O rastreamento multiaplicativo foi descontinuado a partir da versão 7.4.0 do agente e será removido em uma versão futura do agente.
Em vez de usar rastreamento multiaplicativo, recomendamos nosso recurso distributed tracing . distributed tracing é uma melhoria no recurso de rastreamento multiaplicativo e é recomendado para sistemas distribuídos grandes.
Defina as opções de rastreamento multiaplicativo na seção cross_application_tracer. Essas configurações podem ser substituídas por uma propriedade de sistema com prefixo newrelic.config.cross_application_tracer.
O rastreamento multiaplicativo adiciona cabeçalhos de solicitação e resposta a chamadas externas usando a biblioteca Apache HttpClient. Isso fornece melhores dados de desempenho ao chamar o aplicativo monitor por outro agente New Relic.