This commit is contained in:
2020-05-25 23:12:19 +00:00
parent f373320a82
commit dd81f7813c

View File

@@ -1,127 +1,127 @@
// using System.IO; using System.IO;
// using System.Threading.Tasks; using System.Threading.Tasks;
// using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
// using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
// using Microsoft.AspNetCore.Routing; using Microsoft.AspNetCore.Routing;
// using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
// using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
// using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
// using AyaNova.Models; using AyaNova.Models;
// using AyaNova.Api.ControllerHelpers; using AyaNova.Api.ControllerHelpers;
// using AyaNova.Biz; using AyaNova.Biz;
// namespace AyaNova.Api.Controllers namespace AyaNova.Api.Controllers
// { {
// /// <summary> /// <summary>
// /// Log files controller /// Server metrics
// /// </summary> /// </summary>
// [ApiController] [ApiController]
// [ApiVersion("8.0")] [ApiVersion("8.0")]
// [Route("api/v{version:apiVersion}/metric")] [Route("api/v{version:apiVersion}/metric")]
// [Authorize] [Authorize]
// public class MetricsController : ControllerBase public class ServerMetricsController : ControllerBase
// { {
// private readonly AyContext ct; private readonly AyContext ct;
// private readonly ILogger<LogFilesController> log; private readonly ILogger<LogFilesController> log;
// private readonly ApiServerState serverState; private readonly ApiServerState serverState;
// /// <summary> /// <summary>
// /// ctor /// ctor
// /// </summary> /// </summary>
// /// <param name="dbcontext"></param> /// <param name="dbcontext"></param>
// /// <param name="logger"></param> /// <param name="logger"></param>
// /// <param name="apiServerState"></param> /// <param name="apiServerState"></param>
// public MetricsController(AyContext dbcontext, ILogger<LogFilesController> logger, ApiServerState apiServerState) public ServerMetricsController(AyContext dbcontext, ILogger<LogFilesController> logger, ApiServerState apiServerState)
// { {
// ct = dbcontext; ct = dbcontext;
// log = logger; log = logger;
// serverState = apiServerState; serverState = apiServerState;
// } }
// /// <summary> /// <summary>
// /// Get metrics as text document /// Get metrics as text document
// /// </summary> /// </summary>
// /// <returns>Snapshot of metrics</returns> /// <returns>Snapshot of metrics</returns>
// [HttpGet("textsnapshot")] [HttpGet("textsnapshot")]
// public async Task<IActionResult> GetMetrics() public async Task<IActionResult> GetMetrics()
// { {
// 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());
// } }
// string sResult = await GetTheMetrics("plain"); string sResult = await GetTheMetrics("plain");
// //Log //Log
// await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct); await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct);
// return Content(sResult); return Content(sResult);
// } }
// /// <summary> /// <summary>
// /// Get metrics as json object /// Get metrics as json object
// /// </summary> /// </summary>
// /// <returns>Snapshot of metrics</returns> /// <returns>Snapshot of metrics</returns>
// [HttpGet("jsonsnapshot")] [HttpGet("jsonsnapshot")]
// public async Task<IActionResult> GetJsonMetrics() public async Task<IActionResult> GetJsonMetrics()
// { {
// 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());
// } }
// string sResult = await GetTheMetrics("json"); string sResult = await GetTheMetrics("json");
// JObject json = JObject.Parse(sResult); JObject json = JObject.Parse(sResult);
// //Log //Log
// await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct); 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));
// } }
// /// <summary> /// <summary>
// /// Get the metrics snapshot /// Get the metrics snapshot
// /// </summary> /// </summary>
// /// <param name="format">Either "json" for json format or "plain" for plaintext format</param> /// <param name="format">Either "json" for json format or "plain" for plaintext format</param>
// /// <returns></returns> /// <returns></returns>
// private async Task<string> GetTheMetrics(string format) private async Task<string> GetTheMetrics(string format)
// { {
// var snapshot = metrics.Snapshot.Get(); var snapshot = metrics.Snapshot.Get();
// var formatters = ((IMetricsRoot)metrics).OutputMetricsFormatters; var formatters = ((IMetricsRoot)metrics).OutputMetricsFormatters;
// string sResult = $"ERROR GETTING METRICS IN {format} FORMAT"; string sResult = $"ERROR GETTING METRICS IN {format} FORMAT";
// foreach (var formatter in formatters) foreach (var formatter in formatters)
// { {
// if (formatter.MediaType.Format == format) if (formatter.MediaType.Format == format)
// { {
// using (var stream = new MemoryStream()) using (var stream = new MemoryStream())
// { {
// await formatter.WriteAsync(stream, snapshot); await formatter.WriteAsync(stream, snapshot);
// sResult = System.Text.Encoding.UTF8.GetString(stream.ToArray()); sResult = System.Text.Encoding.UTF8.GetString(stream.ToArray());
// } }
// } }
// } }
// return sResult; return sResult;
// } }
// //------------ //------------
// } }
// } }