“异常成功发送到服务器”事件

Posted

技术标签:

【中文标题】“异常成功发送到服务器”事件【英文标题】:"Exception succesfully sent to server" event 【发布时间】:2021-11-25 19:35:55 【问题描述】:

我正在尝试了解是否有办法知道通知是否正确发送到 Sentry 云。 原因是向用户显示反馈。

我正在使用这个指令:

SentryId id = SentrySdk.CaptureException(ex);

无论是否将通知发送到云端(例如:没有互联网连接),我都没有看到任何异常或通知被触发。

【问题讨论】:

【参考方案1】:

如果失败id 将等于Guid.Empty。如果成功,它将有一个非空的GuidSentryIdGuid 周围的一个瘦包装结构,并有一个隐式运算符到 Guid

至于日志记录。 Sentry 具有Diagnostic Logger 的概念,它应该允许您捕获有关这些故障的更多详细信息

【讨论】:

不,如果您处于离线状态,则 SentryId 是有效的 GUID。缓存在文件系统上,但并未真正发送到云端。【参考方案2】:

补充西蒙的答案:Guid.EmptySentryId 部分将告诉您事件是否已排队等待提交。 这意味着,如果 SDK 未初始化,事件被您的 BeforeSend 钩子丢弃,或者队列已满,例如,您将返回 Guid.Empty

如果 SDK 已正确初始化并且事件已排队等待后台提交,您将取回该事件的 Id。

现在,事件可能会在稍后被丢弃,例如由于速率限制、超出配额等。也有可能事件被 Sentry 接收,但由于服务器上配置的入站过滤器而被丢弃或者该事件所属的问题被标记为“丢弃并忽略”。因此,SDK 中没有一种方法可以确定“事件应该在仪表板中”,如果由于某种原因它不是,并且您希望它是,正如@Simon 建议的那样,最好从 SDK 诊断开始记录以检查事件是否首先进入服务器。

【讨论】:

以上是关于“异常成功发送到服务器”事件的主要内容,如果未能解决你的问题,请参考以下文章

Redis事件

redis-事件

redis 系列18 事件

Redis实现之事件

ASP.NET 事件处理

服务器发送的事件和 php - 啥触发服务器上的事件?