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);
        }
Example #2
0
        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));
        }