avance
Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!
Esta característica se proporciona actualmente como parte de un programa de vista previa de conformidad con nuestras políticas de prelanzamiento.
Go es un lenguaje compilado con un entorno de ejecución opaco, lo que le impide soportar la instrumentación automática como otros lenguajes. Por este motivo, el agente Go de New Relic está diseñado como un SDK. Dado que el agente Go es un SDK, requiere más trabajo manual para configurarlo que el agente para idiomas que admiten instrumentación automática.
En un esfuerzo por facilitar la instrumentación, el equipo del agente Go creó la herramienta de instrumentación fácil de Go, que actualmente se encuentra en versión preliminar. Esta herramienta hace la mayor parte del trabajo por usted al sugerir cambios a su código fuente que instrumenta su aplicación con el agente New Relic Go.
Para comenzar, mira este video de cuatro minutos o salta a Cómo funciona.
Aviso de vista previa
Cómo funciona
Esta herramienta no interfiere con el funcionamiento de su aplicación y no realiza ningún cambio directamente en su código. Esto es lo que pasa:
- Analiza su código y sugiere cambios que permiten al agente Go capturar telemetry data.
- Revisa los cambios en el archivo
.diff
y decide qué cambios agregar a tu código fuente.
Como parte del análisis, esta herramienta puede invocar go get
u otros comandos de la cadena de herramientas del lenguaje Go que pueden modificar su archivo go.mod
, pero no su código fuente real.
Importante
Esta herramienta no puede detectar si ya tienes la instrumentación de New Relic. Por favor, emplee esta herramienta únicamente en aplicaciones sin ninguna instrumentación.
¿Qué está instrumentado?
El alcance de lo que esta herramienta puede instrumentar en su aplicación se limita a estas acciones:
- Capturar errores en cualquier función envuelta o trazada por una transacción
- Seguimiento de funciones definidas localmente que se invocan en el método
main()
de la aplicación con una transacción - Seguimiento de funciones asincrónicas y literales de funciones con un segmento asincrónico
- Envolviendo manejadores HTTP
- Inyectar rastreo distribuido en tráfico externo
Bibliotecas apoyadas
- biblioteca estándar
- net/http
Instalacion
Antes de comenzar con los pasos de instalación a continuación, cerciorar de tener instalada una versión de Go que esté dentro de la ventana de soporte para el ciclo de vida actual del lenguaje de programación Go.
Instalar la instrumentación Go easy:
$go install github.com/newrelic/go-easy-instrumentation@latest
Generar sugerencias de instrumentación
Esta herramienta funciona mejor con Git. Le recomendamos que verifique que su aplicación esté en una rama sin cambios no preparados antes de aplicarle cualquiera de los cambios generados. Luego de verificar esto, siga estos pasos para generar y aplicar los cambios que instalan el agente New Relic Go en una aplicación:
- Ejecute el siguiente comando CLI para crear un archivo llamado
new-relic-instrumentation.diff
en su directorio de trabajo:bash$go-easy-instrumentation -path ../my-application/ - Abra el archivo
.diff
y verifique o corrija el contenido. - Cuando esté satisfecho con las sugerencias de instrumentación, almacene el archivo y luego aplique los cambios:bash$mv new-relic-instrumentation.diff ../my-application/$cd ../my-application$git apply new-relic-instrumentation.diff
Una vez aplicados los cambios, la aplicación debería ejecutar con el agente New Relic Go instalado. Si la instalación del agente no funciona como usted desea, puede recuperarla fácilmente empleando comandos Git comunes. Por ejemplo, podrías probar una de las siguientes opciones:
- Almacena los cambios con
git stash
- Revertir el código a una confirmación anterior
¿Que sigue?
Si tiene alguna sugerencia o encuentra problemas, cree un problema en Github.