From dd81f7813c3b93aa254bb976e2c5e65ec59b8a38 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 25 May 2020 23:12:19 +0000 Subject: [PATCH] --- .../AyaNova/Controllers/MetricsController.cs | 200 +++++++++--------- 1 file changed, 100 insertions(+), 100 deletions(-) diff --git a/server/AyaNova/Controllers/MetricsController.cs b/server/AyaNova/Controllers/MetricsController.cs index 581a135c..88f604b8 100644 --- a/server/AyaNova/Controllers/MetricsController.cs +++ b/server/AyaNova/Controllers/MetricsController.cs @@ -1,127 +1,127 @@ -// using System.IO; -// using System.Threading.Tasks; -// using Microsoft.AspNetCore.Http; -// using Microsoft.AspNetCore.Mvc; -// using Microsoft.AspNetCore.Routing; -// using Microsoft.AspNetCore.Authorization; -// using Microsoft.Extensions.Logging; -// using Newtonsoft.Json.Linq; +using System.IO; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Routing; +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.Logging; +using Newtonsoft.Json.Linq; -// using AyaNova.Models; -// using AyaNova.Api.ControllerHelpers; -// using AyaNova.Biz; +using AyaNova.Models; +using AyaNova.Api.ControllerHelpers; +using AyaNova.Biz; -// namespace AyaNova.Api.Controllers -// { +namespace AyaNova.Api.Controllers +{ -// /// -// /// Log files controller -// /// -// [ApiController] -// [ApiVersion("8.0")] -// [Route("api/v{version:apiVersion}/metric")] -// [Authorize] -// public class MetricsController : ControllerBase -// { -// private readonly AyContext ct; -// private readonly ILogger log; -// private readonly ApiServerState serverState; + /// + /// Server metrics + /// + [ApiController] + [ApiVersion("8.0")] + [Route("api/v{version:apiVersion}/metric")] + [Authorize] + public class ServerMetricsController : ControllerBase + { + private readonly AyContext ct; + private readonly ILogger log; + private readonly ApiServerState serverState; -// /// -// /// ctor -// /// -// /// -// /// -// /// + /// + /// ctor + /// + /// + /// + /// -// public MetricsController(AyContext dbcontext, ILogger logger, ApiServerState apiServerState) -// { -// ct = dbcontext; -// log = logger; -// serverState = apiServerState; -// } + public ServerMetricsController(AyContext dbcontext, ILogger logger, ApiServerState apiServerState) + { + ct = dbcontext; + log = logger; + serverState = apiServerState; + } -// /// -// /// Get metrics as text document -// /// -// /// Snapshot of metrics -// [HttpGet("textsnapshot")] -// public async Task GetMetrics() -// { -// if (serverState.IsClosed) -// return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + /// + /// Get metrics as text document + /// + /// Snapshot of metrics + [HttpGet("textsnapshot")] + public async Task GetMetrics() + { + 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 (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.Metrics)) + { + return StatusCode(403, new ApiNotAuthorizedResponse()); + } -// string sResult = await GetTheMetrics("plain"); + string sResult = await GetTheMetrics("plain"); -// //Log -// await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct); + //Log + await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct); -// return Content(sResult); -// } + return Content(sResult); + } -// /// -// /// Get metrics as json object -// /// -// /// Snapshot of metrics -// [HttpGet("jsonsnapshot")] -// public async Task GetJsonMetrics() -// { -// if (serverState.IsClosed) -// return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + /// + /// Get metrics as json object + /// + /// Snapshot of metrics + [HttpGet("jsonsnapshot")] + public async Task GetJsonMetrics() + { + 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 (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.Metrics)) + { + return StatusCode(403, new ApiNotAuthorizedResponse()); + } -// string sResult = await GetTheMetrics("json"); -// JObject json = JObject.Parse(sResult); + string sResult = await GetTheMetrics("json"); + JObject json = JObject.Parse(sResult); -// //Log -// await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct); + //Log + await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct); -// return Ok(ApiOkResponse.Response(json)); -// } + return Ok(ApiOkResponse.Response(json)); + } -// /// -// /// Get the metrics snapshot -// /// -// /// Either "json" for json format or "plain" for plaintext format -// /// -// private async Task GetTheMetrics(string format) -// { -// var snapshot = metrics.Snapshot.Get(); + /// + /// Get the metrics snapshot + /// + /// Either "json" for json format or "plain" for plaintext format + /// + private async Task GetTheMetrics(string format) + { + var snapshot = metrics.Snapshot.Get(); -// var formatters = ((IMetricsRoot)metrics).OutputMetricsFormatters; -// string sResult = $"ERROR GETTING METRICS IN {format} FORMAT"; + var formatters = ((IMetricsRoot)metrics).OutputMetricsFormatters; + string sResult = $"ERROR GETTING METRICS IN {format} FORMAT"; -// foreach (var formatter in formatters) -// { -// if (formatter.MediaType.Format == format) -// { -// using (var stream = new MemoryStream()) -// { -// await formatter.WriteAsync(stream, snapshot); -// sResult = System.Text.Encoding.UTF8.GetString(stream.ToArray()); -// } -// } -// } + foreach (var formatter in formatters) + { + if (formatter.MediaType.Format == format) + { + using (var stream = new MemoryStream()) + { + await formatter.WriteAsync(stream, snapshot); + sResult = System.Text.Encoding.UTF8.GetString(stream.ToArray()); + } + } + } -// return sResult; -// } + return sResult; + } -// //------------ + //------------ -// } -// } \ No newline at end of file + } +} \ No newline at end of file