ARMS 应用监控支持的 Python 组件和框架

本文列出了 Python 探针支持的 Python 版本、第三方组件和框架。

支持的 Python 版本

Python版本要求:3.8 ≤ Python ≤ 3.12

支持的 Protobuf 版本

Python探针在上报数据时需要使用Protobuf进行编码,有可能与用户使用的Protobuf发生冲突,目前Python探针支持兼容用户使用的Protobuf版本范围为:

"protobuf>=3.20.0, < 6.0"

支持的 OpenTelemetry API 版本

Python探针的实现遵循OpenTelemetry API的规范,然而不同版本的OpenTelemetry API可能会略有变化,Python探针目前支持的OpenTelemetry API版本范围为:

"opentelemetry-api <= 1.35.0"

注意事项

  • 如果应用使用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

支持的插件版本

LLM(大语言模型)应用

组件

PyPI仓库地址

低版本

高版本

OpenAI

https://pypi.org/project/openai/

v1.0.0

v1.109.1

Dashscope

https://pypi.org/project/dashscope/

v1.0.0

v1.2.1

Llama-index

https://pypi.org/project/llama-index/

v0.10.5

v0.10.43

Langchain

https://pypi.org/project/langchain/

v0.1.0

v0.3.27

Dify

https://github.com/langgenius/dify

v0.12.8

v1.4.3

MCP

https://pypi.org/project/mcp/

v1.3.0

v1.12.4

Google ADK

https://pypi.org/project/google-adk/

v1.2.1

没有限制

LLM(大语言模型)服务

组件

PyPI仓库地址

低版本

高版本

vLLM V0

https://pypi.org/project/vllm/

v0.5.0

v0.8.4

vLLM V1

V0.8.2

V0.8.4

SGLang

https://pypi.org/project/sglang/

v0.4.6

v0.4.9.post6

HTTP/RPC 框架

组件

PyPI仓库地址

低版本

高版本

FastAPI

https://pypi.org/project/fastapi/

v0.58

没有限制

asgiref

https://pypi.org/project/asgiref/

v3.0

没有限制

aiohttp

https://pypi.org/project/aiohttp/

v3.0

没有限制

Django

https://pypi.org/project/Django/

v1.10

没有限制

WSGI

没有限制

没有限制

Flask

https://pypi.org/project/Flask/

v1.0

没有限制

Requests

https://pypi.org/project/requests/

v2.0

没有限制

gRPC

https://pypi.org/project/grpcio/

v1.42.0

没有限制

Jinja2

https://pypi.org/project/jinja2/

v2.7

< 4.0

Click

https://pypi.org/project/click/

v8.1.3

< 9.0.0

Tornado

https://pypi.org/project/tornado/

v5.1.1

没有限制

数据库框架

组件

PyPI仓库地址

低版本

高版本

SQLAlchemy

https://pypi.org/project/sqlalchemy/

v1.0.0

< 2.1.0

AsyncPG

https://pypi.org/project/asyncpg/

v0.12.0

没有限制

aiopg

https://pypi.org/project/aiopg/

v0.13.0

< 2.0.0

PyMySQL

https://pypi.org/project/pymysql/

无特定版本要求

< 2

PyMSSQL

https://pypi.org/project/pymssql/

v2.1.5

< 3

psycopg

https://pypi.org/project/psycopg/

v3.1.0

没有限制

psycopg2

https://pypi.org/project/psycopg2/

v2.7.3.1

没有限制

MySQL

https://pypi.org/project/mysql-connector-python/

v8.0

< 10.0

MySQLClient

https://pypi.org/project/mysqlclient/

无特定版本要求

< 3

PyMongo

https://pypi.org/project/pymongo/

v3.1

< 5.0

TortoiseORM

https://pypi.org/project/tortoise-orm/

v0.17.0

没有限制

Pydantic

https://pypi.org/project/pydantic/

v1.10.2

没有限制

DBAPI

无特定依赖

无特定版本要求

没有限制

SQLite3

无特定依赖

无特定版本要求

没有限制

缓存插件

组件

PyPI仓库地址

低版本

高版本

Redis

https://pypi.org/project/redis/

v2.6

没有限制

PyMemcache

https://pypi.org/project/pymemcache/

v1.3.5

< 5

Elasticsearch

https://pypi.org/project/elasticsearch/

v6.0

没有限制

Cassandra

https://pypi.org/project/cassandra-driver/

v3.25

没有限制

Scylla

https://pypi.org/project/scylla-driver/

v3.25

没有限制

消息队列插件

组件

PyPI仓库地址

低版本

高版本

Confluent Kafka

https://pypi.org/project/confluent-kafka/

v1.8.2

v2.7.0

Kafka Python

https://pypi.org/project/kafka-python/

无特定版本要求

没有限制

aiokafka

https://pypi.org/project/aiokafka/

无特定版本要求

没有限制

Pika

https://pypi.org/project/pika/

无特定版本要求

没有限制

aio-pika

https://pypi.org/project/aio-pika/

无特定版本要求

没有限制

Celery

https://pypi.org/project/celery/

v4.0

< 6.0

Remoulade

https://pypi.org/project/remoulade/

v0.50

没有限制

其他插件

组件

PyPI仓库地址

低版本

高版本

Threading

无特定依赖

无特定版本要求

没有限制

Logging

无特定依赖

无特定版本要求

没有限制

asyncio

无特定依赖

无特定版本要求

没有限制