Sdílet prostřednictvím


Diagnostika JournaledGrain

Monitorování chyb připojení

Poskytovatelé konzistence protokolů jsou záměrně odolní při chybách připojení (včetně připojení k úložišti a připojení mezi clustery). Ale pouze tolerance chyb nestačí, protože aplikace obvykle potřebují monitorovat všechny takové problémy, a upozornit je na pozornost operátora, pokud jsou závažné.

Podtřídy JournaledGrain mohou přepsat následující metody, aby dostávaly oznámení, když dojde k chybám připojení a kdy jsou tyto chyby vyřešeny:

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 je abstraktní třída s několika běžnými poli popisujícími problém, včetně toho, kolikrát bylo zjištěno od posledního úspěšného připojení. Skutečný typ problému s připojením je definován podtřídami. Připojení problémy jsou kategorizovány do typů, jako PrimaryOperationFailed je například nebo NotificationFailed, a někdy mají další klíče (napříkladRemoteCluster), které dále zúží kategorii.

Pokud se stejná kategorie problému stane několikrát (například stále dostáváme stejnou RemoteClusterurčitou NotificationFailed kategorii), je hlášena pokaždé OnConnectionIssue . Jakmile se tato kategorie problému vyřeší (například jsme nakonec úspěšní odesláním oznámení RemoteCluster), pak OnConnectionIssueResolved se zavolá jednou se stejným issue objektem OnConnectionIssue, který byl naposledy hlášen . Připojení problémů a jejich řešení pro nezávislé kategorie jsou hlášeny nezávisle.

Jednoduchá statistika

V současné době nabízíme jednoduchou podporu základní statistiky (v budoucnu ji pravděpodobně nahradíme standardním mechanismem telemetrie). Shromažďování statistik lze povolit nebo zakázat pro journaledGrain voláním:

void EnableStatsCollection()
void DisableStatsCollection()

Statistiky lze načíst voláním:

LogConsistencyStatistics GetStats()