diff --git a/Lite/Services/RemoteCollectorService.cs b/Lite/Services/RemoteCollectorService.cs
index fde3d467..ea1e79a2 100644
--- a/Lite/Services/RemoteCollectorService.cs
+++ b/Lite/Services/RemoteCollectorService.cs
@@ -80,7 +80,7 @@ public partial class RemoteCollectorService
///
/// Connection timeout for SQL Server connections in seconds.
///
- private const int ConnectionTimeoutSeconds = 15;
+ private const int ConnectionTimeoutSeconds = 5;
///
/// Per-call timing fields set by each collector method.
@@ -193,19 +193,28 @@ public async Task RunDueCollectorsAsync(CancellationToken cancellationToken = de
return;
}
- _logger?.LogInformation("Running {CollectorCount} collectors for {ServerCount} servers",
- dueCollectors.Count, enabledServers.Count);
-
var tasks = new List();
+ int skippedOffline = 0;
foreach (var server in enabledServers)
{
+ var serverStatus = _serverManager.GetConnectionStatus(server.Id);
+ if (serverStatus.IsOnline == false)
+ {
+ skippedOffline++;
+ _logger?.LogDebug("Skipping offline server '{Server}'", server.DisplayName);
+ continue;
+ }
+
foreach (var collector in dueCollectors)
{
tasks.Add(RunCollectorAsync(server, collector.Name, cancellationToken));
}
}
+ _logger?.LogInformation("Running {CollectorCount} collectors for {OnlineCount}/{TotalCount} servers ({SkippedCount} offline, skipped)",
+ dueCollectors.Count, enabledServers.Count - skippedOffline, enabledServers.Count, skippedOffline);
+
await Task.WhenAll(tasks);
}