diff --git a/server/AyaNova/Controllers/ServerMetricsController.cs b/server/AyaNova/Controllers/ServerMetricsController.cs index 82cdf3f5..e7c666b3 100644 --- a/server/AyaNova/Controllers/ServerMetricsController.cs +++ b/server/AyaNova/Controllers/ServerMetricsController.cs @@ -33,7 +33,7 @@ namespace AyaNova.Api.Controllers private readonly ApiServerState serverState; private const int DEFAULT_MAX_RECORDS = 400; private const long MB = (1024 * 1024); - + /// /// ctor @@ -41,72 +41,17 @@ namespace AyaNova.Api.Controllers /// /// /// - /// - public ServerMetricsController(AyContext dbcontext, ILogger logger, ApiServerState apiServerState) { ct = dbcontext; log = logger; - serverState = apiServerState; + serverState = apiServerState; } - /// - /// - /// - /// - [HttpGet("prof")] - public async Task GetProfileMetrics() - { - using (MiniProfiler.Current.Step("Get Metrics test")) - { - await Task.Delay(1500); - //await Task.CompletedTask; - } - - //MiniProfiler.Current.RenderPlainText() - return Content(MiniProfiler.Current.RenderPlainText()); - - - /* - https://github.com/MiniProfiler/dotnet/blob/95eddc7d57cee9f377419733bf18e76f3e5879e5/src/MiniProfiler/MiniProfilerHandler.cs - - private string ResultsList(HttpContext context) - { - if (!AuthorizeRequest(context, isList: true, message: out string message)) - { - return message; - } - var guids = Options.Storage.List(100); - var lastId = context.Request["last-id"]; - - if (!lastId.IsNullOrWhiteSpace() && Guid.TryParse(lastId, out var lastGuid)) - { - guids = guids.TakeWhile(g => g != lastGuid); - } - - return guids.Reverse() - .Select(g => Options.Storage.Load(g)) - .Where(p => p != null) - .Select(p => new - { - p.Id, - p.Name, - p.ClientTimings, - p.Started, - p.HasUserViewed, - p.MachineName, - p.User, - p.DurationMilliseconds - }).ToJson(); - } - */ - - } - /// /// Get Memory and CPU server metrics for time period specified /// @@ -115,7 +60,7 @@ namespace AyaNova.Api.Controllers /// Optional maximum records to return (downsampled). There is a 400 record maximum fixed default /// Snapshot of metrics [HttpGet("memcpu")] - public async Task GetMemCPUetrics([FromQuery, Required] DateTime? tsStart, [FromQuery, Required] DateTime? tsEnd, [FromQuery] int? maxRecords) + public async Task GetMemCPUMetrics([FromQuery, Required] DateTime? tsStart, [FromQuery, Required] DateTime? tsEnd, [FromQuery] int? maxRecords) { //Note: the date and times are nullable and required so that the regular modelstate code kicks in to ensure they are present if (serverState.IsClosed) @@ -235,75 +180,6 @@ namespace AyaNova.Api.Controllers - /// - /// Get route server metrics for time period specified - /// - /// Start timestamp UTC - /// End timestamp UTC - /// Optional maximum records to return (downsampled). There is a 400 record maximum fixed default - /// Snapshot of metrics - [HttpGet("routes")] - public async Task GetRouteMetrics([FromQuery, Required] DateTime? tsStart, [FromQuery, Required] DateTime? tsEnd, [FromQuery] int? maxRecords) - { - //Note: the date and times are nullable and required so that the regular modelstate code kicks in to ensure they are present - if (serverState.IsClosed) - return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.Metrics)) - return StatusCode(403, new ApiNotAuthorizedResponse()); - if (!ModelState.IsValid) - return BadRequest(new ApiErrorResponse(ModelState)); - - maxRecords ??= DEFAULT_MAX_RECORDS; - - // List DailyMetrics = new List(); - // //touniversal is because the parameters are converted to local time here - // //but then sent to the query as local time as well and not universal time which is what it should be - // DailyMetrics = await ct.MetricDD.AsNoTracking().Where(z => z.t >= ((DateTime)tsStart).ToUniversalTime() && z.t <= ((DateTime)tsEnd).ToUniversalTime()).OrderBy(z => z.t).ToListAsync(); - - - // var dsAttachmentFileCount = DailyMetrics.Select(z => new Tuple(z.t.ToOADate(), z.AttachmentFileCount)).ToList(); - // dsAttachmentFileCount = Util.DataUtil.LargestTriangleThreeBuckets(dsAttachmentFileCount, (int)maxRecords) as List>; - - // var dsAttachmentFileSize = DailyMetrics.Select(z => new Tuple(z.t.ToOADate(), z.AttachmentFileSize)).ToList(); - // dsAttachmentFileSize = Util.DataUtil.LargestTriangleThreeBuckets(dsAttachmentFileSize, (int)maxRecords) as List>; - - // var dsAttachmentFilesAvailableSpace = DailyMetrics.Select(z => new Tuple(z.t.ToOADate(), z.AttachmentFilesAvailableSpace)).ToList(); - // dsAttachmentFilesAvailableSpace = Util.DataUtil.LargestTriangleThreeBuckets(dsAttachmentFilesAvailableSpace, (int)maxRecords) as List>; - - // var dsUtilityFileCount = DailyMetrics.Select(z => new Tuple(z.t.ToOADate(), z.UtilityFileCount)).ToList(); - // dsUtilityFileCount = Util.DataUtil.LargestTriangleThreeBuckets(dsUtilityFileCount, (int)maxRecords) as List>; - - // var dsUtilityFileSize = DailyMetrics.Select(z => new Tuple(z.t.ToOADate(), z.UtilityFileSize)).ToList(); - // dsUtilityFileSize = Util.DataUtil.LargestTriangleThreeBuckets(dsUtilityFileSize, (int)maxRecords) as List>; - - // var dsUtilityFilesAvailableSpace = DailyMetrics.Select(z => new Tuple(z.t.ToOADate(), z.UtilityFilesAvailableSpace)).ToList(); - // dsUtilityFilesAvailableSpace = Util.DataUtil.LargestTriangleThreeBuckets(dsUtilityFilesAvailableSpace, (int)maxRecords) as List>; - - // var ret = new - // { - // attachmentFileCount = dsAttachmentFileCount.Select(z => new MetricLong(DateTime.FromOADate(z.Item1), z.Item2)).ToArray(), - // attachmentFileSize = dsAttachmentFileSize.Select(z => new MetricLong(DateTime.FromOADate(z.Item1), z.Item2 / MB)).ToArray(), - // attachmentFilesAvailableSpace = dsAttachmentFilesAvailableSpace.Select(z => new MetricLong(DateTime.FromOADate(z.Item1), z.Item2 / MB)).ToArray(), - // utilityFileCount = dsUtilityFileCount.Select(z => new MetricLong(DateTime.FromOADate(z.Item1), z.Item2)).ToArray(), - // utilityFileSize = dsUtilityFileSize.Select(z => new MetricLong(DateTime.FromOADate(z.Item1), z.Item2 / MB)).ToArray(), - // utilityFilesAvailableSpace = dsUtilityFilesAvailableSpace.Select(z => new MetricLong(DateTime.FromOADate(z.Item1), z.Item2 / MB)).ToArray() - - // }; - - var ret = new { notimplemented = true }; - - await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct); - return Ok(ApiOkResponse.Response(ret)); - } - - - - - - - - - //------------ public class MetricLong { diff --git a/server/AyaNova/resource/de.json b/server/AyaNova/resource/de.json index f05867b5..37b29b6d 100644 --- a/server/AyaNova/resource/de.json +++ b/server/AyaNova/resource/de.json @@ -1788,5 +1788,6 @@ "FileDate":"Datum", "AvailableSpace":"Verfügbarer Platz", "OpsTestJob":"Testjob senden", - "Copy":"Kopieren" + "Copy":"Kopieren", + "ServerProfiler":"Profiler" } \ No newline at end of file diff --git a/server/AyaNova/resource/en.json b/server/AyaNova/resource/en.json index 00332ff8..57a6cfa8 100644 --- a/server/AyaNova/resource/en.json +++ b/server/AyaNova/resource/en.json @@ -1788,5 +1788,6 @@ "FileDate":"Date", "AvailableSpace":"Available space", "OpsTestJob":"Submit test job", - "Copy":"Copy" + "Copy":"Copy", + "ServerProfiler":"Profiler" } \ No newline at end of file diff --git a/server/AyaNova/resource/es.json b/server/AyaNova/resource/es.json index 9ec1c79f..07c26dba 100644 --- a/server/AyaNova/resource/es.json +++ b/server/AyaNova/resource/es.json @@ -1788,5 +1788,6 @@ "FileDate":"Date", "AvailableSpace":"Espacio disponible", "OpsTestJob":"Enviar trabajo de prueba", - "Copy":"Copiar" + "Copy":"Copiar", + "ServerProfiler":"Profiler" } \ No newline at end of file diff --git a/server/AyaNova/resource/fr.json b/server/AyaNova/resource/fr.json index a7a2a86e..d4b11143 100644 --- a/server/AyaNova/resource/fr.json +++ b/server/AyaNova/resource/fr.json @@ -1788,5 +1788,6 @@ "FileDate":"Date", "AvailableSpace":"Espace disponible", "OpsTestJob":"Soumettre le travail de test", - "Copy":"Copier" + "Copy":"Copier", + "ServerProfiler":"Profileur" } \ No newline at end of file