2023-04-13 12:36:17 +00:00
|
|
|
|
using KubernetesWorkflow;
|
|
|
|
|
|
|
|
|
|
namespace DistTestCore.Metrics
|
|
|
|
|
{
|
|
|
|
|
public interface IMetricsAccessFactory
|
|
|
|
|
{
|
|
|
|
|
IMetricsAccess CreateMetricsAccess(RunningContainer codexContainer);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class MetricsUnavailableAccessFactory : IMetricsAccessFactory
|
|
|
|
|
{
|
|
|
|
|
public IMetricsAccess CreateMetricsAccess(RunningContainer codexContainer)
|
|
|
|
|
{
|
|
|
|
|
return new MetricsUnavailable();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class CodexNodeMetricsAccessFactory : IMetricsAccessFactory
|
|
|
|
|
{
|
2023-04-19 08:42:08 +00:00
|
|
|
|
private readonly TestLifecycle lifecycle;
|
2023-04-13 12:36:17 +00:00
|
|
|
|
private readonly RunningContainers prometheusContainer;
|
|
|
|
|
|
2023-04-19 08:42:08 +00:00
|
|
|
|
public CodexNodeMetricsAccessFactory(TestLifecycle lifecycle, RunningContainers prometheusContainer)
|
2023-04-13 12:36:17 +00:00
|
|
|
|
{
|
2023-04-19 08:42:08 +00:00
|
|
|
|
this.lifecycle = lifecycle;
|
2023-04-13 12:36:17 +00:00
|
|
|
|
this.prometheusContainer = prometheusContainer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public IMetricsAccess CreateMetricsAccess(RunningContainer codexContainer)
|
|
|
|
|
{
|
|
|
|
|
var query = new MetricsQuery(prometheusContainer);
|
2023-04-19 08:42:08 +00:00
|
|
|
|
return new MetricsAccess(lifecycle.Log, query, codexContainer);
|
2023-04-13 12:36:17 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|