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 を取得し続けるなど)、毎回 OnConnectionIssue によって報告されます。 このカテゴリの問題が解決されると (たとえば、この RemoteCluster に通知を送信すると最終的に成功します)、最後に OnConnectionIssue によって報告されたのと同じ issue オブジェクトを使用して OnConnectionIssueResolved が 1 回呼び出されます。 独立したカテゴリの接続の問題とその解決策は、個別に報告されます。

単純な統計

現在、基本的な統計の簡単なサポートを提供しています (将来的には、これをより標準的なテレメトリ メカニズムに置き換える予定です)。 JournaledGrain に対して統計コレクションを有効または無効にするには、次を呼び出します。

void EnableStatsCollection()
void DisableStatsCollection()

統計は、次を呼び出すことによって取得できます。

LogConsistencyStatistics GetStats()