diff --git a/server/AyaNova/Controllers/MetricsController.cs b/server/AyaNova/Controllers/MetricsController.cs deleted file mode 100644 index 88f604b8..00000000 --- a/server/AyaNova/Controllers/MetricsController.cs +++ /dev/null @@ -1,127 +0,0 @@ -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; - - -namespace AyaNova.Api.Controllers -{ - - /// - /// 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 - /// - /// - /// - /// - - 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)); - - if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.Metrics)) - { - return StatusCode(403, new ApiNotAuthorizedResponse()); - } - - string sResult = await GetTheMetrics("plain"); - - //Log - await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct); - - 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)); - - if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.Metrics)) - { - return StatusCode(403, new ApiNotAuthorizedResponse()); - } - - 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); - - 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(); - - 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()); - } - } - } - - return sResult; - } - - - //------------ - - - } -} \ No newline at end of file