本文主要介绍使用自定义运行时为Python函数手动安装探针。
背景信息
函数计算无缝对接ARMS应用监控平台后,您可以通过ARMS应用监控平台对目标函数进行监控追踪,获取相关信息,为Python函数安装探针后,ARMS即可开始监控Python应用,您可以查看应用拓扑、调用链路、SQL分析等一系列监控数据。更多信息,请参见什么是应用实时监控服务ARMS?。
使用限制
Python的版本需要在3.8到3.10之间,Python的版本应与Web函数Python自定义运行时的版本保持一致。
步骤一:制作探针层
1. 获取Python探针包
1.1. 下载探针包
// VPC网络下载指定版本探针
wget http://arms-apm-${regionID}.oss-${regionID}-internal.aliyuncs.com/aliyun-python-agent/${version}/aliyun-python-agent.tar.gz
// VPC网络下载最新版本探针
wget http://arms-apm-${regionID}.oss-${regionID}-internal.aliyuncs.com/aliyun-python-agent/aliyun-python-agent.tar.gz
// 公网下载指定版本探针
wget http://arms-apm-${regionID}.oss-${regionID}.aliyuncs.com/aliyun-python-agent/${version}/aliyun-python-agent.tar.gz
// 公网下载最新版本探针
wget http://arms-apm-${regionID}.oss-${regionID}.aliyuncs.com/aliyun-python-agent/aliyun-python-agent.tar.gz
请将${regionID}替换成实际所在的地域,请参考:开服地域。
请将${version}替换成实际期望的版本号,请参考:探针(Python Agent)版本说明。
公网下载指定版本探针的示例值如下:
wget http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/aliyun-python-agent/1.5.0/aliyun-python-agent.tar.gz
1.2. 解压探针包,并执行pip install
## 解压
tar -zxvf aliyun-python-agent.tar.gz
## 构建包
pip3 install target/*.whl -t aliyun-instrument
## 修改./aliyun-instrument/bin目录下aliyun-instrument文件,将首行#!/usr/bin/python3替换为以下内容。
#!/var/fc/lang/python3.10/bin/python3
2. 在线创建层
登录函数计算控制台,在左侧导航栏,选择 。
在顶部菜单栏,选择地域,然后在层管理页面,单击创建层。
在创建层页面,通过文件夹上传层上传构建的层。
上传aliyun-instrument文件时,需要确保aliyun-instrument为顶级目录,避免压缩和解压时aliyun-instrument包含aliyun-instrument,否则配置环境变量会受到影响。
步骤二:在函数中使用自定义层
1. 在函数高级配置中添加自定义层
登录函数计算控制台,在左侧导航栏,单击函数。
在顶部菜单栏,选择地域,然后在函数页面,单击目标函数。
在函数详情页面,选择配置页签,单击高级配置右侧的编辑,在高级配置面板,选择
,选择自定义层和层版本,最后单击部署。
2. 添加环境变量
变量 | 值 |
ARMS_APP_NAME | FC:{函数名称} |
ARMS_LICENSE_KEY | |
ARMS_REGION_ID | {region} |
LD_LIBRARY_PATH | /code:/code/lib:/usr/local/lib:/opt/lib:/opt/php8.1/lib:/opt/php8.0/lib:/opt/php7.2/lib |
PATH | /code/python/bin:/var/fc/lang/python3.10/bin:/usr/local/bin/apache-maven/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ruby/bin:/opt/bin:/code:/code/bin |
PYTHONPATH | /opt:/opt/python:/code |
PYTHONUSERBASE | /code/python |
3. 修改启动命令
在函数详情页面,选择配置页签,单击基础配置右侧的编辑,修改启动命令的值,如下所示。
aliyun-instrument python3 app.py
如果应用使用uvicorn启动,需要替换为以下指令接入探针。
例如:
uvicorn -w 4 -b 0.0.0.0:8000 app:app
修改为:
aliyun-instrument gunicorn -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 app:app
aliyun-instrument指令负责ARMS Python探针初始化配置及无侵入埋点。如果有使用gevent协程,则需要设置环境变量GEVENT_ENABLE=true。例如程序中有使用:
from gevent import monkey
monkey.patch_all()
需要设置环境变量如下:
GEVENT_ENABLE=true
结果验证
成功执行函数后,约一分钟后,若Python应用出现在ARMS控制台的应用监控 > 应用列表页面中且有数据上报,则说明接入成功。