diff --git a/src/Promitor.Agents.Scraper/AzureMonitorClientFactory.cs b/src/Promitor.Agents.Scraper/AzureMonitorClientFactory.cs
index d76430497..a561f2db2 100644
--- a/src/Promitor.Agents.Scraper/AzureMonitorClientFactory.cs
+++ b/src/Promitor.Agents.Scraper/AzureMonitorClientFactory.cs
@@ -31,14 +31,14 @@ public class AzureMonitorClientFactory
/// Options for Azure Monitor integration
/// Options for Azure Monitor logging
/// Factory to create loggers with
- /// Whether to use the new Azure.Monitor.Query package for queries
- public IAzureMonitorClient CreateIfNotExists(AzureCloud cloud, string tenantId, string subscriptionId, MetricSinkWriter metricSinkWriter, IAzureScrapingSystemMetricsPublisher azureScrapingSystemMetricsPublisher, IMemoryCache resourceMetricDefinitionMemoryCache, IConfiguration configuration, IOptions azureMonitorIntegrationConfiguration, IOptions azureMonitorLoggingConfiguration, ILoggerFactory loggerFactory, bool useAzureMonitorSdk)
+ public IAzureMonitorClient CreateIfNotExists(AzureCloud cloud, string tenantId, string subscriptionId, MetricSinkWriter metricSinkWriter, IAzureScrapingSystemMetricsPublisher azureScrapingSystemMetricsPublisher, IMemoryCache resourceMetricDefinitionMemoryCache, IConfiguration configuration, IOptions azureMonitorIntegrationConfiguration, IOptions azureMonitorLoggingConfiguration, ILoggerFactory loggerFactory)
{
if (_azureMonitorClients.TryGetValue(subscriptionId, out var value))
{
return value;
}
-
+
+ var useAzureMonitorSdk = azureMonitorIntegrationConfiguration.Value.UseAzureMonitorSdk;
IAzureMonitorClient azureMonitorClient;
if (useAzureMonitorSdk) {
azureMonitorClient = CreateNewAzureMonitorQueryClient(cloud, tenantId, subscriptionId, metricSinkWriter, azureScrapingSystemMetricsPublisher, resourceMetricDefinitionMemoryCache, configuration, azureMonitorIntegrationConfiguration, azureMonitorLoggingConfiguration, loggerFactory);
diff --git a/src/Promitor.Agents.Scraper/Docs/Open-Api.xml b/src/Promitor.Agents.Scraper/Docs/Open-Api.xml
index 08f26d6c2..7299b25fa 100644
--- a/src/Promitor.Agents.Scraper/Docs/Open-Api.xml
+++ b/src/Promitor.Agents.Scraper/Docs/Open-Api.xml
@@ -4,7 +4,7 @@
Promitor.Agents.Scraper
-
+
Provides an Azure Monitor client
@@ -18,7 +18,6 @@
Options for Azure Monitor integration
Options for Azure Monitor logging
Factory to create loggers with
- Whether to use the new Azure.Monitor.Query package for queries
diff --git a/src/Promitor.Agents.Scraper/Scheduling/ResourcesScrapingJob.cs b/src/Promitor.Agents.Scraper/Scheduling/ResourcesScrapingJob.cs
index ce6ce8dc8..658c47466 100644
--- a/src/Promitor.Agents.Scraper/Scheduling/ResourcesScrapingJob.cs
+++ b/src/Promitor.Agents.Scraper/Scheduling/ResourcesScrapingJob.cs
@@ -277,10 +277,10 @@ private async Task ScrapeMetric(ScrapeDefinition scrap
? scrapeDefinition.Resource.SubscriptionId
: _metricsDeclaration.AzureMetadata.SubscriptionId;
var azureEnvironent = _metricsDeclaration.AzureMetadata.Cloud.GetAzureEnvironment();
- Logger.LogInformation("Parsed SDK Config {UseAzureMonitorSdk}", _metricsDeclaration.UseAzureMonitorSdk);
+ Logger.LogInformation("Parsed SDK Config {UseAzureMonitorSdk}", _azureMonitorIntegrationConfiguration.Value.UseAzureMonitorSdk);
var azureMonitorClient = _azureMonitorClientFactory.CreateIfNotExists(_metricsDeclaration.AzureMetadata.Cloud, _metricsDeclaration.AzureMetadata.TenantId,
resourceSubscriptionId, _metricSinkWriter, _azureScrapingSystemMetricsPublisher, _resourceMetricDefinitionMemoryCache, _configuration,
- _azureMonitorIntegrationConfiguration, _azureMonitorLoggingConfiguration, _loggerFactory, _metricsDeclaration.UseAzureMonitorSdk);
+ _azureMonitorIntegrationConfiguration, _azureMonitorLoggingConfiguration, _loggerFactory);
var tokenCredential = AzureAuthenticationFactory.GetTokenCredential(azureEnvironent.ManagementEndpoint, _metricsDeclaration.AzureMetadata.TenantId,
AzureAuthenticationFactory.GetConfiguredAzureAuthentication(_configuration), new Uri(_metricsDeclaration.AzureMetadata.Cloud.GetAzureEnvironment().AuthenticationEndpoint));
diff --git a/src/Promitor.Core.Scraping/Configuration/Model/MetricsDeclaration.cs b/src/Promitor.Core.Scraping/Configuration/Model/MetricsDeclaration.cs
index 5566e5af7..3c820975f 100644
--- a/src/Promitor.Core.Scraping/Configuration/Model/MetricsDeclaration.cs
+++ b/src/Promitor.Core.Scraping/Configuration/Model/MetricsDeclaration.cs
@@ -5,7 +5,6 @@ namespace Promitor.Core.Scraping.Configuration.Model
{
public class MetricsDeclaration
{
- public bool UseAzureMonitorSdk { get; set; } = true;
public AzureMetadata AzureMetadata { get; set; }
public MetricDefaults MetricDefaults { get; set; } = new MetricDefaults();
public List Metrics { get; set; } = new List();
diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Core/V1Deserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Core/V1Deserializer.cs
index 57759c1ad..5dd648d04 100644
--- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Core/V1Deserializer.cs
+++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Core/V1Deserializer.cs
@@ -20,8 +20,6 @@ public V1Deserializer(IDeserializer azureMetadataDeserializer,
Map(definition => definition.Version)
.IsRequired()
.MapUsing(GetVersion);
- Map(definition => definition.UseAzureMonitorSdk)
- .WithDefault(true);
Map(definition => definition.AzureMetadata)
.IsRequired()
.MapUsingDeserializer(azureMetadataDeserializer);
diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Model/MetricsDeclarationV1.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Model/MetricsDeclarationV1.cs
index 0d139e719..4c4e80082 100644
--- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Model/MetricsDeclarationV1.cs
+++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Model/MetricsDeclarationV1.cs
@@ -9,7 +9,6 @@ namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Model
public class MetricsDeclarationV1
{
public string Version { get; set; } = SpecVersion.v1.ToString();
- public bool UseAzureMonitorSdk { get; set; } = true;
public AzureMetadataV1 AzureMetadata { get; set; }
public MetricDefaultsV1 MetricDefaults { get; set; }
public IReadOnlyCollection Metrics { get; set; }
diff --git a/src/Promitor.Integrations.AzureMonitor/Configuration/AzureMonitorIntegrationConfiguration.cs b/src/Promitor.Integrations.AzureMonitor/Configuration/AzureMonitorIntegrationConfiguration.cs
index 52daf0f65..577f15979 100644
--- a/src/Promitor.Integrations.AzureMonitor/Configuration/AzureMonitorIntegrationConfiguration.cs
+++ b/src/Promitor.Integrations.AzureMonitor/Configuration/AzureMonitorIntegrationConfiguration.cs
@@ -3,5 +3,6 @@
public class AzureMonitorIntegrationConfiguration
{
public AzureMonitorHistoryConfiguration History { get; set; } = new();
+ public bool UseAzureMonitorSdk { get; set; } = true;
}
}
\ No newline at end of file
diff --git a/src/Promitor.Integrations.AzureMonitor/LegacyAzureMonitorClient.cs b/src/Promitor.Integrations.AzureMonitor/LegacyAzureMonitorClient.cs
index 7cedee566..0a541a60a 100644
--- a/src/Promitor.Integrations.AzureMonitor/LegacyAzureMonitorClient.cs
+++ b/src/Promitor.Integrations.AzureMonitor/LegacyAzureMonitorClient.cs
@@ -61,7 +61,7 @@ public LegacyAzureMonitorClient(AzureEnvironment azureCloud, string tenantId, st
_resourceMetricDefinitionMemoryCache = resourceMetricDefinitionMemoryCache;
_azureMonitorIntegrationConfiguration = azureMonitorIntegrationConfiguration;
_logger = loggerFactory.CreateLogger();
- _logger.LogInformation("Using legacy scraper");
+ _logger.LogWarning("Will use deprecated Azure Management Libraries for Metric Scraping");
_authenticatedAzureSubscription = CreateLegacyAzureClient(azureCloud, tenantId, subscriptionId, azureAuthenticationInfo, loggerFactory, metricSinkWriter, azureScrapingSystemMetricsPublisher, azureMonitorLoggingConfiguration);
}
diff --git a/src/Promitor.Tests.Unit/Configuration/RuntimeConfigurationUnitTest.cs b/src/Promitor.Tests.Unit/Configuration/RuntimeConfigurationUnitTest.cs
index f100abcf0..0fb5a064e 100644
--- a/src/Promitor.Tests.Unit/Configuration/RuntimeConfigurationUnitTest.cs
+++ b/src/Promitor.Tests.Unit/Configuration/RuntimeConfigurationUnitTest.cs
@@ -96,6 +96,43 @@ public async Task RuntimeConfiguration_HasStartingFromInHoursConfiguredForAzureM
Assert.Equal(expectedStartingFromInHours, runtimeConfiguration.AzureMonitor.Integration.History.StartingFromInHours);
}
+ [Fact]
+ public async Task RuntimeConfiguration_HasNoNewSdkFlagForAzureMonitorIntegration_DefaultsToTrue()
+ {
+ // Arrange
+ var configuration = await RuntimeConfigurationGenerator.WithServerConfiguration()
+ .WithAzureMonitorIntegration(useAzureMonitorSdk: null)
+ .GenerateAsync();
+
+ // Act
+ var runtimeConfiguration = configuration.Get();
+
+ // Assert
+ Assert.NotNull(runtimeConfiguration);
+ Assert.NotNull(runtimeConfiguration.AzureMonitor);
+ Assert.NotNull(runtimeConfiguration.AzureMonitor.Integration);
+ Assert.True(runtimeConfiguration.AzureMonitor.Integration.UseAzureMonitorSdk);
+ }
+
+ [Fact]
+ public async Task RuntimeConfiguration_OverrideNewSdkFlagForAzureMonitorIntegration_BecomesFalse()
+ {
+ // Arrange
+ var configuration = await RuntimeConfigurationGenerator.WithServerConfiguration()
+ .WithAzureMonitorIntegration(useAzureMonitorSdk: false)
+ .GenerateAsync();
+
+ // Act
+ var runtimeConfiguration = configuration.Get();
+
+ // Assert
+ Assert.NotNull(runtimeConfiguration);
+ Assert.NotNull(runtimeConfiguration.AzureMonitor);
+ Assert.NotNull(runtimeConfiguration.AzureMonitor.Integration);
+ Assert.False(runtimeConfiguration.AzureMonitor.Integration.UseAzureMonitorSdk);
+ }
+
+
[Theory]
[InlineData(true)]
[InlineData(false)]
diff --git a/src/Promitor.Tests.Unit/Generators/Config/RuntimeConfigurationGenerator.cs b/src/Promitor.Tests.Unit/Generators/Config/RuntimeConfigurationGenerator.cs
index cbcab7220..0c4751a2b 100644
--- a/src/Promitor.Tests.Unit/Generators/Config/RuntimeConfigurationGenerator.cs
+++ b/src/Promitor.Tests.Unit/Generators/Config/RuntimeConfigurationGenerator.cs
@@ -235,7 +235,7 @@ public RuntimeConfigurationGenerator WithAzureMonitorLogging(bool isEnabled = tr
return this;
}
- public RuntimeConfigurationGenerator WithAzureMonitorIntegration(int? startingFromInHours = 100)
+ public RuntimeConfigurationGenerator WithAzureMonitorIntegration(int? startingFromInHours = 100, bool? useAzureMonitorSdk = true)
{
_runtimeConfiguration.AzureMonitor ??= new AzureMonitorConfiguration();
_runtimeConfiguration.AzureMonitor.Integration ??= new AzureMonitorIntegrationConfiguration();
@@ -247,6 +247,11 @@ public RuntimeConfigurationGenerator WithAzureMonitorIntegration(int? startingFr
_runtimeConfiguration.AzureMonitor.Integration.History.StartingFromInHours = startingFromInHours.Value;
}
+ if (useAzureMonitorSdk != null)
+ {
+ _runtimeConfiguration.AzureMonitor.Integration.UseAzureMonitorSdk = useAzureMonitorSdk.Value;
+ }
+
return this;
}
@@ -340,6 +345,7 @@ public async Task GenerateAsync()
if (_runtimeConfiguration?.AzureMonitor.Integration?.History != null)
{
configurationBuilder.AppendLine(" integration:");
+ configurationBuilder.AppendLine($" useAzureMonitorSdk: {_runtimeConfiguration?.AzureMonitor.Integration.UseAzureMonitorSdk}");
configurationBuilder.AppendLine(" history:");
configurationBuilder.AppendLine($" startingFromInHours: {_runtimeConfiguration?.AzureMonitor.Integration.History.StartingFromInHours}");
}
diff --git a/src/Promitor.Tests.Unit/Serialization/v1/Core/V1DeserializerTests.cs b/src/Promitor.Tests.Unit/Serialization/v1/Core/V1DeserializerTests.cs
index 01ed0f55f..3eee06a70 100644
--- a/src/Promitor.Tests.Unit/Serialization/v1/Core/V1DeserializerTests.cs
+++ b/src/Promitor.Tests.Unit/Serialization/v1/Core/V1DeserializerTests.cs
@@ -187,30 +187,5 @@ public void Deserialize_Metric_SetsMetricsNull()
// Assert
Assert.Null(declaration.Metrics);
}
-
- [Fact]
- public void Deserialize_NoSDKFlag_DefaultsToTrue()
- {
- // Arrange
- var node = YamlUtils.CreateYamlNode(
-@"azureMetadata:
- tenantId: '123'");
- var builder = _deserializer.Deserialize(node, _errorReporter.Object);
-
- Assert.True(builder.UseAzureMonitorSdk);
- }
-
- [Fact]
- public void Deserialize_SdkSpecified_SetsCorrectFlag()
- {
- // Arrange
- var yamlNode = YamlUtils.CreateYamlNode("useAzureMonitorSdk: false");
-
- // Act
- var builder = _deserializer.Deserialize(yamlNode, _errorReporter.Object);
-
- // Assert
- Assert.False(builder.UseAzureMonitorSdk);
- }
}
}