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

44 lines
1.2 KiB
C#
Raw Normal View History

2023-09-13 07:12:18 +00:00
using Core;
using KubernetesWorkflow;
2023-09-13 09:25:08 +00:00
using Logging;
2023-09-13 07:12:18 +00:00
namespace MetricsPlugin
{
public class MetricsPlugin : IProjectPlugin
{
private readonly IPluginTools tools;
private readonly PrometheusStarter starter;
public MetricsPlugin(IPluginTools tools)
{
this.tools = tools;
starter = new PrometheusStarter(tools);
}
2023-09-13 07:12:18 +00:00
2023-09-13 08:03:11 +00:00
public void Announce()
2023-09-13 07:12:18 +00:00
{
2023-09-13 09:25:08 +00:00
tools.GetLog().Log("Hi from the metrics plugin.");
2023-09-13 07:12:18 +00:00
}
2023-09-13 08:03:11 +00:00
public void Decommission()
2023-09-13 07:12:18 +00:00
{
}
2023-09-13 09:25:08 +00:00
public RunningContainers StartMetricsCollector(IMetricsScrapeTarget[] scrapeTargets)
2023-09-13 07:12:18 +00:00
{
return starter.CollectMetricsFor(scrapeTargets);
2023-09-13 07:12:18 +00:00
}
2023-09-13 09:25:08 +00:00
public MetricsAccess CreateAccessForTarget(RunningContainers runningContainers, IMetricsScrapeTarget target)
{
return starter.CreateAccessForTarget(runningContainers, target);
}
public LogFile? DownloadAllMetrics(IMetricsAccess metricsAccess, string targetName)
{
var downloader = new MetricsDownloader(tools.GetLog());
return downloader.DownloadAllMetrics(targetName, metricsAccess);
}
2023-09-13 07:12:18 +00:00
}
}