2023-09-11 09:59:33 +00:00
|
|
|
|
using KubernetesWorkflow;
|
2023-04-13 12:36:17 +00:00
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
namespace DistTestCore
|
|
|
|
|
{
|
2023-04-18 11:45:48 +00:00
|
|
|
|
public class PrometheusStarter : BaseStarter
|
2023-04-13 12:36:17 +00:00
|
|
|
|
{
|
2023-08-10 08:58:18 +00:00
|
|
|
|
public PrometheusStarter(TestLifecycle lifecycle)
|
|
|
|
|
: base(lifecycle)
|
2023-04-13 12:36:17 +00:00
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-07 08:44:48 +00:00
|
|
|
|
public RunningContainers CollectMetricsFor(RunningContainers[] containers)
|
2023-04-13 12:36:17 +00:00
|
|
|
|
{
|
2023-09-11 09:59:33 +00:00
|
|
|
|
//LogStart($"Starting metrics server for {containers.Describe()}");
|
|
|
|
|
//var startupConfig = new StartupConfig();
|
|
|
|
|
//startupConfig.Add(new PrometheusStartupConfig(GeneratePrometheusConfig(containers.Containers())));
|
2023-04-13 12:36:17 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
//var workflow = lifecycle.WorkflowCreator.CreateWorkflow();
|
|
|
|
|
//var runningContainers = workflow.Start(1, Location.Unspecified, new PrometheusContainerRecipe(), startupConfig);
|
|
|
|
|
//if (runningContainers.Containers.Length != 1) throw new InvalidOperationException("Expected only 1 Prometheus container to be created.");
|
2023-04-13 12:36:17 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
//return runningContainers;
|
|
|
|
|
return null!;
|
2023-04-13 12:36:17 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
//private string GeneratePrometheusConfig(RunningContainer[] nodes)
|
|
|
|
|
//{
|
|
|
|
|
// var config = "";
|
|
|
|
|
// config += "global:\n";
|
|
|
|
|
// config += " scrape_interval: 10s\n";
|
|
|
|
|
// config += " scrape_timeout: 10s\n";
|
|
|
|
|
// config += "\n";
|
|
|
|
|
// config += "scrape_configs:\n";
|
|
|
|
|
// config += " - job_name: services\n";
|
|
|
|
|
// config += " metrics_path: /metrics\n";
|
|
|
|
|
// config += " static_configs:\n";
|
|
|
|
|
// config += " - targets:\n";
|
2023-04-13 12:36:17 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// foreach (var node in nodes)
|
|
|
|
|
// {
|
|
|
|
|
// var ip = node.Pod.PodInfo.Ip;
|
|
|
|
|
// var port = node.Recipe.GetPortByTag(CodexContainerRecipe.MetricsPortTag).Number;
|
|
|
|
|
// config += $" - '{ip}:{port}'\n";
|
|
|
|
|
// }
|
2023-04-13 12:36:17 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// var bytes = Encoding.ASCII.GetBytes(config);
|
|
|
|
|
// return Convert.ToBase64String(bytes);
|
|
|
|
|
//}
|
2023-04-13 12:36:17 +00:00
|
|
|
|
}
|
|
|
|
|
}
|