Para las aplicaciones Python desplegadas en clústeres de ACK, como las aplicaciones web construidas con frameworks como Django, Flask y FastAPI, o las aplicaciones de IA y LLM desarrolladas con LlamaIndex y Langchain, puede usar Application Real-Time Monitoring Service (ARMS) para monitorear el rendimiento. Para habilitar el monitoreo, instale el componente ack-onepilot y modifique su Dockerfile. Esto activa funciones como la topología de la aplicación, el rastreo, el análisis de llamadas a API, la detección de anomalías y el seguimiento detallado de las interacciones con modelos grandes.
Requisitos previos
Se creó un namespace. Para obtener más información, consulte Manage namespaces and resource quotas. Este tema usa el namespace
arms-democomo ejemplo.-
El entorno de ejecución de Python es la versión 3.8 o posterior.
ARMS es compatible con Python 3.8 y versiones posteriores. Si utiliza una versión anterior, pueden presentarse problemas de conexión.
-
ARMS es un servicio de gestión del rendimiento de aplicaciones (APM) proporcionado por Alibaba Cloud. Para obtener más información sobre el monitoreo de aplicaciones, consulte What is Application Real-Time Monitoring Service (ARMS)? y What is application monitoring?.
Paso 1: Instalar el componente ack-onepilot
El componente heredado arms-pilot ya no recibe mantenimiento. ack-onepilot es su reemplazo y resulta totalmente compatible; la migración no requiere cambios en la configuración de su aplicación. Para consultar los pasos de migración, vea Uninstall arms-pilot and install ack-onepilot.
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 .
-
En la sección Logs and Monitoring, busque el complemento ack-onepilot y haga clic en Install dentro de la tarjeta del complemento.
NotaAsegúrese de que la versión de ack-onepilot sea la 3.2.4 o posterior. De forma predeterminada, el componente ack-onepilot admite hasta 1,000 pods. Por cada 1,000 pods adicionales que superen este límite, aumente los recursos de CPU de ack-onepilot en 0.5 núcleos y los de memoria en 512 MB.
Una vez finalizada la instalación, puede actualizar, configurar o desinstalar el complemento ack-onepilot desde la página Add-ons.
Paso 2: Autorizar a ARMS para acceder a los recursos
ARMS utiliza addon.arms.token para la autorización sin contraseña. La mayoría de los clústeres administrados de ACK incluyen este secreto de forma predeterminada, aunque algunos clústeres más antiguos podrían no tenerlo.
Compruebe si su clúster cuenta con el token:
Si falta el token, otorgue los permisos manualmente:
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 del clúster de destino. En el panel de navegación izquierdo, haga clic en Cluster Information.
En la pestaña Basic Information, dentro de Cluster Resources, haga clic en el enlace junto a Worker RAM Role.
En la pestaña Permissions, haga clic en Grant Permission.
Seleccione la política AliyunARMSFullAccess y haga clic en Grant permissions.
Si su clúster está conectado a una Elastic Container Instance (ECI), vaya a la página RAM Quick Authorization y complete la autorización. Después, reinicie los pods creados para ack-onepilot.
Paso 3: Integrar el agente de Python de ARMS en su Dockerfile
Modifique su Dockerfile para integrar el agente de Python de ARMS y úselo para iniciar su aplicación Python.
-
Instale el instalador del agente desde PyPI:
RUN pip3 install aliyun-bootstrap -
Instale el agente. Reemplace
<region-id>con el identificador de su región de Alibaba Cloud (por ejemplo,cn-hangzhou):NotaPara instalar una versión específica del agente, ejecute:
aliyun-bootstrap -a install -v <version>Para consultar todas las versiones publicadas, vea Python agent release notes.RUN ARMS_REGION_ID=<region-id> aliyun-bootstrap -a install -
Actualice el comando de inicio para usar el prefijo
aliyun-instrument:CMD ["aliyun-instrument", "python", "app.py"] Compile la imagen.
A continuación se muestra un ejemplo completo de Dockerfile:
Paso 4: Habilitar el monitoreo 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 .
En la página Deployments, busque su aplicación y haga clic en dentro de la columna Actions.
-
Agregue las siguientes etiquetas bajo
spec.template.metadata: Reemplace<app-name>con un nombre descriptivo para su aplicación, comomy-python-service.ImportanteSi utiliza una versión de ack-onepilot posterior a la 5.0.0, pero ya instaló el agente manualmente en su Dockerfile, deshabilite la inyección automática agregando esta etiqueta: ``
yaml armsAutoInstrumentationEnable: "off"``labels: aliyun.com/app-language: python # Required. Identifies this as a Python application. armsPilotAutoEnable: 'on' # Enables ARMS monitoring. armsPilotCreateAppName: "<app-name>" # Display name in the ARMS console.El siguiente código proporciona una plantilla YAML completa para crear un Deployment y habilitar el monitoreo de la aplicación:
Paso 5: Consultar los detalles de monitoreo
-
Después de aproximadamente un minuto, inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, elija para consultar su aplicación Python y los datos reportados.
En la lista de aplicaciones, verá la aplicación arms-python-client conectada junto con sus métricas, como las solicitudes por segundo, la tasa de errores y el tiempo promedio de respuesta.
Haga clic en Application Name para ir a la página de monitoreo de la aplicación en la consola de ARMS y consultar la información de monitoreo detallada. Para obtener más información, vea Application overview.
(Opcional) Paso 6: Liberar recursos
Si ya no necesita monitorear su aplicación Python con ARMS, desinstale el agente de Python de ARMS para detener el monitoreo. Para obtener más información, consulte Uninstall the Python agent.
> Edit YAML