From 222e5a6230ceb408d1bda50d06c688d926739506 Mon Sep 17 00:00:00 2001 From: Adam Connelly Date: Sat, 10 Aug 2019 17:09:41 +0100 Subject: [PATCH] Fix resource group overriding The ability to override the resource group per metric was broken for all resource types other than the Generic resource type. This commit: - Fixes the tests for all resource types to test for this by removing the `Ignore()` method calls for the `ResourceGroupName` property and added an extra assert to check for the resource group. - Alters the deserializers to inherit directly from `MetricDeserializer` rather than `GenericAzureMetricDeserializer`. They weren't actually using any of the functionality from the generic type. - Fixes a few Scraper implementations to actually use the overridden group name. Fixes #655 --- .../v1/Core/MetricDeserializer.cs | 14 +++- .../ContainerInstanceMetricDeserializer.cs | 3 +- .../ContainerRegistryMetricDeserializer.cs | 3 +- .../Providers/CosmosDbMetricDeserializer.cs | 3 +- .../GenericAzureMetricDeserializer.cs | 4 - .../NetworkInterfaceMetricDeserializer.cs | 3 +- .../Providers/PostgreSqlMetricDeserializer.cs | 3 +- .../Providers/RedisCacheMetricDeserializer.cs | 3 +- .../ServiceBusQueueMetricDeserializer.cs | 3 +- .../StorageQueueMetricDeserializer.cs | 2 +- .../VirtualMachineMetricDeserializer.cs | 3 +- .../Factories/MetricDeserializerFactory.cs | 73 ++++++++++--------- .../ResourceTypes/ContainerInstanceScraper.cs | 2 +- .../ResourceTypes/NetworkInterfaceScraper.cs | 2 +- .../ResourceTypes/VirtualMachineScraper.cs | 2 +- ...AzureStorageQueueYamlSerializationTests.cs | 3 +- ...ContainerInstanceYamlSerializationTests.cs | 3 +- ...ContainerRegistryYamlSerializationTests.cs | 3 +- ...ationWithCosmosDbYamlSerializationTests.cs | 3 +- ...hNetworkInterfaceYamlSerializationTests.cs | 3 +- ...ionWithPostgreSqlYamlSerializationTests.cs | 3 +- ...ionWithRedisCacheYamlSerializationTests.cs | 3 +- ...thServiceBusQueueYamlSerializationTests.cs | 3 +- ...ithVirtualMachineYamlSerializationTests.cs | 3 +- .../YamlSerializationTests.cs | 1 + 25 files changed, 80 insertions(+), 71 deletions(-) diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Core/MetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Core/MetricDeserializer.cs index 8c3891b40..88e3116e4 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Core/MetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Core/MetricDeserializer.cs @@ -28,6 +28,7 @@ protected virtual TMetricDefinition DeserializeMetricDefinition(YamlMappingNode metricNode, TMetricDefinition metricDefinition) where TMetricDefinition : MetricDefinition, new() { if (metricNode.Children.ContainsKey(@"scraping") == false) diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ContainerInstanceMetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ContainerInstanceMetricDeserializer.cs index 330f1908a..518cab334 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ContainerInstanceMetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ContainerInstanceMetricDeserializer.cs @@ -1,10 +1,11 @@ using Promitor.Core.Scraping.Configuration.Model.Metrics; using Promitor.Core.Scraping.Configuration.Model.Metrics.ResourceTypes; +using Promitor.Core.Scraping.Configuration.Serialization.v1.Core; using YamlDotNet.RepresentationModel; namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers { - internal class ContainerInstanceMetricDeserializer : GenericAzureMetricDeserializer + internal class ContainerInstanceMetricDeserializer : MetricDeserializer { /// Deserializes the specified Container Instances metric node from the YAML configuration file. /// The metric node to deserialize to Container Instances configuration diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ContainerRegistryMetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ContainerRegistryMetricDeserializer.cs index 315ec048a..2963132d6 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ContainerRegistryMetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ContainerRegistryMetricDeserializer.cs @@ -1,10 +1,11 @@ using Promitor.Core.Scraping.Configuration.Model.Metrics; using Promitor.Core.Scraping.Configuration.Model.Metrics.ResourceTypes; +using Promitor.Core.Scraping.Configuration.Serialization.v1.Core; using YamlDotNet.RepresentationModel; namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers { - internal class ContainerRegistryMetricDeserializer : GenericAzureMetricDeserializer + internal class ContainerRegistryMetricDeserializer : MetricDeserializer { /// Deserializes the specified Container Registry metric node from the YAML configuration file. /// The metric node to deserialize to Container Registry configuration diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/CosmosDbMetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/CosmosDbMetricDeserializer.cs index 9f0a09c41..7e9bedaaa 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/CosmosDbMetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/CosmosDbMetricDeserializer.cs @@ -1,10 +1,11 @@ using Promitor.Core.Scraping.Configuration.Model.Metrics; using Promitor.Core.Scraping.Configuration.Model.Metrics.ResourceTypes; +using Promitor.Core.Scraping.Configuration.Serialization.v1.Core; using YamlDotNet.RepresentationModel; namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers { - internal class CosmosDbMetricDeserializer : GenericAzureMetricDeserializer + internal class CosmosDbMetricDeserializer : MetricDeserializer { /// Deserializes the specified Cosmos DB metric node from the YAML configuration file. /// The metric node to deserialize to Cosmos DB configuration diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/GenericAzureMetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/GenericAzureMetricDeserializer.cs index 06823d54c..09e3a270f 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/GenericAzureMetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/GenericAzureMetricDeserializer.cs @@ -18,10 +18,6 @@ internal override MetricDefinition Deserialize(YamlMappingNode metricNode) { metricDefinition.Filter = filterNode?.ToString(); } - if (metricNode.Children.TryGetValue(new YamlScalarNode("resourceGroupName"), out var resourceGroupName)) - { - metricDefinition.ResourceGroupName = resourceGroupName?.ToString(); - } var resourceUri = metricNode.Children[new YamlScalarNode(value: "resourceUri")]; diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/NetworkInterfaceMetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/NetworkInterfaceMetricDeserializer.cs index 69c166333..d0de7fd65 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/NetworkInterfaceMetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/NetworkInterfaceMetricDeserializer.cs @@ -1,10 +1,11 @@ using Promitor.Core.Scraping.Configuration.Model.Metrics; using Promitor.Core.Scraping.Configuration.Model.Metrics.ResourceTypes; +using Promitor.Core.Scraping.Configuration.Serialization.v1.Core; using YamlDotNet.RepresentationModel; namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers { - internal class NetworkInterfaceMetricDeserializer : GenericAzureMetricDeserializer + internal class NetworkInterfaceMetricDeserializer : MetricDeserializer { /// Deserializes the specified Network Interface metric node from the YAML configuration file. /// The metric node containing 'networkInterfaceName' parameter pointing to an instance of a Network Interface diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/PostgreSqlMetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/PostgreSqlMetricDeserializer.cs index f0667c062..f0020680f 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/PostgreSqlMetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/PostgreSqlMetricDeserializer.cs @@ -1,5 +1,6 @@ using Promitor.Core.Scraping.Configuration.Model.Metrics; using Promitor.Core.Scraping.Configuration.Model.Metrics.ResourceTypes; +using Promitor.Core.Scraping.Configuration.Serialization.v1.Core; using YamlDotNet.RepresentationModel; namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers @@ -7,7 +8,7 @@ namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers /// /// Defines a deserializer for the PostgreSQL Server resource type /// - internal class PostgreSqlMetricDeserializer : GenericAzureMetricDeserializer + internal class PostgreSqlMetricDeserializer : MetricDeserializer { /// /// Deserializes the specified PostgreSQL Server metric node from the YAML configuration file. diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/RedisCacheMetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/RedisCacheMetricDeserializer.cs index 7eac0ec60..9629be7db 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/RedisCacheMetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/RedisCacheMetricDeserializer.cs @@ -1,5 +1,6 @@ using Promitor.Core.Scraping.Configuration.Model.Metrics; using Promitor.Core.Scraping.Configuration.Model.Metrics.ResourceTypes; +using Promitor.Core.Scraping.Configuration.Serialization.v1.Core; using YamlDotNet.RepresentationModel; namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers @@ -7,7 +8,7 @@ namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers /// /// Defines a deserializer for the Redis Cache resource type /// - internal class RedisCacheMetricDeserializer : GenericAzureMetricDeserializer + internal class RedisCacheMetricDeserializer : MetricDeserializer { /// /// Deserializes the specified Redis Cache metric node from the YAML configuration file. diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ServiceBusQueueMetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ServiceBusQueueMetricDeserializer.cs index 9c1f6d0a4..9771b222f 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ServiceBusQueueMetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/ServiceBusQueueMetricDeserializer.cs @@ -1,10 +1,11 @@ using Promitor.Core.Scraping.Configuration.Model.Metrics; using Promitor.Core.Scraping.Configuration.Model.Metrics.ResourceTypes; +using Promitor.Core.Scraping.Configuration.Serialization.v1.Core; using YamlDotNet.RepresentationModel; namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers { - internal class ServiceBusQueueMetricDeserializer : GenericAzureMetricDeserializer + internal class ServiceBusQueueMetricDeserializer : MetricDeserializer { /// Deserializes the specified Service Bus Queue metric node from the YAML configuration file. /// The metric node to deserialize to Service Bus queue diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/StorageQueueMetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/StorageQueueMetricDeserializer.cs index 2491907ad..d8e398fcc 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/StorageQueueMetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/StorageQueueMetricDeserializer.cs @@ -6,7 +6,7 @@ namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers { - internal class StorageQueueMetricDeserializer : GenericAzureMetricDeserializer + internal class StorageQueueMetricDeserializer : MetricDeserializer { /// Deserializes the specified Storage Queue metric node from the YAML configuration file. /// The metric node to deserialize to Storage queue configuration diff --git a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/VirtualMachineMetricDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/VirtualMachineMetricDeserializer.cs index 768fea78f..3cbb78711 100644 --- a/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/VirtualMachineMetricDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/v1/Providers/VirtualMachineMetricDeserializer.cs @@ -1,10 +1,11 @@ using Promitor.Core.Scraping.Configuration.Model.Metrics; using Promitor.Core.Scraping.Configuration.Model.Metrics.ResourceTypes; +using Promitor.Core.Scraping.Configuration.Serialization.v1.Core; using YamlDotNet.RepresentationModel; namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Providers { - internal class VirtualMachineMetricDeserializer : GenericAzureMetricDeserializer + internal class VirtualMachineMetricDeserializer : MetricDeserializer { /// Deserializes the specified Virtual Machine metric node from the YAML configuration file. /// The metric node containing 'virtualMachineName' parameter pointing to an instance of a Virtual Machine diff --git a/src/Promitor.Core.Scraping/Factories/MetricDeserializerFactory.cs b/src/Promitor.Core.Scraping/Factories/MetricDeserializerFactory.cs index 8a676bcdf..7a2f6c151 100644 --- a/src/Promitor.Core.Scraping/Factories/MetricDeserializerFactory.cs +++ b/src/Promitor.Core.Scraping/Factories/MetricDeserializerFactory.cs @@ -1,37 +1,38 @@ -using System; -using Promitor.Core.Scraping.Configuration.Serialization.v1.Providers; - -namespace Promitor.Core.Scraping.Factories -{ - internal static class MetricDeserializerFactory - { - internal static GenericAzureMetricDeserializer GetDeserializerFor(Configuration.Model.ResourceType resource) - { - switch (resource) - { - case Configuration.Model.ResourceType.Generic: - return new GenericAzureMetricDeserializer(); - case Configuration.Model.ResourceType.ServiceBusQueue: - return new ServiceBusQueueMetricDeserializer(); - case Configuration.Model.ResourceType.StorageQueue: - return new StorageQueueMetricDeserializer(); - case Configuration.Model.ResourceType.ContainerInstance: - return new ContainerInstanceMetricDeserializer(); - case Configuration.Model.ResourceType.VirtualMachine: - return new VirtualMachineMetricDeserializer(); - case Configuration.Model.ResourceType.ContainerRegistry: - return new ContainerRegistryMetricDeserializer(); - case Configuration.Model.ResourceType.NetworkInterface: - return new NetworkInterfaceMetricDeserializer(); - case Configuration.Model.ResourceType.CosmosDb: - return new CosmosDbMetricDeserializer(); - case Configuration.Model.ResourceType.RedisCache: +using System; +using Promitor.Core.Scraping.Configuration.Serialization.v1.Core; +using Promitor.Core.Scraping.Configuration.Serialization.v1.Providers; + +namespace Promitor.Core.Scraping.Factories +{ + internal static class MetricDeserializerFactory + { + internal static MetricDeserializer GetDeserializerFor(Configuration.Model.ResourceType resource) + { + switch (resource) + { + case Configuration.Model.ResourceType.Generic: + return new GenericAzureMetricDeserializer(); + case Configuration.Model.ResourceType.ServiceBusQueue: + return new ServiceBusQueueMetricDeserializer(); + case Configuration.Model.ResourceType.StorageQueue: + return new StorageQueueMetricDeserializer(); + case Configuration.Model.ResourceType.ContainerInstance: + return new ContainerInstanceMetricDeserializer(); + case Configuration.Model.ResourceType.VirtualMachine: + return new VirtualMachineMetricDeserializer(); + case Configuration.Model.ResourceType.ContainerRegistry: + return new ContainerRegistryMetricDeserializer(); + case Configuration.Model.ResourceType.NetworkInterface: + return new NetworkInterfaceMetricDeserializer(); + case Configuration.Model.ResourceType.CosmosDb: + return new CosmosDbMetricDeserializer(); + case Configuration.Model.ResourceType.RedisCache: return new RedisCacheMetricDeserializer(); - case Configuration.Model.ResourceType.PostgreSql: - return new PostgreSqlMetricDeserializer(); - } - - throw new ArgumentOutOfRangeException($@"Resource Type {resource} not supported."); - } - } -} + case Configuration.Model.ResourceType.PostgreSql: + return new PostgreSqlMetricDeserializer(); + } + + throw new ArgumentOutOfRangeException($@"Resource Type {resource} not supported."); + } + } +} diff --git a/src/Promitor.Core.Scraping/ResourceTypes/ContainerInstanceScraper.cs b/src/Promitor.Core.Scraping/ResourceTypes/ContainerInstanceScraper.cs index 0ec1b81a8..75b95e78a 100644 --- a/src/Promitor.Core.Scraping/ResourceTypes/ContainerInstanceScraper.cs +++ b/src/Promitor.Core.Scraping/ResourceTypes/ContainerInstanceScraper.cs @@ -16,7 +16,7 @@ public ContainerInstanceScraper(ScraperConfiguration scraperConfiguration) protected override async Task ScrapeResourceAsync(string subscriptionId, string resourceGroupName, ContainerInstanceMetricDefinition metricDefinition, AggregationType aggregationType, TimeSpan aggregationInterval) { - var resourceUri = string.Format(ResourceUriTemplate, AzureMetadata.SubscriptionId, AzureMetadata.ResourceGroupName, metricDefinition.ContainerGroup); + var resourceUri = string.Format(ResourceUriTemplate, AzureMetadata.SubscriptionId, resourceGroupName, metricDefinition.ContainerGroup); var metricName = metricDefinition.AzureMetricConfiguration.MetricName; var foundMetricValue = await AzureMonitorClient.QueryMetricAsync(metricName, aggregationType, aggregationInterval, resourceUri); diff --git a/src/Promitor.Core.Scraping/ResourceTypes/NetworkInterfaceScraper.cs b/src/Promitor.Core.Scraping/ResourceTypes/NetworkInterfaceScraper.cs index 29720ce3a..f5f6879fc 100644 --- a/src/Promitor.Core.Scraping/ResourceTypes/NetworkInterfaceScraper.cs +++ b/src/Promitor.Core.Scraping/ResourceTypes/NetworkInterfaceScraper.cs @@ -16,7 +16,7 @@ public NetworkInterfaceScraper(ScraperConfiguration scraperConfiguration) protected override async Task ScrapeResourceAsync(string subscriptionId, string resourceGroupName, NetworkInterfaceMetricDefinition metricDefinition, AggregationType aggregationType, TimeSpan aggregationInterval) { - var resourceUri = string.Format(ResourceUriTemplate, AzureMetadata.SubscriptionId, AzureMetadata.ResourceGroupName, metricDefinition.NetworkInterfaceName); + var resourceUri = string.Format(ResourceUriTemplate, AzureMetadata.SubscriptionId, resourceGroupName, metricDefinition.NetworkInterfaceName); var metricName = metricDefinition.AzureMetricConfiguration.MetricName; var foundMetricValue = await AzureMonitorClient.QueryMetricAsync(metricName, aggregationType, aggregationInterval, resourceUri); diff --git a/src/Promitor.Core.Scraping/ResourceTypes/VirtualMachineScraper.cs b/src/Promitor.Core.Scraping/ResourceTypes/VirtualMachineScraper.cs index 06f061272..5f8af669a 100644 --- a/src/Promitor.Core.Scraping/ResourceTypes/VirtualMachineScraper.cs +++ b/src/Promitor.Core.Scraping/ResourceTypes/VirtualMachineScraper.cs @@ -16,7 +16,7 @@ public VirtualMachineScraper(ScraperConfiguration scraperConfiguration) protected override async Task ScrapeResourceAsync(string subscriptionId, string resourceGroupName, VirtualMachineMetricDefinition metricDefinition, AggregationType aggregationType, TimeSpan aggregationInterval) { - var resourceUri = string.Format(ResourceUriTemplate, AzureMetadata.SubscriptionId, AzureMetadata.ResourceGroupName, metricDefinition.VirtualMachineName); + var resourceUri = string.Format(ResourceUriTemplate, AzureMetadata.SubscriptionId, resourceGroupName, metricDefinition.VirtualMachineName); var metricName = metricDefinition.AzureMetricConfiguration.MetricName; var foundMetricValue = await AzureMonitorClient.QueryMetricAsync(metricName, aggregationType, aggregationInterval, resourceUri); diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithAzureStorageQueueYamlSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithAzureStorageQueueYamlSerializationTests.cs index 70f7ac8ce..50468a2c6 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithAzureStorageQueueYamlSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithAzureStorageQueueYamlSerializationTests.cs @@ -88,8 +88,7 @@ private StorageQueueMetricDefinition GenerateBogusAzureStorageQueueMetricDefinit .RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration) .RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName) .RuleFor(metricDefinition => metricDefinition.Scraping, faker => bogusScrapingInterval) - .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }) - .Ignore(metricDefinition => metricDefinition.ResourceGroupName); + .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }); return bogusGenerator.Generate(); } diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithContainerInstanceYamlSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithContainerInstanceYamlSerializationTests.cs index e84aa9d69..9a5e049b3 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithContainerInstanceYamlSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithContainerInstanceYamlSerializationTests.cs @@ -76,8 +76,7 @@ private ContainerInstanceMetricDefinition GenerateBogusContainerInstanceMetricDe .RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration) .RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName) .RuleFor(metricDefinition => metricDefinition.Scraping, faker => bogusScrapingInterval) - .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }) - .Ignore(metricDefinition => metricDefinition.ResourceGroupName); + .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }); return bogusGenerator.Generate(); } diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithContainerRegistryYamlSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithContainerRegistryYamlSerializationTests.cs index 183cf5755..d82b7bf65 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithContainerRegistryYamlSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithContainerRegistryYamlSerializationTests.cs @@ -72,8 +72,7 @@ private ContainerRegistryMetricDefinition GenerateBogusContainerRegistryMetricDe .RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration) .RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName) .RuleFor(metricDefinition => metricDefinition.Scraping, faker => bogusScrapingInterval) - .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }) - .Ignore(metricDefinition => metricDefinition.ResourceGroupName); + .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }); return bogusGenerator.Generate(); } diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithCosmosDbYamlSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithCosmosDbYamlSerializationTests.cs index 827a610c8..b2403e72b 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithCosmosDbYamlSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithCosmosDbYamlSerializationTests.cs @@ -72,8 +72,7 @@ private CosmosDbMetricDefinition GenerateBogusCosmosDbMetricDefinition(string re .RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration) .RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName) .RuleFor(metricDefinition => metricDefinition.Scraping, faker => bogusScrapingInterval) - .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }) - .Ignore(metricDefinition => metricDefinition.ResourceGroupName); + .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }); return bogusGenerator.Generate(); } diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithNetworkInterfaceYamlSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithNetworkInterfaceYamlSerializationTests.cs index 933ca6dcf..90793b164 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithNetworkInterfaceYamlSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithNetworkInterfaceYamlSerializationTests.cs @@ -71,8 +71,7 @@ private NetworkInterfaceMetricDefinition GenerateBogusNetworkInterfaceMetricDefi .RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration) .RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName) .RuleFor(metricDefinition => metricDefinition.Scraping, faker => bogusScrapingInterval) - .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }) - .Ignore(metricDefinition => metricDefinition.ResourceGroupName); + .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }); return bogusGenerator.Generate(); } diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithPostgreSqlYamlSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithPostgreSqlYamlSerializationTests.cs index 0d60d0a1d..1b3c5a174 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithPostgreSqlYamlSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithPostgreSqlYamlSerializationTests.cs @@ -71,8 +71,7 @@ private PostgreSqlMetricDefinition GenerateBogusPostgreSqlMetricDefinition(strin .RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration) .RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName) .RuleFor(metricDefinition => metricDefinition.Scraping, faker => bogusScrapingInterval) - .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }) - .Ignore(metricDefinition => metricDefinition.ResourceGroupName); + .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }); return bogusGenerator.Generate(); } diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithRedisCacheYamlSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithRedisCacheYamlSerializationTests.cs index a5bef6cef..8adb7396b 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithRedisCacheYamlSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithRedisCacheYamlSerializationTests.cs @@ -71,8 +71,7 @@ private RedisCacheMetricDefinition GenerateBogusRedisCacheMetricDefinition(strin .RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration) .RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName) .RuleFor(metricDefinition => metricDefinition.Scraping, faker => bogusScrapingInterval) - .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }) - .Ignore(metricDefinition => metricDefinition.ResourceGroupName); + .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }); return bogusGenerator.Generate(); } diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithServiceBusQueueYamlSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithServiceBusQueueYamlSerializationTests.cs index e8ddac67e..4a01b1b96 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithServiceBusQueueYamlSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithServiceBusQueueYamlSerializationTests.cs @@ -78,8 +78,7 @@ private ServiceBusQueueMetricDefinition GenerateBogusServiceBusMetricDefinition( { { faker.Name.FirstName(), faker.Random.Guid().ToString() }, { faker.Name.FirstName(), faker.Random.Guid().ToString() } - }) - .Ignore(metricDefinition => metricDefinition.ResourceGroupName); + }); return bogusGenerator.Generate(); } diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithVirtualMachineYamlSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithVirtualMachineYamlSerializationTests.cs index bcfc51738..1f7db6039 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithVirtualMachineYamlSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/MetricsDeclarationWithVirtualMachineYamlSerializationTests.cs @@ -77,8 +77,7 @@ private VirtualMachineMetricDefinition GenerateBogusVirtualMachineMetricDefiniti .RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration) .RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName) .RuleFor(metricDefinition => metricDefinition.Scraping, faker => bogusScrapingInterval) - .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }) - .Ignore(metricDefinition => metricDefinition.ResourceGroupName); + .RuleFor(metricDefinition => metricDefinition.Labels, faker => new Dictionary { { faker.Name.FirstName(), faker.Random.Guid().ToString() } }); return bogusGenerator.Generate(); } diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/YamlSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/YamlSerializationTests.cs index 17ae17afc..62f5d6e92 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/YamlSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/MetricsDeclaration/YamlSerializationTests.cs @@ -18,6 +18,7 @@ protected void AssertMetricDefinition(MetricDefinition deserializedMetricDefinit Assert.Equal(metricDefinition.ResourceType, deserializedMetricDefinition.ResourceType); Assert.NotNull(deserializedMetricDefinition.Labels); Assert.Equal(deserializedMetricDefinition.Labels, metricDefinition.Labels); + Assert.Equal(deserializedMetricDefinition.ResourceGroupName, metricDefinition.ResourceGroupName); foreach (var label in metricDefinition.Labels) {