mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-29 13:27:56 +02:00
server: add elapsed time to logs (#14153)
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -300,16 +301,22 @@ namespace Jackett.Common.Services
|
|||||||
|
|
||||||
public async Task TestIndexer(string name)
|
public async Task TestIndexer(string name)
|
||||||
{
|
{
|
||||||
|
var stopwatch = Stopwatch.StartNew();
|
||||||
|
|
||||||
var indexer = GetIndexer(name);
|
var indexer = GetIndexer(name);
|
||||||
|
|
||||||
var query = new TorznabQuery
|
var query = new TorznabQuery
|
||||||
{
|
{
|
||||||
QueryType = "search",
|
QueryType = "search",
|
||||||
SearchTerm = "",
|
SearchTerm = "",
|
||||||
IsTest = true
|
IsTest = true
|
||||||
};
|
};
|
||||||
|
|
||||||
var result = await indexer.ResultsForQuery(query);
|
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())
|
if (!result.Releases.Any())
|
||||||
throw new Exception($"Test search in {indexer.Name} => Found no results while trying to browse this tracker");
|
throw new Exception($"Test search in {indexer.Name} => Found no results while trying to browse this tracker");
|
||||||
|
@@ -189,6 +189,8 @@ namespace Jackett.Server.Controllers
|
|||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Results([FromQuery] ApiSearch requestt)
|
public async Task<IActionResult> Results([FromQuery] ApiSearch requestt)
|
||||||
{
|
{
|
||||||
|
var stopwatch = Stopwatch.StartNew();
|
||||||
|
|
||||||
//TODO: Better way to parse querystring
|
//TODO: Better way to parse querystring
|
||||||
|
|
||||||
var request = new ApiSearch();
|
var request = new ApiSearch();
|
||||||
@@ -296,10 +298,13 @@ namespace Jackett.Server.Controllers
|
|||||||
// Log info
|
// Log info
|
||||||
var indexersName = string.Join(", ", manualResult.Indexers.Select(i => i.Name));
|
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)" : "";
|
var cacheStr = tasks.Where(t => t.Status == TaskStatus.RanToCompletion).Any(t => t.Result.IsFromCache) ? " (from cache)" : "";
|
||||||
|
|
||||||
|
stopwatch.Stop();
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(CurrentQuery.SanitizedSearchTerm))
|
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
|
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);
|
return Json(manualResult);
|
||||||
}
|
}
|
||||||
@@ -348,6 +353,8 @@ namespace Jackett.Server.Controllers
|
|||||||
return Content(xdoc.Declaration.ToString() + Environment.NewLine + xdoc.ToString(), "application/xml", Encoding.UTF8);
|
return Content(xdoc.Declaration.ToString() + Environment.NewLine + xdoc.ToString(), "application/xml", Encoding.UTF8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var stopwatch = Stopwatch.StartNew();
|
||||||
|
|
||||||
if (CurrentQuery.ImdbID != null)
|
if (CurrentQuery.ImdbID != null)
|
||||||
{
|
{
|
||||||
/* We should allow this (helpful in case of aggregate indexers)
|
/* We should allow this (helpful in case of aggregate indexers)
|
||||||
@@ -406,13 +413,6 @@ namespace Jackett.Server.Controllers
|
|||||||
{
|
{
|
||||||
var result = await CurrentIndexer.ResultsForQuery(CurrentQuery);
|
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 serverUrl = serverService.GetServerUrl(Request);
|
||||||
var resultPage = new ResultPage(new ChannelInfo
|
var resultPage = new ResultPage(new ChannelInfo
|
||||||
{
|
{
|
||||||
@@ -430,9 +430,18 @@ namespace Jackett.Server.Controllers
|
|||||||
|
|
||||||
resultPage.Releases = proxiedReleases.ToList();
|
resultPage.Releases = proxiedReleases.ToList();
|
||||||
|
|
||||||
var xml = resultPage.ToXml(new Uri(serverUrl));
|
stopwatch.Stop();
|
||||||
// Force the return as XML
|
|
||||||
|
|
||||||
|
// 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);
|
return Content(xml, "application/rss+xml", Encoding.UTF8);
|
||||||
}
|
}
|
||||||
catch (IndexerException ex) when (ex.InnerException is TooManyRequestsException tooManyRequestsException)
|
catch (IndexerException ex) when (ex.InnerException is TooManyRequestsException tooManyRequestsException)
|
||||||
|
Reference in New Issue
Block a user