gpt4 book ai didi

python - Sentry 不断返回不存在的事件 ID

转载 作者:行者123 更新时间:2023-11-30 23:13:53 25 4
gpt4 key购买 nike

我们有一个 django 项目。我们使用 Sentry 收集有关 HTTP 500 错误的信息。

Sentry 可以选择将事件信息添加到请求 header ,以便您可以在应用程序中处理它。

所以,我们有一个 tastypie 的 mixin,看起来像这样:

class Sentry500Mixin(object):
def _handle_500(self, request, exception):

if not isinstance(exception, TastypieError) and not settings.DEBUG:
sentry_exception_handler(request=request)
data = {
'error_message': 'Sorry, this request could not be processed.',
'incident': getattr(request, 'sentry', None)
}
return self.error_response(request, data, response_class=HttpApplicationError)

else:
return super(Sentry500Mixin, self)._handle_500(request, exception)

当发生 500 错误时,我们会得到如下响应:

 {"error_message": "Sorry, this request could not be processed.", 
"incident": {"id": "3459b30f87ea4116a0a2855be576bbb3", "project_id": "5"}}

问题是,如果您获取此事件 ID 并前往 Sentry,则很有可能不会出现此 id 的事件。没有类似的事件。我确信我正在检查正确的项目,如果事件没有创建,从逻辑上讲,Sentry 无法向您返回 ID,但它确实返回了。

非常感谢任何帮助和想法。谢谢。

最佳答案

正如 @erik-e 在评论中解释的那样,event_id 在客户端生成。

UDP 协议(protocol)没有任何保证。

您使用UDP协议(protocol)吗?如果是,event_id 不一定映射到 Sentry 中的实际事件。路由器/交换机/网络设备可能丢失了您的数据包。对于 UDP,无法保证交付、排序或重复数据包。

我假设 Sentry 的 HTTP/HTTPS 协议(protocol)是通过 TCP 实现的。

解决方案:

  • 仔细检查防火墙规则,
  • 尝试其他协议(protocol)并确保 Sentry 服务器没有问题。

为什么要使用UDP?

常见的一些原因:

  • 没有握手=更快,
  • 无连接=即使连接中断也没有问题(例如重新启动 Sentry 服务器)。

关于python - Sentry 不断返回不存在的事件 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29079185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com