非官方的ddtrace对ASGI应用程序和框架的集成
项目描述
ddtrace-asgi
非官方的ddtrace
集成,用于ASGI应用程序和框架。
应与任何ASGI Web框架无缝工作,例如Starlette、FastAPI、Quart等。
注意: 此项目处于alpha阶段。
需求
- Python 3.6+。
ddtrace
必须安装才能使用ddtrace-run
命令。- 必须安装并运行Datadog Agent,以便将跟踪有效地发送到Datadog APM。
安装
pip install ddtrace-asgi
快速入门
要将跟踪自动发送到Datadog APM的每个HTTP请求,请将您的ASGI应用程序包装在TraceMiddleware
周围
# app.py
from ddtrace_asgi.middleware import TraceMiddleware
async def app(scope, receive, send):
assert scope["type"] == "http"
headers = [[b"content-type", b"text/plain"]]
await send({"type": "http.response.start", "status": 200, "headers": headers})
await send({"type": "http.response.body", "body": b"Hello, world!"})
app = TraceMiddleware(
app, service="asgi-hello-world", tags={"env": "local"},
)
然后在托管应用程序时使用ddtrace-run
。例如,如果使用Uvicorn托管
ddtrace-run uvicorn app:app
有关使用ddtrace
的更多信息,请参阅官方dd-trace-py
存储库。
示例
Starlette
from ddtrace_asgi.middleware import TraceMiddleware
from starlette.applications import Starlette
app = Starlette()
app.add_middleware(TraceMiddleware, service="my-starlette-app")
FastAPI
from ddtrace_asgi.middleware import TraceMiddleware
from fastapi import FastAPI
app = FastAPI()
app.add_middleware(TraceMiddleware, service="my-fastapi-app")
API参考
TracingMiddleware
class TracingMiddleware:
def __init__(self, app, tracer=None, service="asgi", tags=None, distributed_tracing=True):
...
将HTTP请求的跟踪发送到Datadog APM的ASGI中间件。
参数
- app - 一个[ASGI]应用程序。
- tracer - (可选) 一个
Tracer
对象。默认为全局ddtrace.tracer
对象。 - service - (可选) 服务名称,它将显示在Datadog上。
- 标签 - (可选) 默认附加到所有请求段的标签。可以是字典,也可以是逗号分隔的标签字符串(例如
"env:staging, app:shop"
)。另请参阅标签。 - 分布式跟踪 - (可选) 是否启用分布式跟踪。
变更日志
本项目所有重大更改都将记录在此文件中。
格式基于Keep a Changelog。
0.3.0 - 2019-11-15
新增
- 允许设置所有请求段的默认标签。(Pull #24)
0.2.2 - 2019-11-03
新增
- 现在除了源分发(sdist)之外,还提供二进制分发(wheel)。(Pull #16)
0.2.1 - 2019-10-31
修复
- 提高对ASGI协议违规的鲁棒性。(Pull #11)
0.2.0 - 2019-10-30
更改
TraceMiddleware
的tracer
、service
和distributed_tracing
参数现在是关键字参数。(Pull #10)
新增
TraceMiddleware
的tracer
默认现在是全局的ddtrace.tracer
。(Pull #10)
0.1.0 - 2019-10-23
初始版本。
新增
- 添加
TracingMiddleware
。
项目详情
下载文件
下载适合您平台的自定义文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
ddtrace-asgi-0.3.0.tar.gz (7.2 kB 查看哈希)
构建分发
ddtrace_asgi-0.3.0-py3-none-any.whl (6.0 kB 查看哈希)
关闭
ddtrace-asgi-0.3.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 424f3847eb4ad57897ad2c92c737365d0c5157bb9b6f21fafc74f975c235ff21 |
|
MD5 | b982059b4d1b98b31437cbf57c615bd7 |
|
BLAKE2b-256 | ffc1646ebf480dc528000cf432d4f3598eb07503684cc495eddce16b755b9223 |
关闭
ddtrace_asgi-0.3.0-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1628c8e3bcdbfba2cbfb879c2eae7710b147a22c913f9c7f7e634b7ae0aba71a |
|
MD5 | 0974f54cfc133191638e12213f0e3071 |
|
BLAKE2b-256 | 793903f23cf30c24ed410f3d6e746b5b5800fb2d0948aaaf2e5d0690993a7eba |