57 lines
2.4 KiB
C#
Raw Normal View History

2023-09-13 09:12:18 +02:00
using Core;
using KubernetesWorkflow.Types;
2023-09-13 11:25:08 +02:00
using Logging;
using Utils;
2023-09-13 09:12:18 +02:00
namespace MetricsPlugin
{
public static class CoreInterfaceExtensions
{
public static RunningPod DeployMetricsCollector(this CoreInterface ci, TimeSpan scrapeInterval, params IHasMetricsScrapeTarget[] scrapeTargets)
2023-09-19 11:51:59 +02:00
{
2025-01-16 15:13:16 +01:00
return Plugin(ci).DeployMetricsCollector(scrapeTargets.Select(t => t.GetMetricsScrapeTarget()).ToArray(), scrapeInterval);
2023-09-19 11:51:59 +02:00
}
public static RunningPod DeployMetricsCollector(this CoreInterface ci, TimeSpan scrapeInterval, params Address[] scrapeTargets)
2023-09-13 09:12:18 +02:00
{
return Plugin(ci).DeployMetricsCollector(scrapeTargets, scrapeInterval);
2023-09-13 11:25:08 +02:00
}
2024-04-13 17:09:17 +03:00
public static IMetricsAccess WrapMetricsCollector(this CoreInterface ci, RunningPod metricsPod, IHasMetricsScrapeTarget scrapeTarget)
{
2025-01-16 15:13:16 +01:00
return ci.WrapMetricsCollector(metricsPod, scrapeTarget.GetMetricsScrapeTarget());
}
public static IMetricsAccess WrapMetricsCollector(this CoreInterface ci, RunningPod metricsPod, Address scrapeTarget)
2023-09-13 11:25:08 +02:00
{
2024-04-13 17:09:17 +03:00
return Plugin(ci).WrapMetricsCollectorDeployment(metricsPod, scrapeTarget);
2023-09-13 11:25:08 +02:00
}
public static IMetricsAccess[] GetMetricsFor(this CoreInterface ci, TimeSpan scrapeInterval, params IHasManyMetricScrapeTargets[] manyScrapeTargets)
2023-09-13 11:59:21 +02:00
{
2025-01-16 15:13:16 +01:00
return ci.GetMetricsFor(scrapeInterval, manyScrapeTargets.SelectMany(t => t.GetMetricsScrapeTargets()).ToArray());
2023-09-13 11:59:21 +02:00
}
public static IMetricsAccess[] GetMetricsFor(this CoreInterface ci, TimeSpan scrapeInterval, params IHasMetricsScrapeTarget[] scrapeTargets)
2023-09-19 11:51:59 +02:00
{
2025-01-16 15:13:16 +01:00
return ci.GetMetricsFor(scrapeInterval, scrapeTargets.Select(t => t.GetMetricsScrapeTarget()).ToArray());
2023-09-19 11:51:59 +02:00
}
public static IMetricsAccess[] GetMetricsFor(this CoreInterface ci, TimeSpan scrapeInterval, params Address[] scrapeTargets)
2023-09-13 11:25:08 +02:00
{
var rc = ci.DeployMetricsCollector(scrapeInterval, scrapeTargets);
return scrapeTargets.Select(t => ci.WrapMetricsCollector(rc, t)).ToArray();
2023-09-13 11:25:08 +02:00
}
public static LogFile? DownloadAllMetrics(this CoreInterface ci, IMetricsAccess metricsAccess, string targetName)
{
return Plugin(ci).DownloadAllMetrics(metricsAccess, targetName);
2023-09-13 09:12:18 +02:00
}
private static MetricsPlugin Plugin(CoreInterface ci)
{
return ci.GetPlugin<MetricsPlugin>();
}
}
}