【问题标题】:Change grouping of an specific exception in sentry (django)更改哨兵中特定异常的分组(django)
【发布时间】:2017-09-04 15:17:47
【问题描述】:


我将 raven 与我的 django Web 应用程序一起使用,并且我想防止异常进行过度分组,如文档 here 中所述,同时保留其他异常的默认行为。
更具体地说,我的应用程序中有这样的代码 sn-p:

raise Exception('Nothing done for catalog #' + str(catalog_id))

在哨兵中,我看到不同目录的异常分组在一起,因为它根据堆栈跟踪将它们汇总起来。正如我从文档中了解到的那样,我应该使用类似的东西:

client.captureException(fingerprint=['{{ default }}', str(catalog_id)])

但我不知道应该在我的代码中的哪个位置使用它。

【问题讨论】:

  • 为什么要防止“过度分组”?您是否希望在每次遇到“Nothing done for catalog”异常时收到提醒?
  • 是的。我希望哨兵列表中显示的异常按catalog_id分类
  • 我实际上建议让 Sentry 组(正确),然后用 catalog_id 标记每个事件。然后,您将能够在问题视图侧边栏和标签视图中看到分布。
  • 我应该这样做吗:client.captureException(tags={'catalog_id': str(catalog_id)})
  • 是的,应该可以。

标签: python django sentry raven


【解决方案1】:

client.captureException(fingerprint=['{{ default }}', str(catalog_id)])except 子句中使用。

try:
    raise Exception('Nothing done for catalog #' + str(catalog_id))
except Exception:
    client.captureException(fingerprint=['{{ default }}', str(catalog_id)])

参考:

【讨论】:

  • 我对捕获所有异常的默认行为感到困惑......我怀疑这样做会导致此异常的双重报告
  • try 块中,您通常会执行可能引发异常的操作。如果您只想将KeyError 异常分组,您可以将其捕获到它自己的组中,并将其他异常放入默认组中
猜你喜欢
  • 2019-11-10
  • 2019-02-16
  • 2014-10-05
  • 1970-01-01
  • 2019-07-11
  • 2016-10-22
  • 1970-01-01
  • 2019-05-28
  • 1970-01-01
相关资源
最近更新 更多