JournaledGrain-diagnostik
Övervaka anslutningsfel
Enligt design är loggkonsekvensprovidrar motståndskraftiga vid anslutningsfel (inklusive både anslutningar till lagring och anslutningar mellan kluster). Men det räcker inte att bara tolerera fel, eftersom program vanligtvis behöver övervaka sådana problem och uppmärksamma dem på en operatör om de är allvarliga.
JournaledGrain-underklasser kan åsidosätta följande metoder för att ta emot meddelanden när anslutningsfel observeras och när dessa fel löses:
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 är en abstrakt klass med flera vanliga fält som beskriver problemet, inklusive hur många gånger det har observerats sedan anslutningen senast lyckades. Den faktiska typen av anslutningsproblem definieras av underklasser. Anslut ionsproblem kategoriseras i typer, till exempel PrimaryOperationFailed eller NotificationFailed, och har ibland extra nycklar (till exempel ) som RemoteClusterytterligare begränsar kategorin.
Om samma problemkategori inträffar flera gånger (till exempel fortsätter vi att få samma NotificationFailed
mål RemoteCluster
) rapporteras den varje gång av OnConnectionIssue . När den här problemkategorin har lösts (till exempel lyckas vi äntligen med att skicka ett meddelande till detta RemoteCluster
) och anropas sedan OnConnectionIssueResolved en gång med samma issue
objekt som senast rapporterades av OnConnectionIssue
. Anslut ionsproblem och deras lösning för oberoende kategorier rapporteras oberoende av varandra.
Enkel statistik
Vi erbjuder för närvarande enkelt stöd för grundläggande statistik (i framtiden kommer vi förmodligen att ersätta detta med en mer standardtelemetrimekanism). Statistikinsamling kan aktiveras eller inaktiveras för en JournaledGrain genom att anropa:
void EnableStatsCollection()
void DisableStatsCollection()
Statistiken kan hämtas genom att anropa:
LogConsistencyStatistics GetStats()