针对ASGI应用程序和框架的非官方ddtrace集成
ddtrace-asgi的Python项目详细描述
ddtrace asgi公司
非官方的ASGI应用程序和框架集成。在
对于任何ASGI web框架,例如Starlette、FastAPI、Quart等,都应该无缝工作
Note:此项目处于alpha阶段。在
要求
- Python 3.6+。在
- ^必须安装{a4}才能使用
ddtrace-run
命令。在 - 必须安装并运行Datadog Agent才能将跟踪有效地发送到Datadog APM。在
安装
pip install ddtrace-asgi
快速启动
要在每个HTTP请求上自动向Datadog APM发送跟踪,请将ASGI应用程序包装在TraceMiddleware
周围:
然后在为应用程序提供服务时使用ddtrace-run
。例如,如果与Uvicorn一起食用:
ddtrace-run uvicorn app:app
有关使用ddtrace
的更多信息,请参阅^{
示例
Starlette
fromddtrace_asgi.middlewareimportTraceMiddlewarefromstarlette.applicationsimportStarletteapp=Starlette()app.add_middleware(TraceMiddleware,service="my-starlette-app")
快速API
fromddtrace_asgi.middlewareimportTraceMiddlewarefromfastapiimportFastAPIapp=FastAPI()app.add_middleware(TraceMiddleware,service="my-fastapi-app")
API参考
TracingMiddleware
classTracingMiddleware:def__init__(self,app,tracer=None,service="asgi",tags=None,distributed_tracing=True):...
一个ASGI中间件,它向Datadog APM发送HTTP请求的跟踪。在
参数
- app—一个[ASGI]应用程序。在
- ^{1{str}可选{ema8}对象。默认为全局
ddtrace.tracer
对象。在 - service-(可选)将在Datadog上显示的服务的名称。在
- ^{str1}$tags-(可选)附加到所有请求范围的默认标记。字典或逗号分隔的标记字符串(例如
"env:staging, app:shop"
)。另请参见Tagging。在 - 分布式跟踪-(可选)是否启用distributed tracing。在
变更日志
这个项目的所有显著变化都将记录在这个文件中。在
格式基于Keep a Changelog。在
0.3.0-2019年11月15日
添加
- 允许在所有请求范围上设置默认标记。(拉动24)
0.2.2-2019年11月3日
添加
- 现在除了源代码分发(sdist)之外,还提供了二进制分布(wheel)。(拉动16)
0.2.1-2019年10月31日
固定
- 提高对违反ASGI协议的弹性。(拉动11)
0.2.0-2019年10月30日
更改
TraceMiddleware
的tracer
、service
和distributed_tracing
参数现在只是关键字。(拉动10)
添加
- 默认情况下,
TraceMiddleware
的tracer
现在是全局ddtrace.tracer
。(拉动10)
0.1.0-2019年10月23日
初始版本。在
添加
- 添加
TracingMiddleware
。在
- 项目
标签: