Application Real-Time Monitoring Service (ARMS) monitorea aplicaciones Go en un clúster de Container Service for Kubernetes (ACK). Instale el complemento ack-onepilot, compile el archivo binario de Go con la herramienta de compilación instgo y construya la imagen del contenedor. Después del despliegue, consulte los datos de monitoreo como la topología de la aplicación, las llamadas a interfaces y el análisis de bases de datos.
Requisitos previos
-
Ha creado un clúster de ACK. Se recomienda utilizar un clúster administrado de ACK. Para obtener instrucciones, consulte Create an ACK managed cluster.
Ya no es posible crear nuevos clústeres dedicados de ACK, pero los clústeres dedicados existentes siguen siendo compatibles. Para más información, consulte Create an ACK dedicated cluster (discontinued).
Su aplicación Go utiliza Go 1.18 o una versión posterior.
-
Tiene activated ARMS.
ARMS es un servicio de gestión del rendimiento de aplicaciones (APM) de Alibaba Cloud. Para más información sobre ARMS, consulte What is ARMS? y What is Application Monitoring?
Paso 1: Instalar ack-onepilot, el complemento de monitoreo de aplicaciones de ARMS
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Components and Add-ons.
Asegúrese de que la versión de ack-onepilot sea la 3.2.4 o posterior. De forma predeterminada, el complemento ack-onepilot admite hasta 1,000 pods. Por cada 1,000 pods que excedan este límite, aumente los recursos de CPU para ack-onepilot en 0.5 núcleos y los recursos de memoria en 512 MB.
Paso 2: Compilar el archivo binario de Go y construir la imagen del contenedor
Utilice la herramienta de compilación mejorada de Go, instgo, junto con un entorno de compilación local de Go (Go 1.18 o posterior) para compilar su programa Go en un archivo binario que reporte datos de monitoreo a ARMS.
(Opcional) Si su proyecto incluye un directorio vendor durante la compilación, agregue
-mod=vendordespués dego build.-
Use el comando
wgetpara descargar la herramienta de compilación instgo.Durante el proceso de compilación, instgo se actualiza automáticamente. Guarde 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 Go, lo que permite a ARMS monitorear su aplicación.
Si su entorno de compilación tiene acceso a Internet hacia Object Storage Service (OSS), seleccione la URL de descarga por Internet de China (Hangzhou) que corresponda al sistema operativo y la arquitectura del entorno de compilación.
Comandos de descarga
Linux (AMD64)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgoLinux (ARM64)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-arm64" -O instgoMac (ARM64)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-arm64" -O instgoMac (AMD64)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-amd64" -O instgoWindows (AMD64)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-windows-amd64.exe" -O instgo.exe -
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.
Para configurar un UID se requiere instgo 1.4.5 o posterior. Use el comando
setpara configurar un UID como parámetro de compilación.# The UID is the ID of your Alibaba Cloud primary account. instgo set --uid={YourAliyunUid} -
Agregue
instgocomo prefijo a su comando de compilación original y ejecute el comando.instgo go build {arg1} {arg2} {arg3}Si usa
go installpara compilar el proyecto, también puede agregarinstgocomo prefijo a su comando de compilación original. Use el archivo binario generado en el paso anterior para construir la imagen del contenedor.
Paso 3: Habilitar el monitoreo de aplicaciones de ARMS para su aplicación Go
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, elija Workloads > Deployments.
En la página Deployments, busque su aplicación y haga clic en Edit YAML en la columna Actions.
-
En el archivo YAML, agregue las siguientes
labelsal nivelspec.template.metadata.labels: aliyun.com/app-language: golang # Required for Go applications. This indicates that this is a Go application. armsPilotAutoEnable: 'on' armsPilotCreateAppName: "<YOUR-DEPLOYMENT-NAME>" # Replace <YOUR-DEPLOYMENT-NAME> with your application name.
Paso 4: Consultar los detalles de monitoreo
-
Después de aproximadamente un minuto, vaya a la consola de ARMS. En el panel de navegación izquierdo, elija Application Monitoring > Applications para ver la aplicación Go y los datos que reporta.
Una aplicación llamada otel-go-server aparece en la lista de aplicaciones. Un estado verde indica que la aplicación se ejecuta correctamente. Consulte las métricas de monitoreo, como solicitudes por segundo, tasa de errores y tiempo promedio de respuesta, para confirmar que se están reportando datos.
En la columna Application Name, haga clic en el nombre de su aplicación para ir a la página de monitoreo de aplicaciones de la consola de ARMS y consultar los detalles de monitoreo. Para más información, consulte Application overview.
(Opcional) Paso 5: Liberar recursos
Si ya no necesita monitorear la aplicación, desinstale el agente de ARMS. Para más información, consulte Uninstall the ARMS agent for Go.