La instalación del agente de Go permite que Application Real-Time Monitoring Service (ARMS) supervise su aplicación de Go y proporcione datos sobre la topología de la aplicación, trazas y análisis de SQL.
Para aplicaciones en un entorno de Kubernetes, no instale el agente manualmente. En su lugar, utilice el componente proporcionado para integrar la aplicación con ARMS. Para obtener más información, consulte Install the Go agent for Container Service for Kubernetes (ACK) and Container Compute Service (ACS) using the ack-onepilot component.
Si tiene preguntas sobre el agente de Go, contáctenos en nuestro grupo de preguntas y respuestas de DingTalk (ID: 159215000379).
Requisitos previos
Su entorno de compilación debe poder conectarse a Internet o a una red interna de Alibaba Cloud. Asegúrese de que su security group permita el tráfico TCP saliente en los puertos 8080, 9990, 80 y 443.
Compruebe su entorno de red. Para obtener más información, consulte Network configurations for Go application monitoring.
Verifique el sistema operativo, la arquitectura, la versión de Go y la versión del framework de su entorno de compilación. Para obtener más información, consulte Go components and frameworks supported by ARMS Application Monitoring.
Paso 1: Compilar la imagen de la aplicación de Go
Para utilizar el monitoreo de aplicaciones de Go de ARMS, solo necesita usar la herramienta instgo durante la compilación; para ello, agregue instgo como prefijo a su comando original go build. No es necesario modificar ningún código de negocio ni integrar el SDK de OpenTelemetry. El agente instgo implementa la instrumentación automática basada en el estándar OpenTelemetry e inserta el código de monitoreo automáticamente durante la fase de análisis AST en tiempo de compilación.
(Opcional) Si su proyecto incluye un directorio vendor durante la compilación, agregue
-mod=vendordespués dego build.-
Utilice el comando
wgetpara descargar la herramienta de compilación instgo. Seleccione una URL de descarga según el sistema operativo y la arquitectura de su entorno de compilación.Tenga en cuenta que instgo se actualiza automáticamente durante el proceso de compilación. Asegúrese de guardar instgo en un directorio donde el usuario de compilación tenga permisos de escritura.
Notainstgo es una herramienta de compilación de ARMS que instrumenta su proyecto de Go y permite que ARMS supervise su aplicación.
Si tiene acceso a Internet hacia Object Storage Service (OSS), utilice la URL de descarga de China (Hangzhou) que corresponda a su sistema operativo y arquitectura.
-
Conceda permisos de ejecución a la herramienta de compilación.
Linux/Mac
# Grant the executable permission. chmod +x instgoWindows
No es necesario conceder permisos de ejecución en Windows.
-
(Opcional) Configure un UID como parámetro de compilación.
ImportanteSi omite este paso, instgo instala la versión más reciente del agente de ARMS de forma predeterminada.
Utilice el comando
setpara configurar un UID como parámetro de compilación.instgo set --uid={YourAliyunUid} // instgo 1.4.5 or later is required. The UID is the ID of your Alibaba Cloud primary account. -
Agregue
instgocomo prefijo a su comando de compilación original y ejecute el comando.instgo go build {arg1} {arg2} {arg3}Si utiliza
go installpara compilar el proyecto, también puede agregarinstgocomo prefijo a su comando de compilación original. Utilice el archivo binario generado en el paso anterior para construir una imagen.
Paso 2: Configurar variables de entorno
-
Después de la compilación, agregue las siguientes variables de entorno a su aplicación de Go:
export ARMS_ENABLE=true export ARMS_APP_NAME=xxx # The name of your application. export ARMS_REGION_ID=xxx # The region ID of your Alibaba Cloud account. export ARMS_LICENSE_KEY=xxx # The license key from the ARMS console.NotaSi desea reportar datos a través de Internet de forma predeterminada, establezca la variable de entorno
ARMS_NETWORK_STRATEGY=public. -
En lugar de exportar variables de entorno, puede usar la bandera -ldflags para especificarlas durante el proceso de compilación.
Reemplace
modulecon el nombre del módulo configurado en go mod. Para otros parámetros, consulte las variables de entorno.instgo go build -ldflags " -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.ArmsApmName=${appName}' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.ArmsEnable=true' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.LicenseKey=${licenseKey}' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.RegionId=${regionId}'" -
Si utiliza systemctl para iniciar su aplicación, puede usar los siguientes comandos para establecer las variables de entorno:
systemctl set-environment ARMS_ENABLE=true systemctl set-environment ARMS_APP_NAME=xxx # The name of your application. systemctl set-environment ARMS_REGION_ID=xxx # The region ID of your Alibaba Cloud account. systemctl set-environment ARMS_LICENSE_KEY=xxx # The license key from the ARMS console.
(Opcional) Configuración de Dockerfile
Si utiliza un entorno de Docker, modifique su Dockerfile según el siguiente ejemplo.
FROM golang:1.21 AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo
RUN chmod +x instgo
RUN ./instgo go build -o myapp .
FROM debian:bookworm-slim
WORKDIR /app
COPY --from=builder /app/myapp .
ENV ARMS_ENABLE=true
ENV ARMS_APP_NAME=AppName
ENV ARMS_REGION_ID=regionId
ENV ARMS_LICENSE_KEY=licenseKey
EXPOSE 8080
CMD ["./myapp"]
Verificar los resultados
Después de aproximadamente un minuto, compruebe la página en la consola de ARMS. Si su aplicación aparece y está reportando datos, la instalación del agente se completó correctamente.