server: add elapsed time to logs (#14153)

This commit is contained in:
Bogdan
2023-03-13 22:27:09 +02:00
committed by GitHub
parent 023f863c01
commit 5f023b2335
2 changed files with 28 additions and 12 deletions

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
@@ -300,16 +301,22 @@ namespace Jackett.Common.Services
public async Task TestIndexer(string name)
{
var stopwatch = Stopwatch.StartNew();
var indexer = GetIndexer(name);
var query = new TorznabQuery
{
QueryType = "search",
SearchTerm = "",
IsTest = true
};
var result = await indexer.ResultsForQuery(query);
_logger.Info($"Test search in {indexer.Name} => Found {result.Releases.Count()} releases");
stopwatch.Stop();
_logger.Info($"Test search in {indexer.Name} => Found {result.Releases.Count()} releases [{stopwatch.ElapsedMilliseconds:0}ms]");
if (!result.Releases.Any())
throw new Exception($"Test search in {indexer.Name} => Found no results while trying to browse this tracker");

View File

@@ -189,6 +189,8 @@ namespace Jackett.Server.Controllers
[HttpGet]
public async Task<IActionResult> Results([FromQuery] ApiSearch requestt)
{
var stopwatch = Stopwatch.StartNew();
//TODO: Better way to parse querystring
var request = new ApiSearch();
@@ -296,10 +298,13 @@ namespace Jackett.Server.Controllers
// Log info
var indexersName = string.Join(", ", manualResult.Indexers.Select(i => i.Name));
var cacheStr = tasks.Where(t => t.Status == TaskStatus.RanToCompletion).Any(t => t.Result.IsFromCache) ? " (from cache)" : "";
stopwatch.Stop();
if (string.IsNullOrWhiteSpace(CurrentQuery.SanitizedSearchTerm))
logger.Info($"Manual search in {indexersName} => Found {manualResult.Results.Count()} releases{cacheStr}");
logger.Info($"Manual search in {indexersName} => Found {manualResult.Results.Count()} releases{cacheStr} [{stopwatch.ElapsedMilliseconds:0}ms]");
else
logger.Info($"Manual search in {indexersName} for {CurrentQuery.GetQueryString()} => Found {manualResult.Results.Count()} releases{cacheStr}");
logger.Info($"Manual search in {indexersName} for {CurrentQuery.GetQueryString()} => Found {manualResult.Results.Count()} releases{cacheStr} [{stopwatch.ElapsedMilliseconds:0}ms]");
return Json(manualResult);
}
@@ -348,6 +353,8 @@ namespace Jackett.Server.Controllers
return Content(xdoc.Declaration.ToString() + Environment.NewLine + xdoc.ToString(), "application/xml", Encoding.UTF8);
}
var stopwatch = Stopwatch.StartNew();
if (CurrentQuery.ImdbID != null)
{
/* We should allow this (helpful in case of aggregate indexers)
@@ -406,13 +413,6 @@ namespace Jackett.Server.Controllers
{
var result = await CurrentIndexer.ResultsForQuery(CurrentQuery);
// Log info
var cacheStr = result.IsFromCache ? " (from cache)" : "";
if (string.IsNullOrWhiteSpace(CurrentQuery.SanitizedSearchTerm))
logger.Info($"Torznab search in {CurrentIndexer.Name} => Found {result.Releases.Count()} releases{cacheStr}");
else
logger.Info($"Torznab search in {CurrentIndexer.Name} for {CurrentQuery.GetQueryString()} => Found {result.Releases.Count()} releases{cacheStr}");
var serverUrl = serverService.GetServerUrl(Request);
var resultPage = new ResultPage(new ChannelInfo
{
@@ -430,9 +430,18 @@ namespace Jackett.Server.Controllers
resultPage.Releases = proxiedReleases.ToList();
var xml = resultPage.ToXml(new Uri(serverUrl));
// Force the return as XML
stopwatch.Stop();
// Log info
var cacheStr = result.IsFromCache ? " (from cache)" : "";
if (string.IsNullOrWhiteSpace(CurrentQuery.SanitizedSearchTerm))
logger.Info($"Torznab search in {CurrentIndexer.Name} => Found {result.Releases.Count()} releases{cacheStr} [{stopwatch.ElapsedMilliseconds:0}ms]");
else
logger.Info($"Torznab search in {CurrentIndexer.Name} for {CurrentQuery.GetQueryString()} => Found {result.Releases.Count()} releases{cacheStr} [{stopwatch.ElapsedMilliseconds:0}ms]");
var xml = resultPage.ToXml(new Uri(serverUrl));
// Force the return as XML
return Content(xml, "application/rss+xml", Encoding.UTF8);
}
catch (IndexerException ex) when (ex.InnerException is TooManyRequestsException tooManyRequestsException)