@page "/" @inject InsightRepository Repository @inject Display Display SQLInsight Pro

Overblik

Status for alle overvågede SQL Server-instanser.

@if (_instances.Count == 0) {

Der er endnu ingen data. Tilføj en server under Servere og databaser, og tjek, at SQLInsight Agent kører.

} else {
@_monitored.Countinstanser@(_paused > 0 ? $" (+{_paused} på pause)" : string.Empty)
@_monitored.Sum(i => i.Critical)kritiske fund
@_monitored.Sum(i => i.High)høje fund
@_monitored.Count(i => i.IsFailing)kan ikke nås
@_monitored.Sum(i => i.NotMeasurable)regler ikke målbare
@_monitored.Sum(i => i.ManualChecks)skal tjekkes manuelt

Instanser

sorteret efter alvor
@foreach (var i in _instances.OrderBy(i => i.Paused).ThenByDescending(i => i.IsFailing).ThenByDescending(i => i.WorstSeverity ?? (Severity)(-1)).ThenBy(i => i.Name)) { }
StatusInstansVersionFundIkke målbarSidst set
@if (i.Paused) { Sat på pause } else if (i.IsFailing) { Fejler } else { } @i.Name
@i.ServerName
@(i.ProductVersion is null ? "–" : Display.Release(i.ProductVersion, i.EngineEdition))
@i.ProductVersion @i.ProductLevel @i.ProductUpdateLevel
@if (i.Paused) { sidste data før pausen } @if (i.Critical > 0) { } @if (i.High > 0) { } @if (i.Medium > 0) { } @if (i.Low > 0) { }
@i.NotMeasurable @Display.Ago(i.LastSeenAt)

Kritiske og høje fund

Se alle fund
} @code { private IReadOnlyList _instances = []; private IReadOnlyList _monitored = []; private int _paused; private IReadOnlyList _active = []; private IReadOnlyList _urgent = []; protected override async Task OnInitializedAsync() { // Removed instances are left out (their history stays for reports); paused ones are shown, marked, but do not // count in the totals, the urgent findings or the privilege alert. _instances = (await Repository.GetInstancesAsync()).Where(i => !i.Removed).ToList(); _monitored = _instances.Where(i => i.IsMonitored).ToList(); _paused = _instances.Count(i => i.Paused); var monitoredIds = _monitored.Select(i => i.InstanceId).ToHashSet(); _active = (await Repository.GetActiveFindingsAsync()).Where(f => monitoredIds.Contains(f.InstanceId)).ToList(); _urgent = _active.Where(f => f.Severity >= Severity.High).ToList(); } }