本文主要介紹使用自訂運行時為Python函數手動安裝探針。
背景資訊
Function Compute無縫對接ARMS應用監控平台後,您可以通過ARMS應用監控平台對目標函數進行監控追蹤,擷取相關資訊,為Python函數安裝探針後,ARMS即可開始監控Python應用,您可以查看應用拓撲、調用鏈路、SQL分析等一系列監控資料。更多資訊,請參見什麼是應用即時監控服務ARMS?。
使用限制
函數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.gz1.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/python32. 線上建立層
登入Function Compute控制台,在左側導覽列,選擇。
在頂部功能表列,選擇地區,然後在層管理頁面,單擊建立層。
在建立層頁面,通過檔案夾上傳層上傳構建的層。

上傳aliyun-instrument檔案時,需要確保aliyun-instrument為頂級目錄,避免壓縮和解壓時aliyun-instrument包含aliyun-instrument,否則配置環境變數會受到影響。
步驟二:在函數中使用自訂層
1. 在函數進階配置中添加自訂層
登入Function Compute控制台,在左側導覽列,選擇。
在頂部功能表列,選擇地區,然後在函數列表頁面,單擊目標函數。
在函數詳情頁面,選擇配置頁簽,單擊進階配置右側的編輯,在進階配置面板,選擇,選擇自訂層和層版本,最後單擊部署。

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:appaliyun-instrument指令負責ARMS Python探針初始化配置及無侵入埋點。如果有使用gevent協程,則需要設定環境變數GEVENT_ENABLE=true。例如程式中有使用:
from gevent import monkey
monkey.patch_all()需要設定環境變數如下:
GEVENT_ENABLE=true結果驗證
成功執行函數後,約一分鐘後,若Python應用出現在ARMS控制台的應用監控 > 應用列表頁面中且有資料上報,則說明接入成功。
