diff --git a/Opserver/Views/SQL/Servers.AvailabilityGroup.cshtml b/Opserver/Views/SQL/Servers.AvailabilityGroup.cshtml index c31e909aa..e599ad49b 100644 --- a/Opserver/Views/SQL/Servers.AvailabilityGroup.cshtml +++ b/Opserver/Views/SQL/Servers.AvailabilityGroup.cshtml @@ -11,16 +11,26 @@ @helper RenderDBIssues(SQLNode.AGReplica r) { if (r.SynchronizationHealth != SynchronizationHealths.Healthy) { - var unhealthy = r.Databases.Where(db => db.SynchronizationHealth.HasValue && db.SynchronizationHealth != SynchronizationHealths.Healthy).ToList(); + var unhealthy = r.Databases.Where(db => db.SynchronizationHealth.HasValue && db.SynchronizationHealth != SynchronizationHealths.Healthy).ToList(); + var replica = Model.Node?.Cluster?.GetNode(r.ReplicaServerName); + var remoteAgData = replica?.AvailabilityGroups.SafeData(true).First(g => g.Name == Model.Name); + var remoteDBs = remoteAgData?.LocalReplica?.Databases?.ToDictionary(db => db.DatabaseName) ?? new Dictionary(); if (r.Databases.Count > unhealthy.Count) { - foreach (var db in unhealthy.OrderBy(u => u.DatabaseName)) + foreach (var db in unhealthy.OrderByDescending(u => remoteDBs.TryGetValue(u.DatabaseName, out var rdb) ? rdb.SynchronizationState : u.SynchronizationState).ThenBy(u => u.DatabaseName)) { + var remoteDB = remoteDBs.TryGetValue(db.DatabaseName, out var rdb) ? rdb : db;
+Sync (@replica.Name): @(remoteDB.SynchronizationState.HasValue ? remoteDB.SynchronizationState.Value.AsString(EnumFormat.Description) : "Unknown") +Health (@replica.Name): @(remoteDB.SynchronizationHealth.HasValue ? remoteDB.SynchronizationHealth.Value.AsString(EnumFormat.Description) : "Unknown") +} @if (db.SuspendReason.HasValue) { -Suspension Reason: @db.SuspendReason.Value.AsString(EnumFormat.Description)}">@db.IconSpan() @db.MonitorStatus.Span(db.DatabaseName)
+Suspension Reason: @db.SuspendReason.Value.AsString(EnumFormat.Description)}">@db.IconSpan() @db.MonitorStatus.Span(db.DatabaseName) + (@(remoteDB.SynchronizationState.HasValue ? remoteDB.SynchronizationState.Value.AsString(EnumFormat.Description) : "Unknown")) + } } else