对于部署在ACK集群中的Python应用(例如使用Django、Flask、FastAPI框架构建的Web应用或基于LlamaIndex、Langchain等开发的AI、LLM应用),通过安装ack-onepilot组件并调整Dockerfile,即可利用应用实时监控服务 ARMS(Application Real-Time Monitoring Service)实现应用性能监控,包括应用拓扑、链路追踪、接口调用分析、异常检测等功能以及针对大型模型交互过程中的细致跟踪记录。
前提条件
已创建命名空间。具体操作,请参见管理命名空间与配额。本文示例中的命名空间为
arms-demo
。已确保使用的Python运行时为3.8及以上。
ARMS兼容的Python版本为3.8及以上,低于此版本时可能会出现接入问题。
已开通ARMS。
ARMS是一款阿里云应用性能管理(APM)类监控产品,如需了解ARMS应用监控的详细信息,请参见什么是应用实时监控服务ARMS?、什么是应用监控。
步骤一:安装ARMS应用监控接入组件ack-onepilot
ACK旧版应用监控组件arms-pilot已不再维护,您可以安装升级后的ack-onepilot组件用于监控您的应用,ack-onepilot完全兼容arms-pilot,您无需修改应用配置即可无缝接入ack-onepilot。更多信息,请参见如何安装ack-onepilot和卸载arms-pilot。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在组件管理页面,搜索关键字ack-onepilot。
重要请确保ack-onepilot的版本为3.2.4及以上。
在ack-onepilot卡片上单击安装,并在弹出的页面中可以配置相关的参数,建议使用默认值,然后单击确定。
说明ack-onepilot组件默认支持1000个Pod规模,集群Pod每超过1000个,ack-onepilot资源对应的CPU请增加0.5核、内存请增加512MB。
安装完成后,您可以在组件管理页面升级、配置或卸载ack-onepilot组件。
步骤二:授予ARMS资源的访问权限
如需监控ACK集群应用,但ACK集群中不存在
addon.arms.token
,请执行以下操作手动为集群授予ARMS资源的访问权限。如果已经存在addon.arms.token
,则无需执行授权操作。说明当ACK集群中存在
addon.arms.token
时,ARMS能够自动完成免密授权过程。通常情况下,ACK托管集群默认配备了addon.arms.token
。然而,对于一些较早创建的ACK托管集群来说,可能存在缺少addon.arms.token
的情形。检查
addon.arms.token
是否存在。如果
addon.arms.token
存在,无需执行后续授权操作。否则,请执行以下操作手动为集群授予ARMS资源的访问权限。登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择集群信息。
在基本信息页签下,单击集群资源区域内的Worker RAM角色右侧的链接。
在角色页面的权限管理页签上,单击新增授权。
选择权限为AliyunARMSFullAccess,然后单击确定。
如需监控对接了ECI的ACK托管集群应用,请在云资源访问授权页面完成授权,然后重启ack-onepilot组件下的所有Pod。
步骤三:集成ARMS Python探针至Dockerfile
修改Dockerfile,在您的Python应用程序中集成ARMS Python探针,以启动Python应用。
从PyPI仓库下载探针安装器。
pip3 install aliyun-bootstrap
使用aliyun-bootstrap安装探针。
aliyun-bootstrap -a install
通过ARMS Python探针启动应用。
aliyun-instrument python app.py
构建镜像。
完整的Dockerfile示例如下:
步骤四:启用Python应用的ARMS应用监控
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在目标应用的右侧选择
。在YAML文件中将以下
labels
添加到spec.template.metadata层级下。labels: aliyun.com/app-language: python # Python应用必填,标明此应用是Python应用。 armsPilotAutoEnable: 'on' armsPilotCreateAppName: "<your-deployment-name>" #应用在ARMS中的展示名称
创建无状态(Deployment)应用并开启ARMS应用监控的完整YAML示例模板如下:
步骤五:查看监控详情
(可选)步骤六:释放资源
您不再需要使用ARMS监控您的Python应用时,可以通过卸载ARMS Python探针停止监控。具体操作,请参见卸载Python探针。
相关文档
如需了解如何将ACK集群下的Java应用或Golang应用接入ARMS应用监控,请参见Java应用监控、Golang应用监控。