public RuntimeConfigurationGenerator WithPrometheusMetricSink(double?metricUnavailableValue = -1, bool?enableMetricsTimestamp = false, string scrapeEndpointBaseUri = "/scrape-endpoint") { PrometheusScrapingEndpointSinkConfiguration prometheusSinkConfiguration; if (string.IsNullOrWhiteSpace(scrapeEndpointBaseUri) && metricUnavailableValue == null) { prometheusSinkConfiguration = null; } else { prometheusSinkConfiguration = new PrometheusScrapingEndpointSinkConfiguration(); if (string.IsNullOrWhiteSpace(scrapeEndpointBaseUri) == false) { prometheusSinkConfiguration.BaseUriPath = scrapeEndpointBaseUri; } if (metricUnavailableValue != null) { prometheusSinkConfiguration.MetricUnavailableValue = (double)metricUnavailableValue; } if (enableMetricsTimestamp != null) { prometheusSinkConfiguration.EnableMetricTimestamps = (bool)enableMetricsTimestamp; } } _runtimeConfiguration.MetricSinks.PrometheusScrapingEndpoint = prometheusSinkConfiguration; return(this); }
private IOptionsMonitor <PrometheusScrapingEndpointSinkConfiguration> CreatePrometheusConfiguration(bool enableMetricsTimestamps = true, double?metricUnavailableValue = -1) { var prometheusScrapingEndpointSinkConfiguration = new PrometheusScrapingEndpointSinkConfiguration { BaseUriPath = "/test-metrics", EnableMetricTimestamps = enableMetricsTimestamps, MetricUnavailableValue = metricUnavailableValue }; return(new OptionsMonitorStub <PrometheusScrapingEndpointSinkConfiguration>(prometheusScrapingEndpointSinkConfiguration)); }