This commit is contained in:
@@ -68,9 +68,6 @@ namespace AyaNova.Api.Controllers
|
||||
return StatusCode(403, new ApiNotAuthorizedResponse());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//use specified values or just return all
|
||||
maxRecords ??= MAX_RECORDS_BEFORE_DOWNSAMPLING;
|
||||
|
||||
@@ -78,17 +75,14 @@ namespace AyaNova.Api.Controllers
|
||||
//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
|
||||
MinuteMetrics = await ct.MetricMM.AsNoTracking().Where(z => z.t >= tsStart.ToUniversalTime() && z.t <= tsEnd.ToUniversalTime()).OrderBy(z => z.t).ToListAsync();
|
||||
|
||||
//var v=await ct.MetricMM.AsNoTracking().Where(z => z.t >= tsStart.ToUniversalTime() && z.t <= tsEnd.ToUniversalTime()).OrderByDescending(z => z.t).ToListAsync();
|
||||
//Log
|
||||
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct);
|
||||
|
||||
|
||||
|
||||
//Downsample? This should work for longer time period metrics because the minute ones are the greatest quantity
|
||||
//Downsample
|
||||
if (maxRecords < MinuteMetrics.Count)
|
||||
{
|
||||
//yes, so need to return individual labels and downsampled data as they wont' sync anymore
|
||||
|
||||
{
|
||||
var dsCPU = MinuteMetrics.Select(z => new Tuple<double, double>(z.t.ToOADate(), z.CPU)).ToList();
|
||||
dsCPU = Util.DataUtil.LargestTriangleThreeBuckets(dsCPU, (int)maxRecords) as List<Tuple<double, double>>;
|
||||
|
||||
@@ -122,18 +116,12 @@ 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(),
|
||||
// gen0Labels = dsGen0.Select(z => DateTime.FromOADate(z.Item1)).ToArray(),
|
||||
gen0 = dsGen0.Select(z => (int)z.Item2).ToArray(),
|
||||
// gen1Labels = dsGen1.Select(z => DateTime.FromOADate(z.Item1)).ToArray(),
|
||||
gen1 = dsGen1.Select(z => (int)z.Item2).ToArray(),
|
||||
// gen2Labels = dsGen2.Select(z => DateTime.FromOADate(z.Item1)).ToArray(),
|
||||
gen2 = dsGen2.Select(z => (int)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(),
|
||||
// allocatedLabels = dsAllocated.Select(z => DateTime.FromOADate(z.Item1)).ToArray(),
|
||||
allocated = dsAllocated.Select(z => z.Item2 / MB).ToArray(),
|
||||
//workingSetLabels = dsWorkingSet.Select(z => DateTime.FromOADate(z.Item1)).ToArray(),
|
||||
workingSet = dsWorkingSet.Select(z => z.Item2 / MB).ToArray(),
|
||||
// privateBytesLabels = dsPrivateBytes.Select(z => DateTime.FromOADate(z.Item1)).ToArray(),
|
||||
privateBytes = dsPrivateBytes.Select(z => z.Item2 / MB).ToArray()
|
||||
|
||||
}
|
||||
@@ -149,9 +137,8 @@ namespace AyaNova.Api.Controllers
|
||||
{
|
||||
DownSampled = false,
|
||||
MetricMM = new
|
||||
{
|
||||
//labels = MinuteMetrics.Select(z => z.t.ToUniversalTime()).ToArray(),//db is in UTC, ef core retrieves as if it was local
|
||||
labels = MinuteMetrics.Select(z => z.t).ToArray(),//db is in UTC, ef core retrieves as if it was local
|
||||
{
|
||||
labels = MinuteMetrics.Select(z => z.t).ToArray(),
|
||||
cpu = MinuteMetrics.Select(z => z.CPU).ToArray(),
|
||||
gen0 = MinuteMetrics.Select(z => z.Gen0).ToArray(),
|
||||
gen1 = MinuteMetrics.Select(z => z.Gen1).ToArray(),
|
||||
|
||||
Reference in New Issue
Block a user