cs-codex-dist-tests/MetricsPlugin/MetricsAccess.cs

82 lines
2.7 KiB
C#

//using DistTestCore.Helpers;
//using KubernetesWorkflow;
//using Logging;
//using NUnit.Framework;
//using NUnit.Framework.Constraints;
//using Utils;
//namespace DistTestCore.Metrics
//{
// public interface IMetricsAccess
// {
// void AssertThat(string metricName, IResolveConstraint constraint, string message = "");
// }
// public class MetricsAccess : IMetricsAccess
// {
// private readonly BaseLog log;
// private readonly ITimeSet timeSet;
// private readonly MetricsQuery query;
// private readonly RunningContainer node;
// public MetricsAccess(BaseLog log, ITimeSet timeSet, MetricsQuery query, RunningContainer node)
// {
// this.log = log;
// this.timeSet = timeSet;
// this.query = query;
// this.node = node;
// }
// public void AssertThat(string metricName, IResolveConstraint constraint, string message = "")
// {
// AssertHelpers.RetryAssert(constraint, () =>
// {
// var metricSet = GetMetricWithTimeout(metricName);
// var metricValue = metricSet.Values[0].Value;
// log.Log($"{node.Name} metric '{metricName}' = {metricValue}");
// return metricValue;
// }, message);
// }
// public Metrics? GetAllMetrics()
// {
// return query.GetAllMetricsForNode(node);
// }
// private MetricsSet GetMetricWithTimeout(string metricName)
// {
// var start = DateTime.UtcNow;
// while (true)
// {
// var mostRecent = GetMostRecent(metricName);
// if (mostRecent != null) return mostRecent;
// if (DateTime.UtcNow - start > timeSet.WaitForMetricTimeout())
// {
// Assert.Fail($"Timeout: Unable to get metric '{metricName}'.");
// throw new TimeoutException();
// }
// Time.Sleep(TimeSpan.FromSeconds(2));
// }
// }
// private MetricsSet? GetMostRecent(string metricName)
// {
// var result = query.GetMostRecent(metricName, node);
// if (result == null) return null;
// return result.Sets.LastOrDefault();
// }
// }
// public class MetricsUnavailable : IMetricsAccess
// {
// public void AssertThat(string metricName, IResolveConstraint constraint, string message = "")
// {
// Assert.Fail("Incorrect test setup: Metrics were not enabled for this group of Codex nodes. Add 'EnableMetrics()' after 'SetupCodexNodes()' to enable it.");
// throw new InvalidOperationException();
// }
// }
//}