diff --git a/changelog/content/experimental/unreleased.md b/changelog/content/experimental/unreleased.md new file mode 100644 index 000000000..3c57ed599 --- /dev/null +++ b/changelog/content/experimental/unreleased.md @@ -0,0 +1,9 @@ +--- +weight: 1 +version: +--- + +- {{% tag fixed %}} Runtime config for metrics sinks is not working correctly ([#1052](https://github.com/tomkerkhove/promitor/issues/1052)) +- {{% tag removed %}} Default Prometheus configuration since we have multiple metric sinks nowadays. We are removing + this since you cannot have duplicate Prometheus scraping endpoints. If you omit legacy configuration it will use + `/metrics` as a default value which forces you to use different endpoint in the Prometheus metric sink. diff --git a/changelog/content/released/v1.6.0.md b/changelog/content/released/v1.6.0.md index d75d17755..2e966aef7 100644 --- a/changelog/content/released/v1.6.0.md +++ b/changelog/content/released/v1.6.0.md @@ -1,6 +1,6 @@ --- -subtitle: "released on 2020-04-06" -date: 2020-04-06T17:38:47+02:00 +subtitle: "released on 2020-05-15" +date: 2020-05-15T17:38:47+02:00 weight: 160 version: Scraper (Agent) - v1.6.0 --- diff --git a/changelog/content/released/v1.6.1.md.template b/changelog/content/released/v1.6.1.md.template new file mode 100644 index 000000000..443e4fa57 --- /dev/null +++ b/changelog/content/released/v1.6.1.md.template @@ -0,0 +1,13 @@ +--- +subtitle: "released on 2020-05-27" +date: 2020-05-27T17:38:47+02:00 +weight: 161 +version: Scraper (Agent) - v1.6.1 +--- + +- {{% tag fixed %}} Runtime config for metrics sinks is not working correctly ([#1052](https://github.com/tomkerkhove/promitor/issues/1052)) +- {{% tag removed %}} Default Prometheus configuration since we have multiple metric sinks nowadays. We are removing + this since you cannot have duplicate Prometheus scraping endpoints. If you omit legacy configuration it will use + `/metrics` as a default value which forces you to use different endpoint in the Prometheus metric sink. + +Full release notes can be found [here](https://github.com/tomkerkhove/promitor/releases/tag/1.6.1). diff --git a/src/Promitor.Agents.Scraper/Configuration/ScraperRuntimeConfiguration.cs b/src/Promitor.Agents.Scraper/Configuration/ScraperRuntimeConfiguration.cs index d2205ed3e..7d3beb7f9 100644 --- a/src/Promitor.Agents.Scraper/Configuration/ScraperRuntimeConfiguration.cs +++ b/src/Promitor.Agents.Scraper/Configuration/ScraperRuntimeConfiguration.cs @@ -11,7 +11,7 @@ public class ScraperRuntimeConfiguration : RuntimeConfiguration public AzureMonitorConfiguration AzureMonitor { get; set; } = new AzureMonitorConfiguration(); public MetricsConfiguration MetricsConfiguration { get; set; } = new MetricsConfiguration(); public MetricSinkConfiguration MetricSinks { get; set; } = new MetricSinkConfiguration(); - public PrometheusLegacyConfiguration Prometheus { get; set; } = new PrometheusLegacyConfiguration(); + public PrometheusLegacyConfiguration Prometheus { get; set; } public ResourceDiscoveryConfiguration ResourceDiscovery { get; set; } } } \ No newline at end of file diff --git a/src/Promitor.Agents.Scraper/Startup.cs b/src/Promitor.Agents.Scraper/Startup.cs index 637d106a0..08dcfc667 100644 --- a/src/Promitor.Agents.Scraper/Startup.cs +++ b/src/Promitor.Agents.Scraper/Startup.cs @@ -120,15 +120,18 @@ private string BuildOpenApiDescription(IConfiguration configuration, string lega openApiDescriptionBuilder.AppendLine($"
  • Legacy Prometheus scrape endpoint is exposed at {legacyPrometheusUriPath}
  • "); } - if (metricSinkConfiguration.PrometheusScrapingEndpoint != null) + if (metricSinkConfiguration != null) { - var prometheusScrapingBaseUri = metricSinkConfiguration.PrometheusScrapingEndpoint.BaseUriPath; - openApiDescriptionBuilder.AppendLine($"
  • Prometheus scrape endpoint is exposed at {prometheusScrapingBaseUri}
  • "); - } + if (metricSinkConfiguration.PrometheusScrapingEndpoint != null) + { + var prometheusScrapingBaseUri = metricSinkConfiguration.PrometheusScrapingEndpoint.BaseUriPath; + openApiDescriptionBuilder.AppendLine($"
  • Prometheus scrape endpoint is exposed at {prometheusScrapingBaseUri}
  • "); + } - if (metricSinkConfiguration.Statsd != null) - { - openApiDescriptionBuilder.AppendLine($"
  • StatsD server located on {metricSinkConfiguration.Statsd.Host}:{metricSinkConfiguration.Statsd.Port}
  • "); + if (metricSinkConfiguration.Statsd != null) + { + openApiDescriptionBuilder.AppendLine($"
  • StatsD server located on {metricSinkConfiguration.Statsd.Host}:{metricSinkConfiguration.Statsd.Port}
  • "); + } } return openApiDescriptionBuilder.ToString(); diff --git a/src/Promitor.Tests.Unit/Configuration/RuntimeConfigurationUnitTest.cs b/src/Promitor.Tests.Unit/Configuration/RuntimeConfigurationUnitTest.cs index 6adfe6492..b7d1977fd 100644 --- a/src/Promitor.Tests.Unit/Configuration/RuntimeConfigurationUnitTest.cs +++ b/src/Promitor.Tests.Unit/Configuration/RuntimeConfigurationUnitTest.cs @@ -148,6 +148,7 @@ public async Task RuntimeConfiguration_HasConfiguredMetricsConfigurationBasePath // Arrange var metricsDeclarationBasePath = _faker.System.DirectoryPath(); var configuration = await RuntimeConfigurationGenerator.WithServerConfiguration() + .WithPrometheusLegacyConfiguration() .WithMetricsConfiguration(absolutePath: metricsDeclarationBasePath) .GenerateAsync(); @@ -458,7 +459,7 @@ public async Task RuntimeConfiguration_HasNoMetricUnavailableValuePathConfigured } [Fact] - public async Task RuntimeConfiguration_HasNoPrometheusConfigurationConfigured_UsesDefault() + public async Task RuntimeConfiguration_HasNoPrometheusConfigurationConfigured_DoesNotUseDefaults() { // Arrange var configuration = await RuntimeConfigurationGenerator.WithServerConfiguration() @@ -470,10 +471,7 @@ public async Task RuntimeConfiguration_HasNoPrometheusConfigurationConfigured_Us // Assert Assert.NotNull(runtimeConfiguration); - Assert.NotNull(runtimeConfiguration.Prometheus); - Assert.NotNull(runtimeConfiguration.Prometheus.ScrapeEndpoint); - Assert.Equal(Defaults.Prometheus.ScrapeEndpointBaseUri, runtimeConfiguration.Prometheus.ScrapeEndpoint.BaseUriPath); - Assert.Equal(Defaults.Prometheus.MetricUnavailableValue, runtimeConfiguration.Prometheus.MetricUnavailableValue); + Assert.Null(runtimeConfiguration.Prometheus); } [Fact] @@ -510,7 +508,6 @@ public async Task RuntimeConfiguration_HasNoResourceDiscoveryPortConfigured_Uses Assert.NotNull(runtimeConfiguration); Assert.NotNull(runtimeConfiguration.ResourceDiscovery); Assert.NotNull(runtimeConfiguration.ResourceDiscovery.Port); - Assert.Equal(Defaults.Prometheus.ScrapeEndpointBaseUri, runtimeConfiguration.Prometheus.ScrapeEndpoint.BaseUriPath); } [Fact] @@ -519,6 +516,7 @@ public async Task RuntimeConfiguration_IsFullyConfigured_UsesCorrectValues() // Arrange var bogusRuntimeConfiguration = BogusScraperRuntimeConfigurationGenerator.Generate(); var configuration = await RuntimeConfigurationGenerator.WithRuntimeConfiguration(bogusRuntimeConfiguration) + .WithPrometheusLegacyConfiguration() .GenerateAsync(); // Act