为Python Agent接入ARMS应用监控

AgentRun 自定义运行时中的 Python 3.10 和 Python 3.12 环境已预集成 ARMS Python 探针能力。您只需通过配置环境变量和启动命令,即可接入什么是应用实时监控服务ARMS?,实时监控 LLM 调用次数、Token 消耗、Trace 链路及会话等关键指标。本文介绍如何在代码创建的 Agent 接入 ARMS 应用监控。

前提条件

  • 开通ARMS

  • Agent 运行时选择 Python 3.10 Python 3.12自定义运行时。

说明

与“自定义镜像部署”方案不同,本方案无需修改 Dockerfile 或构建镜像,所有配置均通过 AgentRun 控制台完成,更适合快速迭代和轻量级部署场景。

配置步骤

1、设置探针环境变量

在 Agent 运行时详情页面,选择概览与配置页签,单击编辑配置,添加以下环境变量

ARMS_APP_NAME={您的应用名称}
ARMS_REGION_ID={地域ID,如 cn-hangzhou}
ARMS_LICENSE_KEY={从ARMS获取的LicenseKey}

变量含义说明:

  • ARMS_APP_NAME:Agent 名字,用于在 ARMS 应用监控中显示。

  • ARMS_REGION_ID:地域,比如:cn-hangzhou

  • ARMS_LICENSE_KEY:ARMS 为您生成的应用接入凭证,可以通过 OpenAPI 获取,具体方法可参见DescribeTraceLicenseKey - 列出LicenseKey

2、修改启动命令

编辑配置 > 启动配置中,将启动命令修改为:

/opt/python/bin/aliyun-instrument python3 main.py

其中:

  • /opt/python/bin/aliyun-instrument 是 AgentRun 预置的探针启动器;

  • 后续参数为您的原始启动命令(如 python3 app.py --port 8000)。

该启动器会在应用初始化前自动加载 ARMS 探针,实现零代码侵入的自动埋点。

3、特殊框架适配(按需配置)

使用 uvicorn

推荐以下任一方式:

  • 方式一(推荐):改用 gunicorn + UvicornWorker,并在命令前加 aliyun-instrument

    /opt/python/bin/aliyun-instrument gunicorn -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 main:app
  • 方式二:在入口文件(如 main.py)第一行添加:

    from aliyun.opentelemetry.instrumentation.auto_instrumentation import sitecustomize

使用 uWSGI

请参考官方指南:在使用uWSGI启动DjangoFlask项目时接入Python探针

使用 gevent 协程

若代码中包含:

from gevent import monkey
monkey.patch_all()

需额外添加环境变量:

GEVENT_ENABLE=true

验证接入

  1. 保存配置更新Agent;

  2. 发起几次业务调用;

  3. 约 1 分钟后,前往以下任一位置查看数据:

    • Agent运行时控制台 > Agent详情 > 可观测性

    • ARMS 控制台 > 应用监控(或 LLM 应用监控) > 应用列表 > 您的应用名

若能看到调用链、Token 消耗、LLM 调用次数等数据,即表示接入成功。