You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中排除健康检查端点以避免占满Sentry事务限额

排除Django健康检查端点的Sentry事务追踪

方法一:Sentry控制台配置事务过滤

  • 登录Sentry项目控制台,进入「项目设置」→「安全与隐私」→「事务过滤」
  • 点击「添加规则」,选择「排除事务」
  • 配置匹配规则:
    • 按路径匹配:在「事务名称」中输入*ht/*,覆盖所有以/ht/开头的请求
    • 按视图匹配:若知道健康检查视图的全路径(比如health_check.views.HealthCheckView),直接输入该值进行精准匹配
  • 保存规则后,Sentry将自动忽略这些健康检查事务

方法二:通过Django代码过滤事务

在项目的settings.py或Sentry专属配置文件中,添加事务过滤回调:

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

def before_send_transaction(event, hint):
    request = hint.get("request")
    # 检测请求路径是否属于健康检查端点
    if request and request.path.startswith("/ht/"):
        return None  # 返回None表示不向Sentry发送该事务
    return event

sentry_sdk.init(
    dsn="你的Sentry DSN",
    integrations=[DjangoIntegration()],
    traces_sample_rate=1.0,
    before_send_transaction=before_send_transaction,
)

方法三:采样规则精准排除

如果需要保留少量采样用于验证,可通过采样器设置0%采样率来完全排除:

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

def traces_sampler(sampling_context):
    request = sampling_context.get("request")
    if request and request.path.startswith("/ht/"):
        return 0.0  # 对健康检查请求不采样
    return 1.0  # 其他请求保持全量采样

sentry_sdk.init(
    dsn="你的Sentry DSN",
    integrations=[DjangoIntegration()],
    traces_sampler=traces_sampler,
)

额外提示:若健康检查由监控工具(如K8s探针、Prometheus)发起,也可通过匹配请求的User-Agent或自定义Header来过滤,进一步提升精准度。

内容的提问来源于stack exchange,提问作者Saber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:01:14