Decent dashboard setup
This commit is contained in:
parent
75cdb94e27
commit
b4302ab6f7
|
@ -1,8 +1,8 @@
|
||||||
using DistTestCore.Metrics;
|
using DistTestCore.Metrics;
|
||||||
|
using IdentityModel.Client;
|
||||||
using KubernetesWorkflow;
|
using KubernetesWorkflow;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using Utils;
|
|
||||||
|
|
||||||
namespace DistTestCore
|
namespace DistTestCore
|
||||||
{
|
{
|
||||||
|
@ -19,7 +19,7 @@ namespace DistTestCore
|
||||||
var grafanaContainer = StartGrafanaContainer();
|
var grafanaContainer = StartGrafanaContainer();
|
||||||
var grafanaAddress = lifecycle.Configuration.GetAddress(grafanaContainer);
|
var grafanaAddress = lifecycle.Configuration.GetAddress(grafanaContainer);
|
||||||
|
|
||||||
var http = new Http(lifecycle.Log, new DefaultTimeSet(), grafanaAddress, "api/");
|
var http = new Http(lifecycle.Log, new DefaultTimeSet(), grafanaAddress, "api/", AddBasicAuth);
|
||||||
|
|
||||||
Log("Connecting datasource...");
|
Log("Connecting datasource...");
|
||||||
AddDataSource(http, prometheusContainer);
|
AddDataSource(http, prometheusContainer);
|
||||||
|
@ -44,6 +44,13 @@ namespace DistTestCore
|
||||||
return grafanaContainers.Containers.First();
|
return grafanaContainers.Containers.First();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void AddBasicAuth(HttpClient client)
|
||||||
|
{
|
||||||
|
client.SetBasicAuthentication(
|
||||||
|
GrafanaContainerRecipe.DefaultAdminUser,
|
||||||
|
GrafanaContainerRecipe.DefaultAdminPassword);
|
||||||
|
}
|
||||||
|
|
||||||
private static void AddDataSource(Http http, RunningContainer prometheusContainer)
|
private static void AddDataSource(Http http, RunningContainer prometheusContainer)
|
||||||
{
|
{
|
||||||
var prometheusAddress = prometheusContainer.ClusterExternalAddress;
|
var prometheusAddress = prometheusContainer.ClusterExternalAddress;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
using IdentityModel.Client;
|
using Logging;
|
||||||
using Logging;
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System.Net.Http.Headers;
|
using System.Net.Http.Headers;
|
||||||
using System.Net.Http.Json;
|
using System.Net.Http.Json;
|
||||||
|
@ -13,14 +12,21 @@ namespace DistTestCore
|
||||||
private readonly ITimeSet timeSet;
|
private readonly ITimeSet timeSet;
|
||||||
private readonly Address address;
|
private readonly Address address;
|
||||||
private readonly string baseUrl;
|
private readonly string baseUrl;
|
||||||
|
private readonly Action<HttpClient> onClientCreated;
|
||||||
private readonly string? logAlias;
|
private readonly string? logAlias;
|
||||||
|
|
||||||
public Http(BaseLog log, ITimeSet timeSet, Address address, string baseUrl, string? logAlias = null)
|
public Http(BaseLog log, ITimeSet timeSet, Address address, string baseUrl, string? logAlias = null)
|
||||||
|
: this(log, timeSet, address, baseUrl, DoNothing, logAlias)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public Http(BaseLog log, ITimeSet timeSet, Address address, string baseUrl, Action<HttpClient> onClientCreated, string? logAlias = null)
|
||||||
{
|
{
|
||||||
this.log = log;
|
this.log = log;
|
||||||
this.timeSet = timeSet;
|
this.timeSet = timeSet;
|
||||||
this.address = address;
|
this.address = address;
|
||||||
this.baseUrl = baseUrl;
|
this.baseUrl = baseUrl;
|
||||||
|
this.onClientCreated = onClientCreated;
|
||||||
this.logAlias = logAlias;
|
this.logAlias = logAlias;
|
||||||
if (!this.baseUrl.StartsWith("/")) this.baseUrl = "/" + this.baseUrl;
|
if (!this.baseUrl.StartsWith("/")) this.baseUrl = "/" + this.baseUrl;
|
||||||
if (!this.baseUrl.EndsWith("/")) this.baseUrl += "/";
|
if (!this.baseUrl.EndsWith("/")) this.baseUrl += "/";
|
||||||
|
@ -60,7 +66,6 @@ namespace DistTestCore
|
||||||
var url = GetUrl() + route;
|
var url = GetUrl() + route;
|
||||||
using var content = JsonContent.Create(body);
|
using var content = JsonContent.Create(body);
|
||||||
Log(url, JsonConvert.SerializeObject(body));
|
Log(url, JsonConvert.SerializeObject(body));
|
||||||
client.SetBasicAuthentication("admin", "admin");
|
|
||||||
var result = Time.Wait(client.PostAsync(url, content));
|
var result = Time.Wait(client.PostAsync(url, content));
|
||||||
var str = Time.Wait(result.Content.ReadAsStringAsync());
|
var str = Time.Wait(result.Content.ReadAsStringAsync());
|
||||||
Log(url, str);
|
Log(url, str);
|
||||||
|
@ -75,7 +80,6 @@ namespace DistTestCore
|
||||||
using var client = GetClient();
|
using var client = GetClient();
|
||||||
var url = GetUrl() + route;
|
var url = GetUrl() + route;
|
||||||
Log(url, body);
|
Log(url, body);
|
||||||
client.SetBasicAuthentication("admin", "admin");
|
|
||||||
var content = new StringContent(body);
|
var content = new StringContent(body);
|
||||||
content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
|
content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
|
||||||
var result = Time.Wait(client.PostAsync(url, content));
|
var result = Time.Wait(client.PostAsync(url, content));
|
||||||
|
@ -151,7 +155,12 @@ namespace DistTestCore
|
||||||
{
|
{
|
||||||
var client = new HttpClient();
|
var client = new HttpClient();
|
||||||
client.Timeout = timeSet.HttpCallTimeout();
|
client.Timeout = timeSet.HttpCallTimeout();
|
||||||
|
onClientCreated(client);
|
||||||
return client;
|
return client;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void DoNothing(HttpClient client)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,27 +7,19 @@ namespace DistTestCore.Metrics
|
||||||
public override string AppName => "grafana";
|
public override string AppName => "grafana";
|
||||||
public override string Image => "grafana/grafana-oss:10.0.3";
|
public override string Image => "grafana/grafana-oss:10.0.3";
|
||||||
|
|
||||||
|
public const string DefaultAdminUser = "adminium";
|
||||||
|
public const string DefaultAdminPassword = "passwordium";
|
||||||
|
|
||||||
protected override void Initialize(StartupConfig startupConfig)
|
protected override void Initialize(StartupConfig startupConfig)
|
||||||
{
|
{
|
||||||
//var config = startupConfig.Get<PrometheusStartupConfig>();
|
|
||||||
|
|
||||||
//AddExposedPortAndVar("PROM_PORT");
|
|
||||||
AddExposedPort(3000);
|
AddExposedPort(3000);
|
||||||
//AddEnvVar("PROM_CONFIG", config.PrometheusConfigBase64);
|
|
||||||
|
|
||||||
// [auth.anonymous]
|
|
||||||
// enabled = true
|
|
||||||
//GF_<SectionName>_<KeyName>__FILE
|
|
||||||
|
|
||||||
AddEnvVar("GF_AUTH_ANONYMOUS_ENABLED", "true");
|
AddEnvVar("GF_AUTH_ANONYMOUS_ENABLED", "true");
|
||||||
AddEnvVar("GF_AUTH_ANONYMOUS_ORG_NAME", "Main Org.");
|
AddEnvVar("GF_AUTH_ANONYMOUS_ORG_NAME", "Main Org.");
|
||||||
AddEnvVar("GF_AUTH_ANONYMOUS_ORG_ROLE", "Editor");
|
AddEnvVar("GF_AUTH_ANONYMOUS_ORG_ROLE", "Editor");
|
||||||
|
|
||||||
//AddEnvVar("GF_AUTH_DISABLE_LOGIN_FORM", "true");
|
AddEnvVar("GF_SECURITY_ADMIN_USER", DefaultAdminUser);
|
||||||
//AddEnvVar("GF_FEATURE_TOGGLES_ENABLE", "publicDashboards");
|
AddEnvVar("GF_SECURITY_ADMIN_PASSWORD", DefaultAdminPassword);
|
||||||
|
|
||||||
//[auth]
|
|
||||||
//disable_login_form = true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue