跳转到主要内容

非官方的ddtrace对ASGI应用程序和框架的集成

项目描述

ddtrace-asgi

Build Status Coverage Package version

非官方的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

更改

  • TraceMiddlewaretracerservicedistributed_tracing 参数现在是关键字参数。(Pull #10)

新增

  • TraceMiddlewaretracer 默认现在是全局的 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 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面