This commit is contained in:
2020-05-28 18:03:11 +00:00
parent 6d7fc99962
commit ea22460fe1

View File

@@ -61,13 +61,13 @@ namespace AyaNova.Api.Controllers
public async Task<IActionResult> GetMetrics([FromQuery, Required] DateTime? tsStart, [FromQuery, Required] DateTime? tsEnd, [FromQuery] int? maxRecords) public async Task<IActionResult> 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 //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) if (serverState.IsClosed)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.Metrics)) if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.Metrics))
return StatusCode(403, new ApiNotAuthorizedResponse()); return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid) if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState)); return BadRequest(new ApiErrorResponse(ModelState));
//use specified values or just return all //use specified values or just return all
maxRecords ??= MAX_RECORDS_BEFORE_DOWNSAMPLING; maxRecords ??= MAX_RECORDS_BEFORE_DOWNSAMPLING;
@@ -117,13 +117,13 @@ namespace AyaNova.Api.Controllers
cpuLabels = dsCPU.Select(z => DateTime.FromOADate(z.Item1)).ToArray(), cpuLabels = dsCPU.Select(z => DateTime.FromOADate(z.Item1)).ToArray(),
cpu = dsCPU.Select(z => z.Item2).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(), 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(), gen0 = dsGen0.Select(z => new MetricInt(DateTime.FromOADate(z.Item1), z.Item2)).ToArray(),
gen1 = dsGen1.Select(z => (int)z.Item2).ToArray(), gen1 = dsGen1.Select(z => new MetricInt(DateTime.FromOADate(z.Item1), z.Item2)).ToArray(),
gen2 = dsGen2.Select(z => (int)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(), 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(), allocated = dsAllocated.Select(z => new MetricLong(DateTime.FromOADate(z.Item1), z.Item2 / MB)).ToArray(),
workingSet = dsWorkingSet.Select(z => z.Item2 / MB).ToArray(), workingSet = dsWorkingSet.Select(z => new MetricLong(DateTime.FromOADate(z.Item1), z.Item2 / MB)).ToArray(),
privateBytes = dsPrivateBytes.Select(z => 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;
}
}
//----------
} }
} }