feat(api): StatRobotState в БД записывается ip робота

This commit is contained in:
Mikhail Trubnikov
2024-07-22 16:26:32 +10:00
parent b392a8dc7b
commit ec5038cdf0
2 changed files with 10 additions and 2 deletions

View File

@@ -5,5 +5,7 @@
public DateTimeOffset Date { get; set; } public DateTimeOffset Date { get; set; }
public int IsUp { get; set; } public int IsUp { get; set; }
public string? Ip { get; set; }
} }
} }

View File

@@ -9,6 +9,7 @@ using PARR.API.Contracts.V1.Requests.Queries;
using PARR.API.Contracts.V1.Responses.Base; using PARR.API.Contracts.V1.Responses.Base;
using PARR.API.Contracts.V1.Responses.Statistics; using PARR.API.Contracts.V1.Responses.Statistics;
using PARR.API.Controllers.V1.Base; using PARR.API.Controllers.V1.Base;
using PARR.API.Services.Interfaces;
using PARR.API.Settings; using PARR.API.Settings;
using PARR.Constants; using PARR.Constants;
using PARR.DAL.InfluxDbServices; using PARR.DAL.InfluxDbServices;
@@ -26,18 +27,21 @@ namespace PARR.API.Controllers.V1.Statistics
private readonly IValidator<RobotStateRequest> validator; private readonly IValidator<RobotStateRequest> validator;
private readonly InfluxDbSettings influxDbSettings; private readonly InfluxDbSettings influxDbSettings;
private readonly MonitoringSettings monitoringSettings; private readonly MonitoringSettings monitoringSettings;
private readonly IClientService clientService;
public StatRobotStateController( public StatRobotStateController(
IInfluxDbService influxDbService, IInfluxDbService influxDbService,
IValidator<RobotStateRequest> validator, IValidator<RobotStateRequest> validator,
InfluxDbSettings influxDbSettings, InfluxDbSettings influxDbSettings,
MonitoringSettings monitoringSettings MonitoringSettings monitoringSettings,
IClientService clientService
) )
{ {
this.influxDbService = influxDbService; this.influxDbService = influxDbService;
this.validator = validator; this.validator = validator;
this.influxDbSettings = influxDbSettings; this.influxDbSettings = influxDbSettings;
this.monitoringSettings = monitoringSettings; this.monitoringSettings = monitoringSettings;
this.clientService = clientService;
} }
@@ -81,7 +85,8 @@ namespace PARR.API.Controllers.V1.Statistics
table.Records.Select(record => new StatRobotStateResponse table.Records.Select(record => new StatRobotStateResponse
{ {
Date = (DateTimeOffset)record.GetTimeInDateTime(), Date = (DateTimeOffset)record.GetTimeInDateTime(),
IsUp = int.Parse(record.GetValue()?.ToString() ?? "0") IsUp = int.Parse(record.GetValue()?.ToString() ?? "0"),
Ip = record.GetValueByKey("ip")?.ToString()
}) })
); );
}, influxDbSettings.Robots!.Token); }, influxDbSettings.Robots!.Token);
@@ -112,6 +117,7 @@ namespace PARR.API.Controllers.V1.Statistics
{ {
var point = PointData.Measurement("robots") var point = PointData.Measurement("robots")
.Tag("robot", request.Robot.ToString()) .Tag("robot", request.Robot.ToString())
.Tag("ip", clientService.GetClientIp()?.ToString())
//.Field("robot", (int)request.Robot) //.Field("robot", (int)request.Robot)
.Field("isUp", 1) .Field("isUp", 1)
.Timestamp(DateTime.UtcNow, WritePrecision.Ns); .Timestamp(DateTime.UtcNow, WritePrecision.Ns);