Se você estiver tendo problemas ao usar a API do agente Java para token e segmentos assíncronos, use estas técnicas para ajudá-lo a encontrar respostas e resolver problemas.
Verifique sua instrumentação
A API possui vários mecanismos de segurança integrados para evitar problemas causados pelo uso incorreto da API, mas você pode usar estas técnicas para verificar se a instrumentação do seu aplicativo está correta:
Após instrumentado seu código, verifique se o log mostra que um número igual de tokens foram criados e expirados. Para obter mais informações sobre qual mensagem de log procurar, consulte Usar logs para solucionar problemas.
Verifique as estatísticas de coleta de lixo na página
do APM para determinar se suas alterações alteraram significativamente os padrões de coleta de lixo.
Verifique se algum segmento ou token está expirando revisando seu rastreamento de transação em busca de um atributo
timed_out
. Nesse caso, você pode alterar o limite comtoken_timeout
esegment_timeout
.
Use o log para solucionar problemas
Para customizar a criação de log do agente Java, consulte Gerando logs. Em seguida, você pode examinar seu log em busca destas mensagens comuns:
Para visualizar o token criado, verifique o log em
FINEST
para:Transaction com.newrelic.agent.Transaction@5a7cc8e: created active token com.newrelic.agent.TokenImpl@7db8d0e8Para visualizar o token expirado e a hora em que ele expirou, verifique o registro em
FINEST
para:Transaction com.newrelic.agent.Transaction@5a7cc8e: expired token com.newrelic.agent.TokenImpl@7db8d0e8Para visualizar os segmentos criados, verifique o registro em
FINEST
para:Transaction com.newrelic.agent.Transaction@486b7f04: startSegment(): com.newrelic.agent.Segment@2b7fdad3 created and started with tracer com.newrelic.agent.tracers.OtherRootTracer@4df4a953Para visualizar os segmentos finalizados e a hora em que terminaram, verifique o registro em
FINEST
para:com.newrelic.agent.Transaction@486b7f04--finish segment(): com.newrelic.agent.Segment@2b7fdad3 async finish with tracer com.newrelic.agent.tracers.OtherRootTracer@4df4a953
Problema: o tempo de transação é muito longo
Certifique-se de expirar o token e encerrar ou ignorar segmentos; caso contrário, a transação poderá levar mais tempo para reportar à New Relic. O agente Java possui um mecanismo de tempo limite para token e segmentos que não foram finalizados corretamente. Para obter mais informações, consulte token_timeout
e segment_timeout
.
Problema: Nenhum rastreio da transação de dados
Inspecione o rastreamento da transação para garantir que o trabalho assíncrono esperado seja relatado. Se você não encontrar nenhum rastro de transação, certifique-se de que a duração da transação exceda o limite de rastreio de transação definido em transaction_threshold
.
Problema: poucas chamadas assíncronas
Se poucas chamadas estiverem sendo relatadas: