Compartir a través de


diagnósticos de JournaledGrain

Supervisión de errores de conexión

Por diseño, los proveedores de coherencia de registros son resistentes en caso de errores de conexión (incluidas las conexiones al almacenamiento y las conexiones entre clústeres). Sin embargo, simplemente tolerar errores no es suficiente. Normalmente, las aplicaciones necesitan supervisar estos problemas y llamar la atención de un operador si son graves.

JournaledGrain Las subclases pueden invalidar los métodos siguientes para recibir notificaciones cuando se observan errores de conexión y cuando se resuelven estos errores:

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 es una clase abstracta con varios campos comunes que describen el problema, incluido el número de veces que se ha observado desde la última conexión correcta. Las subclases definen el tipo real de problema de conexión. Los problemas de conexión se clasifican en tipos, como PrimaryOperationFailed o NotificationFailed, y a veces tienen claves adicionales (como RemoteCluster) que limitan aún más la categoría.

Si la misma categoría de problema se produce varias veces (por ejemplo, sigues recibiendo un NotificationFailed apuntando al mismo RemoteCluster), Orleans lo informa cada vez a través de OnConnectionIssue. Una vez que se resuelve esta categoría de problema (por ejemplo, finalmente consigues enviar una notificación a ese RemoteCluster), Orleans llama a OnConnectionIssueResolved una vez, con el mismo objeto issue que fue notificado por última vez por OnConnectionIssue. Los problemas de conexión y sus resoluciones para las categorías independientes se notifican de forma independiente.

Estadísticas simples

Actualmente ofrecemos compatibilidad sencilla con estadísticas básicas (en el futuro, es probable que lo reemplacemos por un mecanismo de telemetría más estándar). Puede habilitar o deshabilitar la recopilación de estadísticas para un JournaledGrain mediante una llamada a:

void EnableStatsCollection()
void DisableStatsCollection()

Recupere las estadísticas llamando a:

LogConsistencyStatistics GetStats()