New: Split average response time statistics for queries and grabs

This commit is contained in:
Bogdan
2024-07-21 01:01:03 +03:00
parent 5f3a329ef2
commit 17aa2832ea
5 changed files with 86 additions and 88 deletions

View File

@@ -15,6 +15,7 @@ namespace NzbDrone.Core.IndexerStats
public int IndexerId { get; set; }
public string IndexerName { get; set; }
public int AverageResponseTime { get; set; }
public int AverageGrabResponseTime { get; set; }
public int NumberOfQueries { get; set; }
public int NumberOfGrabs { get; set; }
public int NumberOfRssQueries { get; set; }

View File

@@ -61,13 +61,8 @@ namespace NzbDrone.Core.IndexerStats
.ThenBy(v => v.Id)
.ToArray();
var temp = 0;
var elapsedTimeEvents = sortedEvents
.Where(h => int.TryParse(h.Data.GetValueOrDefault("elapsedTime"), out temp) && h.Data.GetValueOrDefault("cached") != "1")
.Select(_ => temp)
.ToArray();
indexerStats.AverageResponseTime = elapsedTimeEvents.Any() ? (int)elapsedTimeEvents.Average() : 0;
indexerStats.AverageResponseTime = CalculateAverageElapsedTime(sortedEvents.Where(h => h.EventType is HistoryEventType.IndexerRss or HistoryEventType.IndexerQuery).ToArray());
indexerStats.AverageGrabResponseTime = CalculateAverageElapsedTime(sortedEvents.Where(h => h.EventType is HistoryEventType.ReleaseGrabbed).ToArray());
foreach (var historyEvent in sortedEvents)
{
@@ -176,5 +171,17 @@ namespace NzbDrone.Core.IndexerStats
HostStatistics = hostStatsList
};
}
private static int CalculateAverageElapsedTime(History.History[] sortedEvents)
{
var temp = 0;
var elapsedTimeEvents = sortedEvents
.Where(h => int.TryParse(h.Data.GetValueOrDefault("elapsedTime"), out temp) && temp > 0 && h.Data.GetValueOrDefault("cached") != "1")
.Select(_ => temp)
.ToArray();
return elapsedTimeEvents.Any() ? (int)elapsedTimeEvents.Average() : 0;
}
}
}

View File

@@ -88,6 +88,8 @@
"Author": "Author",
"Automatic": "Automatic",
"AutomaticSearch": "Automatic Search",
"AverageGrabs": "Average Grabs",
"AverageQueries": "Average Queries",
"AverageResponseTimesMs": "Average Indexer Response Times (ms)",
"Backup": "Backup",
"BackupFolderHelpText": "Relative paths will be under {appName}'s AppData directory",