Si tiene problemas al utilizar la API del agente de Java para tokens y segmentos asíncronos, utilice estas técnicas para encontrar respuestas y resolver problemas.
Verifique su instrumentación
La API tiene una serie de mecanismos de seguridad integrados para evitar problemas causados por el uso incorrecto de la API, pero puede utilizar estas técnicas para verificar que la instrumentación de su aplicación sea correcta:
Después de instrumentar su código, verifique que el registro muestre que se ha creado y caducado una cantidad igual de tokens. Para obtener más información sobre qué mensaje de registro buscar, consulte Usar registros para solucionar problemas.
Consulte las estadísticas de recolección de basura en la página
de APM para determinar si sus cambios han alterado significativamente los patrones de recolección de basura.
Verifique si algún segmento o token está caducando revisando su traza de la transacción para un atributo
timed_out
. Si es así, puedes cambiar el límite contoken_timeout
ysegment_timeout
.
Utilice el registro para solucionar problemas
Para personalizar el registro de su agente de Java, consulte Generando registro. Luego, puede examinar su registro en busca de estos mensajes comunes:
Para ver el token creado, consulte el registro en
FINEST
para ver:Transaction com.newrelic.agent.Transaction@5a7cc8e: created active token com.newrelic.agent.TokenImpl@7db8d0e8Para ver los tokens caducados y la hora en que caducaron, consulte el registro en
FINEST
para ver:Transaction com.newrelic.agent.Transaction@5a7cc8e: expired token com.newrelic.agent.TokenImpl@7db8d0e8Para ver los segmentos creados, consulte el registro en
FINEST
para ver:Transaction com.newrelic.agent.Transaction@486b7f04: startSegment(): com.newrelic.agent.Segment@2b7fdad3 created and started with tracer com.newrelic.agent.tracers.OtherRootTracer@4df4a953Para ver los segmentos finalizados y la hora en que finalizaron, consulte el registro en
FINEST
para ver:com.newrelic.agent.Transaction@486b7f04--finish segment(): com.newrelic.agent.Segment@2b7fdad3 async finish with tracer com.newrelic.agent.tracers.OtherRootTracer@4df4a953
Problema: los tiempos de transacción son demasiado largos
Asegúrese de hacer caducar el token y finalizar o ignorar los segmentos; de lo contrario, la transacción puede tardar más en informarse a New Relic. El agente de Java tiene un mecanismo de tiempo de espera para tokens y segmentos que no finalizan correctamente. Para obtener más información, consulte token_timeout
y segment_timeout
.
Problema: No hay traza de datos de la transacción.
Inspeccione la traza de la transacción para asegurarse de que se informe el trabajo asincrónico esperado. Si no ve ninguna traza de la transacción, asegúrese de que la duración de su transacción exceda el umbral de la traza de la transacción establecido en transaction_threshold
.
Problema: muy pocas llamadas asíncronas
Si se informan muy pocas llamadas: