JournaledGrain 诊断工具

监视连接错误

根据设计,日志一致性提供程序在连接错误(包括与存储和群集之间的连接)下具有复原能力。 但是,仅仅容忍错误是不够的。 应用程序通常需要监视此类问题,并在严重时引起作员的注意。

JournaledGrain 子类可以重写以下方法,以在观察到连接错误时以及这些错误解决时接收通知:

protected override void OnConnectionIssue(
    ConnectionIssue issue)
{
    /// handle the observed error described by issue
}

protected override void OnConnectionIssueResolved(
    ConnectionIssue issue)
{
    /// handle the resolution of a previously reported issue
}

ConnectionIssue 是一个抽象类,其中包含描述问题的几个常见字段,包括自上次成功连接以来观察到的次数。 子类定义连接问题的实际类型。 连接问题分为类型,例如 PrimaryOperationFailedNotificationFailed,有时有额外的键(例如 RemoteCluster),进一步缩小类别范围。

如果同一类别的问题多次发生(例如,你不断获得相同的 RemoteCluster目标的 NotificationFailed),Orleans 将每次通过 OnConnectionIssue 报告此问题。 一旦这类问题得到解决(例如,您终于成功地向RemoteCluster发送了通知),Orleans会调用OnConnectionIssueResolved一次,使用最后由OnConnectionIssue报告的相同issue对象。 独立类别的连接问题及其解决方法将独立报告。

简单统计信息

我们目前提供对基本统计信息的简单支持(将来,我们可能会用更标准的遥测机制来取代这一点)。 可以通过调用以下方法来启用或禁用 JournaledGrain 的统计信息收集:

void EnableStatsCollection()
void DisableStatsCollection()

通过调用来检索统计信息:

LogConsistencyStatistics GetStats()