通过本教程,您将学习如何将ACK集群下的Python应用接入ARMS应用监控,体验应用性能分析和调用链分析等功能,并配置告警。
如需将其他环境下的应用接入应用监控,请参见应用接入。
使用流程
为应用安装探针。
安装ack-onepilot组件:ack-onepilot是阿里云容器服务Kubernetes提供的系统组件,可以让部署在容器服务Kubernetes中的Java、Golang或Python应用接入ARMS。
更新Dockerfile:下载aliyun-bootstrap探针安装器,安装探针后使用探针启动Python应用。
更新YAML:通过在应用的YAML中添加
labels
,开启监控并配置应用在ARMS中的展示名称。
查看监控数据。
为监控数据配置告警。
准备环境和资源
ACK:
创建Kubernetes集群。具体操作,请参见创建ACK托管集群。
创建Python应用。
Python版本要求,请参见Python探针兼容性要求。
Python应用需使用Gunicorn启动,例如:
gunicorn -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 app:app
如果有使用gevent协程,则需要设置环境变量
GEVENT_ENABLE=true
。
如果您没有可以使用的Python应用,可以参考以下示例YAML创建。具体操作,请参见创建无状态工作负载Deployment。
说明示例YAML创建了以下资源:
空间名称:arms-demo。以下所有资源均创建在arms-demo命名空间下。
无状态应用:arms-python-client和arms-python-server。
服务:arms-python-client-svc和arms-python-server-svc。
其中,arms-python-server和arms-python-client的应用代码分别为:
ARMS:
已开通应用监控计费版本。
应用监控每月提供50 GB的免费额度,当月未使用完的试用额度不会结转至次月,当月超出免费额度的部分,按照写入的数据量进行收费。收费详情,请参见计费说明。
为应用安装探针
1. 安装ack-onepilot组件
在容器服务管理控制台的集群列表页面单击目标集群名称。
在左侧导航栏选择
,然后在右侧页面通过关键字搜索ack-onepilot。在ack-onepilot卡片上单击安装,然后在弹出的对话框单击确定。
说明确保ack-onepilot版本在3.2.4及以上。
2. 更新Dockerfile
从PyPI仓库下载探针安装器。
pip3 install aliyun-bootstrap
使用aliyun-bootstrap安装探针。
aliyun-bootstrap -a install
通过ARMS Python探针启动应用。
aliyun-instrument python app.py
构建镜像。
完整的Dockerfile示例如下:
3. 更新YAML
在
页面选择应用所在的命名空间,然后在目标应用右侧选择 。在编辑YAML中将以下
labels
添加到spec.template.metadata层级下,然后单击更新。labels: aliyun.com/app-language: python # Python应用必填,标明此应用是Python应用。 armsPilotAutoEnable: 'on' armsPilotCreateAppName: "<your-deployment-name>" #应用在ARMS中的展示名称。
例如,在arms-python-client和arms-python-server应用的YAML中添加配置,开启监控并配置在ARMS中的展示名称分别为arms-python-client和arms-python-server。
arms-python-client应用
arms-python-server应用
待容器完成自动重新部署后,等待1~2分钟,在ARMS控制台的 页面单击应用名称,查看应用的监控指标。更多信息,请参见查看监控详情(新版)。
查看监控详情
调用链分析
微服务场景:
调用链分析功能可以通过自由组合筛选条件与聚合维度进行实时分析,并支持通过错/慢Trace分析功能,定位系统或应用产生错、慢调用的原因。
调用链详情:
针对大模型场景,您可以查看LLM领域的新版TraceView,更直观地分析不同操作类型的输入输出、Token消耗等信息。
切换为大模型视图:
大模型调用信息:
监控指标
应用概览
应用拓扑
配置告警
通过配置告警,您可以制定针对特定应用的告警规则。当告警规则被触发时,系统会以您指定的通知方式向告警联系人或钉群发送告警信息,以提醒您采取必要的解决措施。具体操作,请参见应用监控告警规则。
释放资源
完成教程后:
如果仍需要继续监控当前应用,请确保账户不要欠费。
如果无需继续监控当前应用,请卸载探针。具体操作,请参见卸载Python探针。
相关文档
ARMS应用监控支持在应用的业务日志中关联调用链的TraceId信息,从而在应用出现问题时,能够通过调用链的TraceId快速关联到业务日志,及时定位、分析并解决问题。更多信息,请参见业务日志关联调用链的TraceId信息。
阿里云可观测监控 Prometheus 版默认集成了ARMS应用监控数据源,您可以直接在可观测监控 Prometheus 版下获取应用监控相关数据、查看应用监控预置大盘,并根据需求进行二次开发。更多信息,请参见通过Prometheus监控获取ARMS应用监控数据。