From ea22460fe13a49e87969425f41ecce7f3183ccd9 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 28 May 2020 18:03:11 +0000 Subject: [PATCH] --- .../Controllers/ServerMetricsController.cs | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/server/AyaNova/Controllers/ServerMetricsController.cs b/server/AyaNova/Controllers/ServerMetricsController.cs index 08fccbbc..cca5f261 100644 --- a/server/AyaNova/Controllers/ServerMetricsController.cs +++ b/server/AyaNova/Controllers/ServerMetricsController.cs @@ -61,13 +61,13 @@ namespace AyaNova.Api.Controllers public async Task GetMetrics([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)); + return BadRequest(new ApiErrorResponse(ModelState)); //use specified values or just return all maxRecords ??= MAX_RECORDS_BEFORE_DOWNSAMPLING; @@ -117,13 +117,13 @@ namespace AyaNova.Api.Controllers cpuLabels = dsCPU.Select(z => DateTime.FromOADate(z.Item1)).ToArray(), cpu = dsCPU.Select(z => z.Item2).ToArray(), genAllLabels = dsGen0.Select(z => DateTime.FromOADate(z.Item1)).Union(dsGen1.Select(z => DateTime.FromOADate(z.Item1))).Union(dsGen2.Select(z => DateTime.FromOADate(z.Item1))).ToArray(), - gen0 = dsGen0.Select(z => (int)z.Item2).ToArray(), - gen1 = dsGen1.Select(z => (int)z.Item2).ToArray(), - gen2 = dsGen2.Select(z => (int)z.Item2).ToArray(), + gen0 = dsGen0.Select(z => new MetricInt(DateTime.FromOADate(z.Item1), z.Item2)).ToArray(), + gen1 = dsGen1.Select(z => new MetricInt(DateTime.FromOADate(z.Item1), z.Item2)).ToArray(), + gen2 = dsGen2.Select(z => new MetricInt(DateTime.FromOADate(z.Item1), z.Item2)).ToArray(), memAllLabels = dsAllocated.Select(z => DateTime.FromOADate(z.Item1)).Union(dsWorkingSet.Select(z => DateTime.FromOADate(z.Item1))).Union(dsPrivateBytes.Select(z => DateTime.FromOADate(z.Item1))).ToArray(), - allocated = dsAllocated.Select(z => z.Item2 / MB).ToArray(), - workingSet = dsWorkingSet.Select(z => z.Item2 / MB).ToArray(), - privateBytes = dsPrivateBytes.Select(z => z.Item2 / MB).ToArray() + allocated = dsAllocated.Select(z => new MetricLong(DateTime.FromOADate(z.Item1), z.Item2 / MB)).ToArray(), + workingSet = dsWorkingSet.Select(z => new MetricLong(DateTime.FromOADate(z.Item1), z.Item2 / MB)).ToArray(), + privateBytes = dsPrivateBytes.Select(z =>new MetricLong(DateTime.FromOADate(z.Item1), z.Item2 / MB)).ToArray() } @@ -157,7 +157,30 @@ namespace AyaNova.Api.Controllers //------------ + public class MetricLong + { + public DateTime x { get; set; } + public long y { get; set; } + public MetricLong(DateTime px, double py) + { + x = px; + y = (long)py; + } + } + + public class MetricInt + { + public DateTime x { get; set; } + public int y { get; set; } + public MetricInt(DateTime px, double py) + { + x = px; + y = (int)py; + + } + } + //---------- } } \ No newline at end of file