为Python应用安装探针

更新时间:
复制 MD 格式

在为Python应用手动安装ARMS探针并部署到SAE之后,您就可以通过ARMS监控该应用。通过ARMS,您可以查看包括应用拓扑、调用链路分析、SQL性能分析等在内的多种监控数据。本文主要介绍为应用手动安装ARMS探针并部署至SAE

前提条件

注意事项

  • 如果应用使用uvicorn启动,请选择以下一种方式进行配置。

    • 方式一:在uvicorn的入口文件处的第一行添加以下语句以引入Python探针。

      from aliyun.opentelemetry.instrumentation.auto_instrumentation import sitecustomize
    • 方式二:使用gunicorn替换uvicorn,并在gunicorn命令前添加aliyun-instrument前缀。

      例如:

      uvicorn app:app --workers 4 --port=9090 --host 0.0.0.0

      修改为:

      aliyun-instrument gunicorn -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 app:app
      说明

      aliyun-instrument指令负责ARMS Python探针初始化配置及无侵入埋点。

  • 如果应用使用uWSGI启动,请参考以下接入文档进行接入:在使用uWSGI启动DjangoFlask项目时接入Python探针

  • 如果有使用gevent协程,则需要设置环境变量GEVENT_ENABLE=true

    例如程序中有使用:

    from gevent import monkey
    monkey.patch_all()

    需要设置环境变量如下:

    GEVENT_ENABLE=true

步骤综述

  1. 准备项目:本文以Demo项目为例进行说明。

  2. Python项目制作Docker镜像或将Python项目打包成ZIP包:如果您是通过镜像的方式部署Python应用,需要在制作镜像时下载安装Python探针。如果您是通过代码包的方式部署Python应用,在部署应用的过程中系统会默认下载安装Python探针,您只需要通过ARMS Python探针启动应用即可。

  3. 部署Python应用:SAE侧部署Python应用,并打开应用监控的开关。如果您是通过代码包部署Python应用,除了开启应用监控外还需要设置启动命令(通过ARMS Python探针启动应用)。

  4. 查看应用监控:查看应用产生的多种监控数据。

1. 准备项目

  1. 上传项目至您准备好的环境中。

  2. 安装运行项目必备的环境进行测试。具体操作,请参见软件包安装

  3. 在本地进行测试,确保您的项目能够正常运行。

2. Python项目制作Docker镜像或将Python项目打包成ZIP

制作Docker镜像并将其推送至镜像仓库

  1. 制作Python镜像。

    本文只介绍下载探针、安装探针和使用ARMS Python探针启动应用的命令。

    ...
    # 从PyPI仓库下载探针安装器。
    RUN pip3 install aliyun-bootstrap
    # 使用aliyun-bootstrap安装Python探针。
    RUN aliyun-bootstrap -a install
    ...
    # 通过ARMS Python探针启动应用。
    CMD ["aliyun-instrument","python","main.py"]
    说明

    如果您不需要使用Python探针启动应用,需要在应用主入口文件(例如:main.py)引入Python探针,然后启动应用。

    from aliyun.opentelemetry.instrumentation.auto_instrumentation import  sitecustomize
  2. 将制作成功的Python镜像推送至阿里云镜像仓库。具体操作,请参见推送拉取镜像(企业版)推送拉取镜像(个人实例版)

Python项目打包成ZIP

在您的本地环境中将Python项目打包成ZIP格式的压缩包。具体操作,请参见Python ZIP打包说明

3. 创建Python应用

通过镜像的方式创建Python应用

3.1 创建应用

本文只介绍关键步骤。创建应用的详细步骤,请参见使用镜像部署应用

  1. 设置镜像面板,选择技术栈语言Python,然后选择具体的镜像版本。

    选择 我的阿里云镜像 标签页和 镜像服务个人版,在 选择镜像版本 下拉框中选择 python2

  2. 高级设置页面的应用监控区域,开启应用监控

    开启应用监控前,需修改应用的自定义镜像,在编译构建过程中手动安装 Python 探针。ARMS 为 SAE 用户每月提供 200 GB 免费额度。

  3. 单击创建应用

3.2 访问测试

使用公网访问地址进行测试

  1. 为应用添加公网访问地址。具体操作,请参见为应用绑定CLB并生成应用的公网或私网访问IP

    配置完成后,公网访问地址区域显示已绑定的 CLB 地址,端口为 2222,协议为 HTTP

  2. 复制公网访问地址,在浏览器进行访问测试。

Webshell中进行访问测试

  1. 进入目标应用的基础信息页面,然后单击实例列表页签。

  2. 单击目标实例ID操作列的Webshell

  3. Webshell页面,输入curl 127.0.0.1:容器端口进行测试。

通过代码包的方式创建Python应用

3.1 创建应用

本文只介绍关键步骤。创建应用的详细步骤,请参见部署Python应用

  1. 设置代码包部署面板,选择技术栈语言Python,然后在上传Zip区域单击image图标上传目标ZIP包。

    Python 环境 下拉框中选择 Python 3.9.15

  2. 高级设置页面配置以下信息。

    1. 启动命令区域,设置启动命令。

      aliyun-instrument python main.py
      # 通过ARMS Python探针启动应用,main.py为本示例的主入口文件名。

      选择 >/bin/sh 作为命令类型。

    2. 应用监控区域,开启应用监控

  3. 单击创建应用

3.2 访问测试

使用公网访问地址进行测试

  1. 为应用添加公网访问地址。具体操作,请参见为应用绑定CLB并生成应用的公网或私网访问IP

  2. 复制公网访问地址,在浏览器进行访问测试。

Webshell中进行访问测试

  1. 进入目标应用的基础信息页面,然后单击实例列表页签。

  2. 单击目标实例ID操作列的Webshell

  3. Webshell页面,输入curl 127.0.0.1:容器端口进行测试。

4. 查看应用监控

SAE侧查看

进入目标应用的基础信息页面,然后在左侧导航栏单击应用监控,最后在应用监控页面查看监控数据

应用概览 页签下展示 请求数错误数平均耗时实例数 四个核心指标卡片及日/周同比数据,中部为对应的时间序列趋势图,底部为请求数、错误数、平均耗时、CPU使用率峰值的 Top5 排行。

ARMS侧查看

  1. 登录ARMS控制台

  2. 在左侧导航栏选择应用监控 > 应用列表,然后在顶部菜单栏选择目标地域。

    应用列表 页面可以看到已接入的应用及其关键监控指标,包括每秒请求数、错误率、平均响应时间等,确认应用已成功接入ARMS应用监控。

  3. 应用列表页面的搜索框,搜索目标应用,然后单击目标应用名称。

  4. 在监控详情页面查看监控数据。

    dq39ionBxZ