Added Expected to push a percentage

This commit is contained in:
Mike Phares 2025-04-05 14:19:33 -07:00
parent 3e9b6a8211
commit 6eb36f44c5
3 changed files with 8 additions and 3 deletions

View File

@ -59,10 +59,12 @@ internal static partial class HelperGatusToMona {
private static void SendPerformanceMessage(AppSettings appSettings, ILogger<Worker> logger, ReadOnlyCollection<string> successMatches, CancellationToken cancellationToken) {
string performanceName = string.Concat(appSettings.MonAConfiguration.Resource, appSettings.MonAConfiguration.Suffix);
double v = successMatches.Count / appSettings.MonAConfiguration.Expected;
double value = Math.Round(v, 3) * 100;
Task<HttpResponseMessage> httpResponseMessage = _MonIn.SendPerformanceMessage(appSettings.MonAConfiguration.Site,
appSettings.MonAConfiguration.Resource,
performanceName,
value: successMatches.Count,
value,
description: string.Empty);
httpResponseMessage.Wait(cancellationToken);
if (httpResponseMessage.Result.StatusCode != System.Net.HttpStatusCode.OK)

View File

@ -39,7 +39,9 @@ public record AppSettings(GatusConfiguration GatusConfiguration,
if (string.IsNullOrEmpty(appSettings.GatusToMonaConfiguration.Company))
throw new Exception("Company name must have a value!");
if (appSettings.MonAConfiguration.Minutes < 1)
throw new Exception("MonA Minutes must have a value more than one!");
throw new Exception("MonA Minutes must have a value more than zero!");
if (appSettings.MonAConfiguration.Expected < 1)
throw new Exception("MonA Expected must have a value more than zero!");
TimeSpan timeSpan = new(DateTime.MinValue.AddMinutes(appSettings.MonAConfiguration.Minutes).Ticks - DateTime.MinValue.Ticks);
if (appSettings.GatusToMonaConfiguration.MillisecondsDelay < timeSpan.TotalMilliseconds)
throw new Exception($"MonA doesn't support more than once per five minutes ({timeSpan.TotalMilliseconds})!");

View File

@ -3,7 +3,8 @@ using System.Text.Json.Serialization;
namespace Gatus.To.MonA.Models;
public record MonAConfiguration(int Minutes,
public record MonAConfiguration(int Expected,
int Minutes,
string Resource,
string Site,
string StateName,