跳转到主要内容

django-tracer 为您提供了一种简单的方法,为每个请求生成并使用一个UUID

项目描述

django-tracer

Build Status

为所有Django请求生成一个UUID,用于日志记录和错误报告,以实现可追溯性。

为什么?

您为什么想使用这个小小的东西呢?好吧,在一个容器化、编排、微服务世界中,特别是有集中式日志的情况下,往往很难弄清楚事情出错的地方。

这个小小的中间件会将UUID添加到正常的Django请求对象中,您可以使用它来添加到以下内容:

  • 所有日志消息
  • 错误报告到Sentry/Rollbar等
  • 传递给其他内部服务

除了生成和附加UUID外,中间件还自动将UUID添加到响应头中,作为X-Request-ID,这样任何消费您响应的人,比如作为API,都可以用它作为错误报告的参考点。

安装

首先,您需要通过pip安装它

pip install django-tracer

然后将tracer添加到设置中的INSTALLED_APPS

然后将tracer.middleware.RequestID添加到设置中的MIDDLEWARE顶部

与标准日志的使用

import logging

from django.http import HttpResponse

logger = logging.getLogger(__name__)

def some_view(request):
    """ simple log example """
    logger.info("Whee!", extra={'request_id': request.id})
    return HttpResponse("example content")

使用请求ID的其他方法

您可能还想在几个其他地方使用ID以提高可追溯性

  • 将其作为参数传递给您生成的任何Celery任务,以便在传入请求和从它生成的任务之间建立清晰的路径
  • 将其作为头部或参数传递给其他内部API或服务
  • 将其附加到绑定的 structlog 对象,以确保它在日志输出中始终包含

谢谢!

特别感谢 Rolf Håvard Blindheim,他慷慨地将名称 django-tracer 转让我们,使我们能够将其用于此项目。

需要帮助吗?

REVSYS 可以为您的 Python、Django 和基础设施项目提供帮助。如果您对此项目有任何问题,请打开 GitHub 问题。如果您喜欢我们并想跟踪我们的动态,这里就是您可以在网上找到我们的地方

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

django-tracer-0.9.3.tar.gz (3.5 kB 查看散列)

上传时间 源代码

支持者

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