支持的技术
编辑支持的技术编辑
对于其他框架和自定义 Python 代码,代理公开了一组用于集成的 API。
Python编辑
支持以下 Python 版本
- 3.6
- 3.7
- 3.8
- 3.9
- 3.10
- 3.11
- 3.12
Django编辑
我们支持以下 Django 版本
- 1.11
- 2.0
- 2.1
- 2.2
- 3.0
- 3.1
- 3.2
- 4.0
- 4.2
- 5.0
对于即将推出的 Django 版本,我们通常的目标是从第一个候选版本开始确保兼容性。
我们目前不支持在 ASGI 模式下运行的 Django。
Flask编辑
我们支持以下 Flask 版本
- 0.10(已弃用)
- 0.11(已弃用)
- 0.12(已弃用)
- 1.0
- 1.1
- 2.0
- 2.1
- 2.2
- 2.3
- 3.0
Aiohttp 服务器编辑
我们支持以下 aiohttp 版本
- 3.0+
Tornado编辑
我们支持以下 tornado 版本
- 6.0+
Sanic编辑
我们支持以下 sanic 版本
- 20.12.2+
Starlette/FastAPI编辑
我们支持以下 Starlette 版本
- 0.13.0+
任何使用受支持 Starlette 版本的 FastAPI 版本也应该受支持。
GRPC编辑
我们支持以下 grpcio
版本
- 1.24.0+
自动仪表编辑
Python APM 代理附带了各种第三方模块和标准库模块的自动仪表。
调度编辑
Celery编辑
我们支持以下 Celery 版本
- 3.x
- 4.x
Celery 任务将仅在 Django 和 Flask 中自动记录。
数据库编辑
Elasticsearch编辑
已检测方法
-
elasticsearch.transport.Transport.perform_request
-
elasticsearch.connection.http_urllib3.Urllib3HttpConnection.perform_request
-
elasticsearch.connection.http_requests.RequestsHttpConnection.perform_request
-
elasticsearch._async.transport.AsyncTransport.perform_request
-
elasticsearch_async.connection.AIOHttpConnection.perform_request
此外,仪表还包装了 Elasticsearch
客户端类的以下方法
-
elasticsearch.client.Elasticsearch.delete_by_query
-
elasticsearch.client.Elasticsearch.search
-
elasticsearch.client.Elasticsearch.count
-
elasticsearch.client.Elasticsearch.update
收集的跟踪数据
- 查询字符串(如果可用)
- 请求正文中的
query
元素(如果可用) - 响应状态码
- 受影响的行数(如果可用)
我们建议您仅将关键字参数与 elasticsearch-py 一起使用,如 elasticsearch-py 文档 中所述。如果您使用位置参数,我们将无法从请求正文中收集 query
元素。
SQLite编辑
已检测方法
-
sqlite3.connect
-
sqlite3.dbapi2.connect
-
pysqlite2.dbapi2.connect
已检测的 connect
方法返回一个包装的连接/游标,它检测实际的 Cursor.execute
调用。
收集的跟踪数据
- 参数化 SQL 查询
MySQLdb编辑
库:MySQLdb
已检测方法
-
MySQLdb.connect
已检测的 connect
方法返回一个包装的连接/游标,它检测实际的 Cursor.execute
调用。
收集的跟踪数据
- 参数化 SQL 查询
mysql-connector编辑
库:mysql-connector-python
已检测方法
-
mysql.connector.connect
已检测的 connect
方法返回一个包装的连接/游标,它检测实际的 Cursor.execute
调用。
收集的跟踪数据
- 参数化 SQL 查询
pymysql编辑
库:pymysql
已检测方法
-
pymysql.connect
已检测的 connect
方法返回一个包装的连接/游标,它检测实际的 Cursor.execute
调用。
收集的跟踪数据
- 参数化 SQL 查询
aiomysql编辑
库:aiomysql
已检测方法
-
aiomysql.cursors.Cursor.execute
收集的跟踪数据
- 参数化 SQL 查询
PostgreSQL编辑
库:psycopg2
,psycopg2-binary
(>=2.9
)
已检测方法
-
psycopg2.connect
已检测的 connect
方法返回一个包装的连接/游标,它检测实际的 Cursor.execute
调用。
收集的跟踪数据
- 参数化 SQL 查询
aiopg编辑
库:aiopg
(>=1.0
)
已检测方法
-
aiopg.cursor.Cursor.execute
-
aiopg.cursor.Cursor.callproc
收集的跟踪数据
- 参数化 SQL 查询
asyncpg编辑
库:asyncpg
(>=0.20
)
已检测方法
-
asyncpg.connection.Connection.execute
-
asyncpg.connection.Connection.executemany
收集的跟踪数据
- 参数化 SQL 查询
PyODBC编辑
库:pyodbc
,(>=4.0
)
已检测方法
-
pyodbc.connect
已检测的 connect
方法返回一个包装的连接/游标,它检测实际的 Cursor.execute
调用。
收集的跟踪数据
- 参数化 SQL 查询
MS-SQL编辑
库:pymssql
,(>=2.1.0
)
已检测方法
-
pymssql.connect
已检测的 connect
方法返回一个包装的连接/游标,它检测实际的 Cursor.execute
调用。
收集的跟踪数据
- 参数化 SQL 查询
MongoDB编辑
库:pymongo
,>=2.9,<3.8
已检测方法
-
pymongo.collection.Collection.aggregate
-
pymongo.collection.Collection.bulk_write
-
pymongo.collection.Collection.count
-
pymongo.collection.Collection.create_index
-
pymongo.collection.Collection.create_indexes
-
pymongo.collection.Collection.delete_many
-
pymongo.collection.Collection.delete_one
-
pymongo.collection.Collection.distinct
-
pymongo.collection.Collection.drop
-
pymongo.collection.Collection.drop_index
-
pymongo.collection.Collection.drop_indexes
-
pymongo.collection.Collection.ensure_index
-
pymongo.collection.Collection.find_and_modify
-
pymongo.collection.Collection.find_one
-
pymongo.collection.Collection.find_one_and_delete
-
pymongo.collection.Collection.find_one_and_replace
-
pymongo.collection.Collection.find_one_and_update
-
pymongo.collection.Collection.group
-
pymongo.collection.Collection.inline_map_reduce
-
pymongo.collection.Collection.insert
-
pymongo.collection.Collection.insert_many
-
pymongo.collection.Collection.insert_one
-
pymongo.collection.Collection.map_reduce
-
pymongo.collection.Collection.reindex
-
pymongo.collection.Collection.remove
-
pymongo.collection.Collection.rename
-
pymongo.collection.Collection.replace_one
-
pymongo.collection.Collection.save
-
pymongo.collection.Collection.update
-
pymongo.collection.Collection.update_many
-
pymongo.collection.Collection.update_one
收集的跟踪数据
- 数据库名称
- 方法名称
Redis编辑
库:redis
(>=2.8
)
已检测方法
-
redis.client.Redis.execute_command
-
redis.client.Pipeline.execute
收集的跟踪数据
- Redis 命令名称
aioredis编辑
库:aioredis
(<2.0
)
已检测方法
-
aioredis.pool.ConnectionsPool.execute
-
aioredis.commands.transaction.Pipeline.execute
-
aioredis.connection.RedisConnection.execute
收集的跟踪数据
- Redis 命令名称
Cassandra编辑
库:cassandra-driver
(>=3.4,<4.0
)
已检测方法
-
cassandra.cluster.Session.execute
-
cassandra.cluster.Cluster.connect
收集的跟踪数据
- CQL 查询
Python Memcache编辑
库:python-memcached
(>=1.51
)
已检测方法
-
memcache.Client.add
-
memcache.Client.append
-
memcache.Client.cas
-
memcache.Client.decr
-
memcache.Client.delete
-
memcache.Client.delete_multi
-
memcache.Client.disconnect_all
-
memcache.Client.flush_all
-
memcache.Client.get
-
memcache.Client.get_multi
-
memcache.Client.get_slabs
-
memcache.Client.get_stats
-
memcache.Client.gets
-
memcache.Client.incr
-
memcache.Client.prepend
-
memcache.Client.replace
-
memcache.Client.set
-
memcache.Client.set_multi
-
memcache.Client.touch
收集的跟踪数据
- 目标(地址和端口)
pymemcache编辑
库:pymemcache
(>=3.0
)
已检测方法
-
pymemcache.client.base.Client.add
-
pymemcache.client.base.Client.append
-
pymemcache.client.base.Client.cas
-
pymemcache.client.base.Client.decr
-
pymemcache.client.base.Client.delete
-
pymemcache.client.base.Client.delete_many
-
pymemcache.client.base.Client.delete_multi
-
pymemcache.client.base.Client.flush_all
-
pymemcache.client.base.Client.get
-
pymemcache.client.base.Client.get_many
-
pymemcache.client.base.Client.get_multi
-
pymemcache.client.base.Client.gets
-
pymemcache.client.base.Client.gets_many
-
pymemcache.client.base.Client.incr
-
pymemcache.client.base.Client.prepend
-
pymemcache.client.base.Client.quit
-
pymemcache.client.base.Client.replace
-
pymemcache.client.base.Client.set
-
pymemcache.client.base.Client.set_many
-
pymemcache.client.base.Client.set_multi
-
pymemcache.client.base.Client.stats
-
pymemcache.client.base.Client.touch
收集的跟踪数据
- 目标(地址和端口)
kafka-python编辑
库: kafka-python
(>=2.0
)
已检测方法
-
kafka.KafkaProducer.send
, -
kafka.KafkaConsumer.poll
, -
kafka.KafkaConsumer.\__next__
收集的跟踪数据
- 目标(地址和端口)
- 主题(如果适用)
外部 HTTP 请求编辑
标准库编辑
库: urllib2
(Python 2) / urllib.request
(Python 3)
已检测方法
-
urllib2.AbstractHTTPHandler.do_open
/urllib.request.AbstractHTTPHandler.do_open
收集的跟踪数据
- HTTP 方法
- 请求的 URL
urllib3编辑
库: urllib3
已检测方法
-
urllib3.connectionpool.HTTPConnectionPool.urlopen
此外,我们还检测了以下库中 urllib3 的捆绑实例
-
requests
-
botocore
这两个库在更新的版本中都“解除了” urllib3,我们建议使用最新版本。
收集的跟踪数据
- HTTP 方法
- 请求的 URL
requests编辑
已检测方法
-
requests.sessions.Session.send
收集的跟踪数据
- HTTP 方法
- 请求的 URL
AIOHTTP 客户端编辑
已检测方法
-
aiohttp.client.ClientSession._request
收集的跟踪数据
- HTTP 方法
- 请求的 URL
httpx编辑
已检测方法
- `httpx.Client.send
收集的跟踪数据
- HTTP 方法
- 请求的 URL
服务编辑
AWS Boto3 / Botocore编辑
库: boto3
(>=1.0
)
已检测方法
-
botocore.client.BaseClient._make_api_call
收集所有服务的跟踪数据
- AWS 区域(例如
eu-central-1
) - AWS 服务名称(例如
s3
) - 操作名称(例如
ListBuckets
)
此外,某些服务还会收集更具体的数据
AWS Aiobotocore编辑
库: aiobotocore
(>=2.2.0
)
已检测方法
-
aiobotocore.client.BaseClient._make_api_call
收集所有服务的跟踪数据
- AWS 区域(例如
eu-central-1
) - AWS 服务名称(例如
s3
) - 操作名称(例如
ListBuckets
)
此外,某些服务还会收集更具体的数据
S3编辑
- 存储桶名称
DynamoDB编辑
- 表名
SNS编辑
- 主题名称
SQS编辑
- 队列名称
模板引擎编辑
Django 模板语言编辑
库: Django
(请参阅Django了解支持的版本)
已检测方法
-
django.template.Template.render
收集的跟踪数据
- 模板名称
Jinja2编辑
库: jinja2
已检测方法
-
jinja2.Template.render
收集的跟踪数据
- 模板名称