Solucionar problemas de instrumentación del tiempo de compilación Go

Información general

Esta guía explica cómo solucionar los problemas de las compilaciones que gestiona Orchestrion. Estos procedimientos pueden ayudar a Datadog a recopilar información sobre los procesos de compilación y pueden ayudar con los informes de errores.

Los archivos generados pueden contener información confidencial del proyecto, como el código fuente y los nombres de las dependencias. Si te preocupa compartir esta información públicamente, ponte en contacto con el servicio de asistencia de Datadog para compartir los datos de forma privada.

Conservar el árbol de trabajo

Orchestrion registra las transformaciones de las compilaciones en el árbol de trabajo go build. Para evitar que la cadena de herramientas go limpie este directorio después de la compilación, utiliza la marca -work:

orchestrion go build -work ./...
WORK=/tmp/go-build2455442813

La localización del árbol de trabajo se imprime al inicio de la compilación, marcada con WORK=. Este directorio contiene subdirectorios de cada paquete de go compilado, llamados directorios de staging.

Contenido del árbol de trabajo

Cuando Orchestrion inyecta código en un archivo fuente, escribe el archivo modificado en el directorio de staging del paquete ($WORK/b###), en el subdirectorio orchestrion/src. Para las configuraciones de importación de paquetes modificados, el archivo original se conserva con un sufijo .original. Puedes inspeccionar estos archivos legibles por humanos para verificar las acciones de Orchestrion. Para obtener ayuda con la interpretación de estos archivos, ponte en contacto con el servicio de asistencia de Datadog.

Configuración de la generación de logs

Niveles de logs

Controla el resultado de la generación de logs de Orchestrion utilizando la variable de entorno ORCHESTRION_LOG_LEVEL o la marca --log-level:

NivelDescripción
NONE OFF (por defecto)No hay resultados de la generación de logs
ERRORSólo información sobre errores
WARNErrores y advertencias
INFOErrores, advertencias y mensajes informativos
DEBUGGeneración de logs detallada
TRACEGeneración de logs extremadamente detallada
Configurar elNIVEL_DE_LOGS_DE_ORCHESTRION en los niveles DEPURAR o RASTREAR puede tener un impacto significativo en el rendimiento de la compilación. Estos parámetros no son recomendado para operaciones normales.

Resultado del archivo de logs

Escribe mensajes de generación de logs en archivos, en lugar de hacerlo en la consola, configurando la variable de entorno ORCHESTRION_LOG_FILE o la marca --log-file con la ruta de archivo deseada.

Configurar el ARCHIVO_DE_LOGS_DE_ORCHESTRION cambia el valor por defecto del NIVEL_DE_LOGS_DE_ORCHESTRION a ADVERTIR.

La ruta del archivo de logs puede incluir los tokens $PID o ${PID}, que se sustituyen por el PID del proceso de generación de logs. Esto reduce la discrepancia entre archivos, pero crea muchos archivos de logs en proyectos grandes.

La generación de logs se añade a los archivos existentes en lugar de sobrescribirlos, independientemente de la presencia de $PID en la ruta del archivo.

Referencias adicionales

Más enlaces, artículos y documentación útiles: