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) { private static void SendPerformanceMessage(AppSettings appSettings, ILogger<Worker> logger, ReadOnlyCollection<string> successMatches, CancellationToken cancellationToken) {
string performanceName = string.Concat(appSettings.MonAConfiguration.Resource, appSettings.MonAConfiguration.Suffix); 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, Task<HttpResponseMessage> httpResponseMessage = _MonIn.SendPerformanceMessage(appSettings.MonAConfiguration.Site,
appSettings.MonAConfiguration.Resource, appSettings.MonAConfiguration.Resource,
performanceName, performanceName,
value: successMatches.Count, value,
description: string.Empty); description: string.Empty);
httpResponseMessage.Wait(cancellationToken); httpResponseMessage.Wait(cancellationToken);
if (httpResponseMessage.Result.StatusCode != System.Net.HttpStatusCode.OK) 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)) if (string.IsNullOrEmpty(appSettings.GatusToMonaConfiguration.Company))
throw new Exception("Company name must have a value!"); throw new Exception("Company name must have a value!");
if (appSettings.MonAConfiguration.Minutes < 1) 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); TimeSpan timeSpan = new(DateTime.MinValue.AddMinutes(appSettings.MonAConfiguration.Minutes).Ticks - DateTime.MinValue.Ticks);
if (appSettings.GatusToMonaConfiguration.MillisecondsDelay < timeSpan.TotalMilliseconds) if (appSettings.GatusToMonaConfiguration.MillisecondsDelay < timeSpan.TotalMilliseconds)
throw new Exception($"MonA doesn't support more than once per five minutes ({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; namespace Gatus.To.MonA.Models;
public record MonAConfiguration(int Minutes, public record MonAConfiguration(int Expected,
int Minutes,
string Resource, string Resource,
string Site, string Site,
string StateName, string StateName,