2

我正在使用 errbit 0-3 stable 并且它的工作非常好。

但问题是有时它会开始向我发送垃圾邮件,发送相同的错误但不同的哈希值,如下所示:

Mongo::Error::NoServerAvailable: No server is available matching preference: #<Mongo::ServerSelector::Primary:0x007fdba42891f0 @tag_sets=[], @options={:database=>"db_test", :max_pool_size=>200, :wait_queue_timeout=>5, :write=>{"w"=>0}}, @server_selection_timeout=30>


Mongo::Error::NoServerAvailable: No server is available matching preference: #<Mongo::ServerSelector::Primary:0x007fdbb8148e30 @tag_sets=[], @options={:database=>"db_test", :max_pool_size=>200, :wait_queue_timeout=>5, :write=>{"w"=>0}}, @server_selection_timeout=30>

我如何过滤它们,以便仅将它们分组为 1 个错误?

4

1 回答 1

1

有两种方法可以解决这个问题。

选项 1) 在将错误消息发送到 Errbit 之前,捕获应用程序中的错误并清除错误消息的唯一性。

选项 2) Errbit 支持可配置的“指纹”,因此您实际上可以告诉 Errbit 哪些属性有助于错误通知的唯一性。这可以在系统范围内或在单个 Errbit 应用程序上完成。在您的情况下,您可以将错误消息作为错误指纹的一部分关闭。

来自 Errbit 自述文件:

Errbit 将通知安排到错误组中的方式是可配置的。默认情况下,Errbit 使用通知的错误类别、错误消息、完整的回溯、组件(或控制器)、操作和环境名称为每个通知生成唯一的指纹。具有相同指纹的通知在 UI 中显示为相同错误的不同出现,具有不同指纹的通知显示为单独的错误。

更改指纹识别器(在“配置”菜单下)适用于所有应用程序,并且更改仅影响更改后到达的通知。如果要对旧通知进行重新指纹,可以运行 rake errbit:notice_refingerprint。

于 2018-03-03T20:34:52.207 回答