From 6eb36f44c50dcb0f2b209f38e1d857d486961f3b Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Sat, 5 Apr 2025 14:19:33 -0700 Subject: [PATCH] Added Expected to push a percentage --- Helpers/HelperGatusToMona.cs | 4 +++- Models/AppSettings.cs | 4 +++- Models/MonAConfiguration.cs | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Helpers/HelperGatusToMona.cs b/Helpers/HelperGatusToMona.cs index 64f1189..7785fcd 100644 --- a/Helpers/HelperGatusToMona.cs +++ b/Helpers/HelperGatusToMona.cs @@ -59,10 +59,12 @@ internal static partial class HelperGatusToMona { private static void SendPerformanceMessage(AppSettings appSettings, ILogger logger, ReadOnlyCollection 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 = _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) diff --git a/Models/AppSettings.cs b/Models/AppSettings.cs index cd33eaa..50c1ddb 100644 --- a/Models/AppSettings.cs +++ b/Models/AppSettings.cs @@ -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})!"); diff --git a/Models/MonAConfiguration.cs b/Models/MonAConfiguration.cs index e28875b..f633400 100644 --- a/Models/MonAConfiguration.cs +++ b/Models/MonAConfiguration.cs @@ -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,