Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Habilite rastreo distribuido para su aplicación Go
Rastreo distribuido te permite ver el recorrido completo de tus solicitudes a lo largo de un sistema distribuido. Para el agente Go, ofrecemos dos tipos de rastreo distribuido (para más detalles, consulte Cómo funciona el muestreo de intervalo):
Estándar (muestreo head-based): Antes de que llegue cualquier traza, determinamos un porcentaje determinado de traza para aceptar y analizar. Esto le brinda un punto de partida sólido para ver cómo el rastreo puede ayudarlo. Está activado de forma predeterminada en Go agente 3.16.0 y versiones posteriores.
Rastreo infinito (ejemplificación al final): Nuestro servicio basado en la nube acepta todos sus trazos y luego los clasifica para encontrar los más importantes. Infinite tracing analiza todos tus trazos y te brinda opciones de configuración para tomar muestra de los trazos que más te interesan.
Ya sea que simplemente desee probar el rastreo distribuido estándar (ejemplificación al inicio) o también desee configurar el rastreo infinito (ejemplificación al final), debe comenzar configurando el rastreo estándar.
Rastreo estándar distribuido
Este es el mejor enfoque para configurar el rastreo distribuido estándar si aún no instaló ningún agente APM para sus servicios.
Sugerencia
Cuando instala el agente New Relic Go, el rastreo distribuido estándar se activa de forma predeterminada. Si prefiere desactivarlo, consulte nuestra guía de configuración.
Identificar servicios
Averigüe qué servicios se relacionan con su solicitud para que pueda instrumentar cada uno de ellos para enviar datos de traza a New Relic.
Instrumentar cada servicio con un agente APM
Para cada servicio involucrado en sus transacciones, deberá realizar una instalación separada del agente. Si algunos de sus servicios emplean otros idiomas, simplemente repita los pasos de instalación para esos idiomas.
Sugerencia
El agente Go requiere que instrumentes manualmente tus servicios Go, a diferencia de la instrumentación automática del otro agente New Relic. Esto significa que necesita agregar algunas líneas a su código para usar el agente Go. Aprenderá sobre esto cuando comience la instalación a continuación.
Para iniciar la rutina de instalación, haga clic en el mosaico a continuación. Cuando haya terminado de instalar cada agente, regrese aquí para ver consejos para ver su traza.
Después de instrumentar cada uno de sus servicios con el agente APM, genere algo de tráfico en su aplicación para que podamos capturar alguna traza. A continuación se muestran algunas formas de ver su traza en la UI:
A continuación se muestra una forma de ver la traza de un servicio en particular:
En la sección Monitor del panel izquierdo, haga clic en Distributed tracing.
Para más detalles, haga clic en una traza individual. Si Group similar traces está activado en el menú superior, haga clic en un grupo de trazas y luego haga clic en una traza individual.
Si no ves la traza que quieres, puedes filtrar por el trace.id.
Seleccione su entidad (servicio) en el panel izquierdo.
Para más detalles, haga clic en una traza individual. Si Group similar traces está activado en el menú superior, haga clic en un grupo de trazas y luego haga clic en una traza individual.
Si no ves la traza que quieres, puedes filtrar por el trace.id.
Puede reunir su log y los detalles de seguimiento para que la resolución de problemas sea más fácil y rápida. Con logs en el contexto, puede ver el mensaje de inicio de sesión junto con la traza en la UI de New Relic.
Antes de comenzar, cerciorar primero de cumplir con los requisitos.
Complete la configuración para el rastreo distribuido estándar.
La configuración de Infinite Tracing se basa en el rastreo distribuido estándar. Por lo tanto, cerciorar de completar los pasos anteriores y luego continúe con la configuración del observador traza.
Configurar el observador de trazas
El observador de trazas es un servicio de New Relic basado en AWS que recopila y analiza todas sus trazas. Siga las instrucciones en Configurar traza observer. Cuando haya terminado, regrese aquí con su información de observador de traza y continúe con el siguiente paso para configurar el agente.
Configurar el agente para Infinite Tracing
Los ajustes de configuración de Infinite Tracing incluyen el rastreo estándar distribuido más información sobre el observador de traza:
Aquí hay una descripción general de la configuración.
Si necesita ayuda con la configuración del proxy, consulte Soporte de proxy.
(Opcional) Personalizar el seguimiento infinito
Después de agregar los ajustes de configuración del agente, debería comenzar a ver datos en la UI de New Relic. Después de pasar algún tiempo analizando sus datos, es posible que desee ajustar algunas de las características de Infinite Tracing:
Toda instalación del agente Go y el seguimiento distribuido requieren cierta instrumentación manual utilizando las configuraciones enumeradas en Configuración del agente Go. Aún así, es posible que necesites realizar alguna configuración adicional para optimizar tu configuración. Aquí hay algunas pautas para transacciones instrumentadas y solicitudes HTTP.
Si está utilizando http.ServeMux de Go y desea habilitar el rastreo distribuido de New Relic, su aplicación Go debe estar instrumentada con los contenedores WrapHandle y WrapHandleFunc de New Relic. Estos contenedores inician y finalizan automáticamente la transacción con el escritor de solicitud y respuesta, que agregará automáticamente los encabezados de rastreo distribuidos correctos. Para obtener más información sobre cómo funciona la propagación de encabezados, consulte Cómo funciona rastreo distribuido.
Aquí hay un ejemplo de código antes de la instrumentación:
http.HandleFunc("/users", usersHandler)
Y aquí hay un ejemplo de ese mismo código después de la instrumentación:
Para que sus solicitudes HTTP salientes sean elegibles para rastreo distribuido, cree un segmento externo.
La forma más sencilla de crear un segmento externo para su solicitud HTTP saliente es utilizar el método newrelic.NewRoundTripper . A continuación se muestra un ejemplo de cómo realizar una solicitud a http://api.example.com que incluye los encabezados de rastreo distribuido salientes:
Si tiene una solicitud más compleja que utiliza la biblioteca estándar de Go http.Request, utilice el método newrelic.StartExternalSegment para asegurarse de que su solicitud saliente sea apta para rastreo distribuido:
// Distributed tracing headers are not added to the outgoing request.
// Use newrelic.NewRoundTripper or newrelicc.StartExternalSegment instead.
defer newrelic.ExternalSegment{
StartTime: txn.StartSegmentNow(),
URL: url,
}.End()
return http.Get(url)
}
La carga útil del rastreo distribuido contiene información que permite a New Relic unir las transacciones que ocurren en múltiples servicios en una traza de la transacción completa. Si los servicios de New Relic-monitor no se envían el contexto de traza entre sí, se obtendrán detalles de traza incompletos.
Para obtener instrucciones generales sobre cómo usar la API de llamada a continuación para implementar rastreo distribuido, primero consulte Usar las API de rastreo distribuido.
Si quieres...
Utilizar esta
Cree una carga útil para enviarla al servicio llamado.