Python 支持的组件和版本
要确保 Instana Python 软件包与您当前的设置兼容,请查看 Instana Python 软件包支持的组件和版本。
有关监控 Python 应用程序的更多信息,请参阅监控 Python。
Instana AutoTrace webhook
Instana AutoTrace webhook 可以在整个 Kubernetes 集群中自动监测 Python 进程。
Python 运行时
Instana Python 2.5.4 和早期版本仅在 Python 运行时(最高至 3.10 )上支持对 Tornado、asyncio 和 aiohttp 库进行跟踪。
| Python | 版本 | Instana Python 软件包版本 |
|---|---|---|
| CPython | >= 3.8 和 <= 3.13 | >= 3.0.0 |
| CPython | >= 3.8 和 < 3.13 | >= 2.5.0 |
| CPython | >= 3.7 和 < 3.10 | < 2.5.0 |
| CPython | >= 2.7 和 <= 3.6 | < 2.0.0 |
长期支持
Instana 遵循 Python 的官方长期支持 (LTS) 和生命周期终止 (EOL) 时间表。
当 Python 版本到了到期日,Instana 会再提供一年的支持期。 为避免出现问题,请定期更新 Python 版本。
支持的环境
Instana Python 软件包支持多种环境。
平台
支持以下平台和 CPU 架构:
| 平台 | x86_64/amd64 | ppc64le | s390x | aarch64/arm64 |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Red Hat [1] | ✅ | ✅ | ✅ | ✅ |
| 视窗 [2] | ✅ | ❌ | ❌ | ❌ |
| AWS Fargate | ✅ | ❌ | ❌ | ❌ |
| AWS Lambda | ✅ | ❌ | ❌ | ✅ |
| Kubernetes | ✅ | ✅ | ✅ | ✅ |
| Google Cloud | ✅ | ❌ | ❌ | ❌ |
| 集装箱 [3] | ✅ | ✅ | ✅ | ✅ |
Instana Python 软件包 3.5.0 引入了 ppc64le 和 s390 支持,而 3.6.0 则增加了 Windows 支持。
跟踪
Instana Python 软件包支持跨其他 Instana 仪器平台、技术和语言的分布式跟踪。
Instana Python 软件包版本 "列提供了有关版本限制的其他信息。 Instana Python 软件包版本 "列值 Any 表示软件包版本 >= 3.0.0。
规格支持
下表列出了 Instana Python 软件包支持的规格:
| 规范 | 支持策略 | 最低版本 | 最高版本 | Instana Python 软件包版本 |
|---|---|---|---|---|
| ASGI | 45 天 | 2.0.0 | 3.0.0 | 任何 |
| WSGI | 0 天 | PEP 333 1.0 | PEP 3333 1.0.1 | 任何 |
HTTP
下表列出了 Instana Python 软件包支持的 HTTP 框架和库:
Web 框架
下表列出了 Instana Python 软件包支持的 HTTP 网络框架:
| 框架 | 支持策略 | 最低版本 | 最高版本 | Instana Python 软件包版本 |
|---|---|---|---|---|
| Django | 45 天 | 1.11.0 | 5.2.4 | 任何 |
| FastAPI | 45 天 | 0.51.0 | 0.115.14 | 任何 |
| Flask | 45 天 | 0.12.0 | 3.1.1 | 任何 |
| Pyramid | 45 天 | 1.6.5 | 2.0.2 | 任何 |
| Sanic | 按需 | 21.9.0 | 25.3.0 | 任何 |
| 星莱特 | 45 天 | 0.12.13 | 0.47.1 | 任何 |
| 龙卷风 | 45 天 | 6.0.0 | 6.5.1 | 任何 |
客户和图书馆
下表列出了 Instana Python 软件包支持的 HTTP 客户端和库:
| 库 | 支持策略 | 最低版本 | 最高版本 | Instana Python 软件包版本 |
|---|---|---|---|---|
| aiohttp | 45 天 | 3.1.0 | 3.12.14 | Python >= 3.9 |
| Httpx | 45 天 | 0.20.0 | 0.28.1 | >= 3.5.0 |
| 请求数 | 45 天 | 2.16.1 | 2.32.4 | 任何 |
| Urllib3 | 45 天 | 1.26.5 | 2.5.0 | 任何 |
RPC
下表列出了 Instana Python 软件包支持的 RPC 库:
| 库 | 支持策略 | 最低版本 | 最高版本 | Instana Python 软件包版本 |
|---|---|---|---|---|
| grpcio | 45 天 | 1.14.1 | 1.73.1 | 任何 |
| Spyne | 45 天 | 2.13.1a0 | 2.14.0 | >= 3.4.0 with Python < 3.12 |
数据库
下表列出了 Instana Python 软件包支持的数据库库:
| 库 | 支持策略 | 最低版本 | 最高版本 | Instana Python 软件包版本 |
|---|---|---|---|---|
| AWS DynamoDB [4] | 45 天 | 1.15.0 | 1.39.3 | 任何 |
| AWS S3 [4:1] | 45 天 | 1.15.0 | 1.39.3 | 任何 |
| Cassandra -驱动程序 | 45 天 | 3.20.2 | 3.29.2 | 任何 |
| Couchbase | 按需 | 2.3.5 | 2.5.12 | 任何 |
| mysqlclient | 45 天 | 1.3.14 | 2.2.7 | 任何 |
| PyMySQL | 45 天 | 0.6.7 | 1.1.1 | 任何 |
| pymongo | 45 天 | 3.7.0 | 4.13.2 | 任何 |
| Psycopg2 | 45 天 | 2.7.2 | 2.9.10 | 任何 |
| Redis | 45 天 | 2.10.6 | 6.2.0 | 任何 |
| SQLAlchemy | 45 天 | 1.1.5 | 2.0.41 | 任何 |
消息传递
下表列出了 Instana Python 软件包支持的消息传递库:
| 库 | 支持策略 | 最低版本 | 最高版本 | Instana Python 软件包版本 |
|---|---|---|---|---|
| Aioamqp | 45 天 | 0.15.0 | 0.15.0 | >= 3.4.0 |
| Aio-pika | 45 天 | 9.1.0 | 9.5.5 | >= 3.5.0 |
| Confluent Kafka | 45 天 | 2.0.0 | 2.11.0 | >= 3.4.0 |
| Kafka -蟒蛇 | 45 天 | 2.0.0 | 2.2.15 | >= 3.4.0 with Python < 3.12 |
| Kafka -python-ng | 45 天 | 2.0.0 | 2.2.3 | >= 3.4.0 与 Python >= 3.12 |
| pika | 45 天 | 1.0.0 | 1.3.2 | 任何 |
云服务
下表列出了 Instana Python 软件包支持的云服务库:
| 库 | 支持策略 | 最低版本 | 最高版本 | Instana Python 软件包版本 |
|---|---|---|---|---|
| Boto3 ( AWS SDK) | 45 天 | 1.15.0 | 1.39.3 | 任何 |
| Google -云ubsub [5] | 45 天 | 2.0.0 | 2.30.0 | 任何 |
| google-cloud-storage | 45 天 | 1.24.0 | 3.1.1 | 任何 |
Python 内置模块
下表列出了 Instana Python 软件包支持的 Python 内置库:
| 库 | 支持策略 | 最低版本 | 最高版本 | Instana Python 软件包版本 |
|---|---|---|---|---|
| Asyncio | 0 天 | 1.4 | 23.7.0 | 任何 |
| 正在记录 | 0 天 | 4.3.0 | 5.5.3 | 任何 |
其他图书馆
下表列出了 Instana Python 软件包支持的其他库:
| 库 | 支持策略 | 最低版本 | 最高版本 | Instana Python 软件包版本 |
|---|---|---|---|---|
| gevent | 按需 | 1.4 | 23.7.0 | 任何 |
| Celery | 45 天 | 4.3.0 | 5.5.3 | 任何 |
追踪说明和限制
查看 Instana Python Tracer 的权限和限制。
主题启动许可
Instana Python 追踪器需要权限才能创建和启动 Python threading.Timer 对象。 在大多数系统中,该权限是默认授予的。 在某些嵌套的容器化场景中,例如在某些 Docker -in- Docker 容器版本中,默认情况下不授予该权限。
如果出现 RuntimeError: can't start new thread 这样的异常,则很可能是权限不足造成的。 如果您升级或更改了 Docker -in- Docker 容器,但内部应用容器没有获得所需的权限,那么作为最后的手段,您可以使用 --privileged 权限来启动应用容器。
跨线程追踪
Instana Python 软件包不支持跨线程跟踪。 例如,当一个请求首先在单个线程上处理,然后在 multiprocessing.ThreadPool 的帮助下将工作量分配给多个其他线程时,其他线程中发生的传出调用不会被捕获。 由于每个退出跨度都需要有一个进入跨度,而启动的进入跨度不在线程范围内,因此不会记录此类呼出调用。 这是由于默认 OpenTracing ThreadLocalScopeManager 的固有特性以及缺乏 ThreadPool 专用的范围管理器造成的。
中跟踪非同步函数 FastAPI
Instana Python 软件包仅支持追踪 FastAPI 中基于例程的并发性。 这是因为在线程池上执行的非同步函数无法通过线程边界进行跟踪。
使用多个跟踪器跟踪
不支持同时使用 Instana 和第三方跟踪器(如 New Relic 跟踪器或 OpenTelemetry )跟踪单个 Python 应用程序。
受支持的 Web 服务器
Instana Python 软件包支持以下网络服务器:
- uWSGI
- Gunicorn
- mod_wsgi
- Nginx WSGI
- uvicorn
传感器数据收集
Instana Python 传感器收集以下数据:
跟踪的配置
Instana Python 传感器收集以下配置数据:
- 名称
- 运行时
- PID
- 已装入模块
度量
Instana Python 传感器收集以下指标:
- GC 活动
- 内存使用率
- 线程
- 分页
- I/O
- 事件
- 上下文切换
AutoProfile
Instana Python 软件包生成以下配置文件:
| 概要文件 | Python 版本 | 平台 |
|---|---|---|
| CPU 使用率 | >= 2.7 和 >= 3.4 | Linux 和 macOS |
| 内存分配速率 | >= 3.4 | Linux 和 macOS |
| 阻止调用 | >= 2.7 和 >= 3.4 | Linux 和 macOS |
其他信息
- Python 概述
- Python 配置
- Python 跟踪 SDK
- Python OpenTelemetry
- Python OpenTracing (弃用)
- Python 故障诊断
- Python Github 存储库