public Task <MetricStatus> Execute(ConfigurationSection configurationSection) { // Console.WriteLine($"Teste: {configurationSection.ToJson()}"); // Console.WriteLine(); _resiliencePatterns.Configure(configurationSection); _requestHandle.Configure(configurationSection); // InitializePrometheusServer(configurationSection); return(ProcessRequests(configurationSection)); }
private void InitializePrometheusServer(ConfigurationSection configurationSection) { if (configurationSection.PrometheusConfiguration == null || string.IsNullOrEmpty(configurationSection.PrometheusConfiguration.Hostname) || !configurationSection.PrometheusConfiguration.Port.HasValue) { return; } var prometheusConfigurationHostname = configurationSection.PrometheusConfiguration.Hostname; var prometheusConfigurationPort = configurationSection.PrometheusConfiguration.Port; new MetricServer( hostname: prometheusConfigurationHostname, port: prometheusConfigurationPort.Value) .Start(); }
private async Task <MetricStatus> ProcessRequests(ConfigurationSection configurationSection) { var watch = new Stopwatch(); watch.Start(); Console.WriteLine($"[{DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")}] Start process requests"); while (_metrics.Client.Success < configurationSection.RequestConfiguration.SuccessRequests && (configurationSection.RequestConfiguration.MaxRequests.HasValue ? _metrics.Client.Total < configurationSection.RequestConfiguration.MaxRequests : true)) { await ProcessRequest(configurationSection); } watch.Stop(); _metrics.IncrementClientTotalTime(watch.ElapsedMilliseconds); Console.WriteLine($"[{DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")}] Ended process requests with {watch.ElapsedMilliseconds} ms"); return(_metrics.MetricStatus); }
private Task <HttpResponseMessage> ProcessRequest(ConfigurationSection configurationSection) => _requestHandle.HandleRequest(configurationSection.UrlConfiguration);