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

如何使用干净Scope向Sentry转发消息,屏蔽无关运行时信息

问题原因

Sentry Python SDK的上下文信息分为两类:

  • 存储在当前Scope中的自定义数据,可通过scope.clear()清除
  • 由全局集成(如AWS Lambda集成)、内置上下文处理器在事件发送阶段动态附加的运行时信息,这部分数据不存在Scope中,因此scope.clear()无法生效

解决方案

方案1:使用before_send钩子(最可控,推荐)

在SDK初始化时配置before_send回调,直接在事件上报前删除所有非主动添加的字段,仅保留你自定义的内容:

def before_send(event, hint):
    # 清除所有默认附加的上下文字段
    remove_fields = [
        "contexts", "user", "request", "extra", "modules",
        "device", "os", "runtime", "server_name", "release"
    ]
    for field in remove_fields:
        event.pop(field, None)

    # 仅保留你主动设置的标签,可根据实际需求调整允许的标签列表
    allowed_tags = {"priority"}
    if "tags" in event:
        event["tags"] = {k: v for k, v in event["tags"].items() if k in allowed_tags}
    
    return event

sentry_sdk.init(
    dsn,
    environment="name-of-stage",
    before_send=before_send
)

方案2:禁用AWS Lambda自动集成

如果你不需要SDK提供的Lambda监控能力,初始化时直接禁用Lambda集成,避免SDK自动采集Lambda运行时信息:

from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration

sentry_sdk.init(
    dsn,
    environment="name-of-stage",
    integrations=[AwsLambdaIntegration(disabled=True)]
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:42:04