From d4e338bc58201c9d99e681c415352d7a632d2f55 Mon Sep 17 00:00:00 2001 From: Tom Kerkhove Date: Sat, 10 Nov 2018 16:28:37 +0100 Subject: [PATCH] Refactor code out of host (#215) Signed-off-by: Tom Kerkhove --- .../Configuration/Model/AzureCredentials.cs | 2 +- .../Configuration/Model/AzureMetadata.cs | 2 +- .../Model/AzureMetricConfiguration.cs | 2 +- .../Model/Metrics/MetricDefinition.cs | 2 +- .../ResouceTypes/GenericMetricDefinition.cs | 2 +- .../ServiceBusQueueMetricDefinition.cs | 2 +- .../Configuration/Model/MetricsDeclaration.cs | 4 +- .../Configuration/Model/ResourceType.cs | 2 +- .../Interfaces/IMetricsDeclarationProvider.cs | 4 +- .../Providers/MetricsDeclarationProvider.cs | 8 +- .../AzureMetadataDeserializer.cs | 6 +- .../AzureMetricConfigurationDeserializer.cs | 8 +- .../Serialization/ConfigurationSerializer.cs | 8 +- .../Serialization/Deserializer.cs | 2 +- .../Serialization/MetricsDeserializer.cs | 8 +- src/Promitor.Core.Scraping/Constants.cs | 10 ++ .../Exceptions/ScrapingException.cs | 2 +- .../Factories/MetricScraperFactory.cs | 14 +-- .../Interfaces/IScraper.cs | 10 ++ .../Promitor.Core.Scraping.csproj | 29 +++++ .../ResouceTypes/GenericScraper.cs | 6 +- .../ResouceTypes/ServiceBusQueueScraper.cs | 6 +- .../ScrapeEndpoint.cs | 2 +- .../Scraper.cs | 10 +- .../EnvironmentVariables.cs | 10 -- .../Promitor.Core.Telemetry.csproj | 4 + .../EnvironmentVariables.cs | 7 +- src/Promitor.Core/Promitor.Core.csproj | 21 ++++ .../Serialization/Yaml}/YamlSerialization.cs | 2 +- src/Promitor.Scraper.Host/Constants.cs | 5 - .../Controllers/v1/ConfigurationController.cs | 4 +- src/Promitor.Scraper.Host/Dockerfile | 4 +- src/Promitor.Scraper.Host/Docs/Open-Api.xml | 118 +++--------------- .../IApplicationBuilderExtensions.cs | 5 +- .../IServiceCollectionExtensions.cs | 3 +- .../Promitor.Scraper.Host.csproj | 2 + .../Scheduling/AzureMonitorScrapingTask.cs | 9 +- .../Scraping/Interfaces/IScraper.cs | 10 -- src/Promitor.Scraper.Host/Startup.cs | 7 +- .../Interfaces/IMetricValidator.cs | 2 +- .../MetricDefinitions/MetricsValidator.cs | 6 +- .../ResourceTypes/GenericMetricValidator.cs | 2 +- .../ServiceBusQueueMetricValidator.cs | 2 +- .../AzureAuthenticationValidationStep.cs | 1 + .../Steps/ConfigurationPathValidationStep.cs | 3 +- .../Steps/MetricsDeclarationValidationStep.cs | 10 +- .../Steps/ScrapingScheduleValidationStep.cs | 1 + .../Builders/MetricsDeclarationBuilder.cs | 8 +- .../Promitor.Scraper.Tests.Unit.csproj | 1 + ...amlMetricsDeclarationSerializationTests.cs | 8 +- .../Stubs/MetricsDeclarationProviderStub.cs | 4 +- .../AzureAuthenticationValidationStepTests.cs | 2 +- .../ConfigurationPathValidationStepTests.cs | 2 +- .../ScrapingScheduleValidationStepTests.cs | 2 +- src/Promitor.sln | 14 +++ 55 files changed, 212 insertions(+), 218 deletions(-) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Model/AzureCredentials.cs (71%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Model/AzureMetadata.cs (77%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Model/AzureMetricConfiguration.cs (89%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Model/Metrics/MetricDefinition.cs (92%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Model/Metrics/ResouceTypes/GenericMetricDefinition.cs (76%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Model/Metrics/ResouceTypes/ServiceBusQueueMetricDefinition.cs (77%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Model/MetricsDeclaration.cs (68%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Model/ResourceType.cs (68%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Providers/Interfaces/IMetricsDeclarationProvider.cs (73%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Providers/MetricsDeclarationProvider.cs (81%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Serialization/AzureMetadataDeserializer.cs (86%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Serialization/AzureMetricConfigurationDeserializer.cs (89%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Serialization/ConfigurationSerializer.cs (91%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Serialization/Deserializer.cs (94%) rename src/{Promitor.Scraper.Host => Promitor.Core.Scraping}/Configuration/Serialization/MetricsDeserializer.cs (93%) create mode 100644 src/Promitor.Core.Scraping/Constants.cs rename src/{Promitor.Scraper.Host/Scraping => Promitor.Core.Scraping}/Exceptions/ScrapingException.cs (83%) rename src/{Promitor.Scraper.Host/Scraping => Promitor.Core.Scraping}/Factories/MetricScraperFactory.cs (76%) create mode 100644 src/Promitor.Core.Scraping/Interfaces/IScraper.cs create mode 100644 src/Promitor.Core.Scraping/Promitor.Core.Scraping.csproj rename src/{Promitor.Scraper.Host/Scraping => Promitor.Core.Scraping}/ResouceTypes/GenericScraper.cs (87%) rename src/{Promitor.Scraper.Host/Scraping => Promitor.Core.Scraping}/ResouceTypes/ServiceBusQueueScraper.cs (88%) rename src/{Promitor.Scraper.Host/Scraping => Promitor.Core.Scraping}/ScrapeEndpoint.cs (95%) rename src/{Promitor.Scraper.Host/Scraping => Promitor.Core.Scraping}/Scraper.cs (94%) delete mode 100644 src/Promitor.Core.Telemetry/EnvironmentVariables.cs rename src/{Promitor.Scraper.Host => Promitor.Core}/EnvironmentVariables.cs (76%) create mode 100644 src/Promitor.Core/Promitor.Core.csproj rename src/{Promitor.Scraper.Host/Serialization => Promitor.Core/Serialization/Yaml}/YamlSerialization.cs (94%) delete mode 100644 src/Promitor.Scraper.Host/Scraping/Interfaces/IScraper.cs diff --git a/src/Promitor.Scraper.Host/Configuration/Model/AzureCredentials.cs b/src/Promitor.Core.Scraping/Configuration/Model/AzureCredentials.cs similarity index 71% rename from src/Promitor.Scraper.Host/Configuration/Model/AzureCredentials.cs rename to src/Promitor.Core.Scraping/Configuration/Model/AzureCredentials.cs index 6ac7fba6d..a34b5df12 100644 --- a/src/Promitor.Scraper.Host/Configuration/Model/AzureCredentials.cs +++ b/src/Promitor.Core.Scraping/Configuration/Model/AzureCredentials.cs @@ -1,4 +1,4 @@ -namespace Promitor.Scraper.Host.Configuration.Model +namespace Promitor.Core.Scraping.Configuration.Model { public class AzureCredentials { diff --git a/src/Promitor.Scraper.Host/Configuration/Model/AzureMetadata.cs b/src/Promitor.Core.Scraping/Configuration/Model/AzureMetadata.cs similarity index 77% rename from src/Promitor.Scraper.Host/Configuration/Model/AzureMetadata.cs rename to src/Promitor.Core.Scraping/Configuration/Model/AzureMetadata.cs index 38c661f20..569e6c4a6 100644 --- a/src/Promitor.Scraper.Host/Configuration/Model/AzureMetadata.cs +++ b/src/Promitor.Core.Scraping/Configuration/Model/AzureMetadata.cs @@ -1,4 +1,4 @@ -namespace Promitor.Scraper.Host.Configuration.Model +namespace Promitor.Core.Scraping.Configuration.Model { public class AzureMetadata { diff --git a/src/Promitor.Scraper.Host/Configuration/Model/AzureMetricConfiguration.cs b/src/Promitor.Core.Scraping/Configuration/Model/AzureMetricConfiguration.cs similarity index 89% rename from src/Promitor.Scraper.Host/Configuration/Model/AzureMetricConfiguration.cs rename to src/Promitor.Core.Scraping/Configuration/Model/AzureMetricConfiguration.cs index 45b1c4bb7..cbe0522a9 100644 --- a/src/Promitor.Scraper.Host/Configuration/Model/AzureMetricConfiguration.cs +++ b/src/Promitor.Core.Scraping/Configuration/Model/AzureMetricConfiguration.cs @@ -1,6 +1,6 @@ using Microsoft.Azure.Management.Monitor.Fluent.Models; -namespace Promitor.Scraper.Host.Configuration.Model +namespace Promitor.Core.Scraping.Configuration.Model { public class AzureMetricConfiguration { diff --git a/src/Promitor.Scraper.Host/Configuration/Model/Metrics/MetricDefinition.cs b/src/Promitor.Core.Scraping/Configuration/Model/Metrics/MetricDefinition.cs similarity index 92% rename from src/Promitor.Scraper.Host/Configuration/Model/Metrics/MetricDefinition.cs rename to src/Promitor.Core.Scraping/Configuration/Model/Metrics/MetricDefinition.cs index 662a6d097..8eb72cb4c 100644 --- a/src/Promitor.Scraper.Host/Configuration/Model/Metrics/MetricDefinition.cs +++ b/src/Promitor.Core.Scraping/Configuration/Model/Metrics/MetricDefinition.cs @@ -1,4 +1,4 @@ -namespace Promitor.Scraper.Host.Configuration.Model.Metrics +namespace Promitor.Core.Scraping.Configuration.Model.Metrics { public class MetricDefinition { diff --git a/src/Promitor.Scraper.Host/Configuration/Model/Metrics/ResouceTypes/GenericMetricDefinition.cs b/src/Promitor.Core.Scraping/Configuration/Model/Metrics/ResouceTypes/GenericMetricDefinition.cs similarity index 76% rename from src/Promitor.Scraper.Host/Configuration/Model/Metrics/ResouceTypes/GenericMetricDefinition.cs rename to src/Promitor.Core.Scraping/Configuration/Model/Metrics/ResouceTypes/GenericMetricDefinition.cs index c6c923f83..adba6e85a 100644 --- a/src/Promitor.Scraper.Host/Configuration/Model/Metrics/ResouceTypes/GenericMetricDefinition.cs +++ b/src/Promitor.Core.Scraping/Configuration/Model/Metrics/ResouceTypes/GenericMetricDefinition.cs @@ -1,4 +1,4 @@ -namespace Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes +namespace Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes { public class GenericMetricDefinition : MetricDefinition { diff --git a/src/Promitor.Scraper.Host/Configuration/Model/Metrics/ResouceTypes/ServiceBusQueueMetricDefinition.cs b/src/Promitor.Core.Scraping/Configuration/Model/Metrics/ResouceTypes/ServiceBusQueueMetricDefinition.cs similarity index 77% rename from src/Promitor.Scraper.Host/Configuration/Model/Metrics/ResouceTypes/ServiceBusQueueMetricDefinition.cs rename to src/Promitor.Core.Scraping/Configuration/Model/Metrics/ResouceTypes/ServiceBusQueueMetricDefinition.cs index 91385ddfb..83d743b1a 100644 --- a/src/Promitor.Scraper.Host/Configuration/Model/Metrics/ResouceTypes/ServiceBusQueueMetricDefinition.cs +++ b/src/Promitor.Core.Scraping/Configuration/Model/Metrics/ResouceTypes/ServiceBusQueueMetricDefinition.cs @@ -1,4 +1,4 @@ -namespace Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes +namespace Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes { public class ServiceBusQueueMetricDefinition : MetricDefinition { diff --git a/src/Promitor.Scraper.Host/Configuration/Model/MetricsDeclaration.cs b/src/Promitor.Core.Scraping/Configuration/Model/MetricsDeclaration.cs similarity index 68% rename from src/Promitor.Scraper.Host/Configuration/Model/MetricsDeclaration.cs rename to src/Promitor.Core.Scraping/Configuration/Model/MetricsDeclaration.cs index 2fdb541bd..b3783b86b 100644 --- a/src/Promitor.Scraper.Host/Configuration/Model/MetricsDeclaration.cs +++ b/src/Promitor.Core.Scraping/Configuration/Model/MetricsDeclaration.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; -using Promitor.Scraper.Host.Configuration.Model.Metrics; +using Promitor.Core.Scraping.Configuration.Model.Metrics; -namespace Promitor.Scraper.Host.Configuration.Model +namespace Promitor.Core.Scraping.Configuration.Model { public class MetricsDeclaration { diff --git a/src/Promitor.Scraper.Host/Configuration/Model/ResourceType.cs b/src/Promitor.Core.Scraping/Configuration/Model/ResourceType.cs similarity index 68% rename from src/Promitor.Scraper.Host/Configuration/Model/ResourceType.cs rename to src/Promitor.Core.Scraping/Configuration/Model/ResourceType.cs index 9d5fd32aa..4b01e85ce 100644 --- a/src/Promitor.Scraper.Host/Configuration/Model/ResourceType.cs +++ b/src/Promitor.Core.Scraping/Configuration/Model/ResourceType.cs @@ -1,4 +1,4 @@ -namespace Promitor.Scraper.Host.Configuration.Model +namespace Promitor.Core.Scraping.Configuration.Model { public enum ResourceType { diff --git a/src/Promitor.Scraper.Host/Configuration/Providers/Interfaces/IMetricsDeclarationProvider.cs b/src/Promitor.Core.Scraping/Configuration/Providers/Interfaces/IMetricsDeclarationProvider.cs similarity index 73% rename from src/Promitor.Scraper.Host/Configuration/Providers/Interfaces/IMetricsDeclarationProvider.cs rename to src/Promitor.Core.Scraping/Configuration/Providers/Interfaces/IMetricsDeclarationProvider.cs index eb9ec8bfb..5a8bb9d3d 100644 --- a/src/Promitor.Scraper.Host/Configuration/Providers/Interfaces/IMetricsDeclarationProvider.cs +++ b/src/Promitor.Core.Scraping/Configuration/Providers/Interfaces/IMetricsDeclarationProvider.cs @@ -1,6 +1,6 @@ -using Promitor.Scraper.Host.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model; -namespace Promitor.Scraper.Host.Configuration.Providers.Interfaces +namespace Promitor.Core.Scraping.Configuration.Providers.Interfaces { public interface IMetricsDeclarationProvider { diff --git a/src/Promitor.Scraper.Host/Configuration/Providers/MetricsDeclarationProvider.cs b/src/Promitor.Core.Scraping/Configuration/Providers/MetricsDeclarationProvider.cs similarity index 81% rename from src/Promitor.Scraper.Host/Configuration/Providers/MetricsDeclarationProvider.cs rename to src/Promitor.Core.Scraping/Configuration/Providers/MetricsDeclarationProvider.cs index 2d2c59f58..8d55687ea 100644 --- a/src/Promitor.Scraper.Host/Configuration/Providers/MetricsDeclarationProvider.cs +++ b/src/Promitor.Core.Scraping/Configuration/Providers/MetricsDeclarationProvider.cs @@ -1,10 +1,10 @@ using System; using System.IO; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Providers.Interfaces; -using Promitor.Scraper.Host.Configuration.Serialization; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Providers.Interfaces; +using Promitor.Core.Scraping.Configuration.Serialization; -namespace Promitor.Scraper.Host.Configuration.Providers +namespace Promitor.Core.Scraping.Configuration.Providers { public class MetricsDeclarationProvider : IMetricsDeclarationProvider { diff --git a/src/Promitor.Scraper.Host/Configuration/Serialization/AzureMetadataDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/AzureMetadataDeserializer.cs similarity index 86% rename from src/Promitor.Scraper.Host/Configuration/Serialization/AzureMetadataDeserializer.cs rename to src/Promitor.Core.Scraping/Configuration/Serialization/AzureMetadataDeserializer.cs index 9921ae8b2..f61fc4312 100644 --- a/src/Promitor.Scraper.Host/Configuration/Serialization/AzureMetadataDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/AzureMetadataDeserializer.cs @@ -1,8 +1,8 @@ -using Promitor.Scraper.Host.Configuration.Model; -using GuardNet; +using GuardNet; +using Promitor.Core.Scraping.Configuration.Model; using YamlDotNet.RepresentationModel; -namespace Promitor.Scraper.Host.Configuration.Serialization +namespace Promitor.Core.Scraping.Configuration.Serialization { internal class AzureMetadataDeserializer : Deserializer { diff --git a/src/Promitor.Scraper.Host/Configuration/Serialization/AzureMetricConfigurationDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/AzureMetricConfigurationDeserializer.cs similarity index 89% rename from src/Promitor.Scraper.Host/Configuration/Serialization/AzureMetricConfigurationDeserializer.cs rename to src/Promitor.Core.Scraping/Configuration/Serialization/AzureMetricConfigurationDeserializer.cs index e6c8c189f..86741d6f3 100644 --- a/src/Promitor.Scraper.Host/Configuration/Serialization/AzureMetricConfigurationDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/AzureMetricConfigurationDeserializer.cs @@ -1,10 +1,10 @@ -using GuardNet; +using System; +using GuardNet; using Microsoft.Azure.Management.Monitor.Fluent.Models; -using Promitor.Scraper.Host.Configuration.Model; -using System; +using Promitor.Core.Scraping.Configuration.Model; using YamlDotNet.RepresentationModel; -namespace Promitor.Scraper.Host.Configuration.Serialization +namespace Promitor.Core.Scraping.Configuration.Serialization { internal class AzureMetricConfigurationDeserializer : Deserializer { diff --git a/src/Promitor.Scraper.Host/Configuration/Serialization/ConfigurationSerializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/ConfigurationSerializer.cs similarity index 91% rename from src/Promitor.Scraper.Host/Configuration/Serialization/ConfigurationSerializer.cs rename to src/Promitor.Core.Scraping/Configuration/Serialization/ConfigurationSerializer.cs index 787e9d5d3..b6f8ea0ad 100644 --- a/src/Promitor.Scraper.Host/Configuration/Serialization/ConfigurationSerializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/ConfigurationSerializer.cs @@ -1,13 +1,13 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Model.Metrics; -using Promitor.Scraper.Host.Serialization; using GuardNet; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics; +using Promitor.Core.Serialization.Yaml; using YamlDotNet.RepresentationModel; -namespace Promitor.Scraper.Host.Configuration.Serialization +namespace Promitor.Core.Scraping.Configuration.Serialization { public class ConfigurationSerializer { diff --git a/src/Promitor.Scraper.Host/Configuration/Serialization/Deserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/Deserializer.cs similarity index 94% rename from src/Promitor.Scraper.Host/Configuration/Serialization/Deserializer.cs rename to src/Promitor.Core.Scraping/Configuration/Serialization/Deserializer.cs index b9465a29f..6129b9a1d 100644 --- a/src/Promitor.Scraper.Host/Configuration/Serialization/Deserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/Deserializer.cs @@ -3,7 +3,7 @@ using GuardNet; using YamlDotNet.RepresentationModel; -namespace Promitor.Scraper.Host.Configuration.Serialization +namespace Promitor.Core.Scraping.Configuration.Serialization { internal abstract class Deserializer { diff --git a/src/Promitor.Scraper.Host/Configuration/Serialization/MetricsDeserializer.cs b/src/Promitor.Core.Scraping/Configuration/Serialization/MetricsDeserializer.cs similarity index 93% rename from src/Promitor.Scraper.Host/Configuration/Serialization/MetricsDeserializer.cs rename to src/Promitor.Core.Scraping/Configuration/Serialization/MetricsDeserializer.cs index 2f781cbf7..d5630edb7 100644 --- a/src/Promitor.Scraper.Host/Configuration/Serialization/MetricsDeserializer.cs +++ b/src/Promitor.Core.Scraping/Configuration/Serialization/MetricsDeserializer.cs @@ -1,11 +1,11 @@ using System; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Model.Metrics; -using Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes; using GuardNet; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics; +using Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes; using YamlDotNet.RepresentationModel; -namespace Promitor.Scraper.Host.Configuration.Serialization +namespace Promitor.Core.Scraping.Configuration.Serialization { internal class MetricsDeserializer : Deserializer { diff --git a/src/Promitor.Core.Scraping/Constants.cs b/src/Promitor.Core.Scraping/Constants.cs new file mode 100644 index 000000000..fb33344b2 --- /dev/null +++ b/src/Promitor.Core.Scraping/Constants.cs @@ -0,0 +1,10 @@ +namespace Promitor.Core.Scraping +{ + public static class Constants + { + public static class Defaults + { + public const string MetricsDeclarationPath = "/config/metrics-declaration.yaml"; + } + } +} \ No newline at end of file diff --git a/src/Promitor.Scraper.Host/Scraping/Exceptions/ScrapingException.cs b/src/Promitor.Core.Scraping/Exceptions/ScrapingException.cs similarity index 83% rename from src/Promitor.Scraper.Host/Scraping/Exceptions/ScrapingException.cs rename to src/Promitor.Core.Scraping/Exceptions/ScrapingException.cs index cfc08dfbe..e18df611e 100644 --- a/src/Promitor.Scraper.Host/Scraping/Exceptions/ScrapingException.cs +++ b/src/Promitor.Core.Scraping/Exceptions/ScrapingException.cs @@ -1,6 +1,6 @@ using System; -namespace Promitor.Scraper.Host.Scraping.Exceptions +namespace Promitor.Core.Scraping.Exceptions { public class ScrapingException : Exception { diff --git a/src/Promitor.Scraper.Host/Scraping/Factories/MetricScraperFactory.cs b/src/Promitor.Core.Scraping/Factories/MetricScraperFactory.cs similarity index 76% rename from src/Promitor.Scraper.Host/Scraping/Factories/MetricScraperFactory.cs rename to src/Promitor.Core.Scraping/Factories/MetricScraperFactory.cs index bc5f250c5..599160daa 100644 --- a/src/Promitor.Scraper.Host/Scraping/Factories/MetricScraperFactory.cs +++ b/src/Promitor.Core.Scraping/Factories/MetricScraperFactory.cs @@ -1,13 +1,13 @@ using System; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics; +using Promitor.Core.Scraping.Interfaces; +using Promitor.Core.Scraping.ResouceTypes; using Promitor.Core.Telemetry.Interfaces; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Model.Metrics; -using Promitor.Scraper.Host.Scraping.Interfaces; -using Promitor.Scraper.Host.Scraping.ResouceTypes; -namespace Promitor.Scraper.Host.Scraping.Factories +namespace Promitor.Core.Scraping.Factories { - internal class MetricScraperFactory + public class MetricScraperFactory { /// /// Creates a scraper that is capable of scraping a specific resource type @@ -15,7 +15,7 @@ internal class MetricScraperFactory /// Metadata concerning the Azure resources /// Resource type to scrape /// Tracker used to log exceptions - internal static IScraper CreateScraper(AzureMetadata azureMetadata, ResourceType metricDefinitionResourceType, IExceptionTracker exceptionTracker) + public static IScraper CreateScraper(AzureMetadata azureMetadata, ResourceType metricDefinitionResourceType, IExceptionTracker exceptionTracker) { var azureCredentials = DetermineAzureCredentials(); diff --git a/src/Promitor.Core.Scraping/Interfaces/IScraper.cs b/src/Promitor.Core.Scraping/Interfaces/IScraper.cs new file mode 100644 index 000000000..b28b45b62 --- /dev/null +++ b/src/Promitor.Core.Scraping/Interfaces/IScraper.cs @@ -0,0 +1,10 @@ +using System.Threading.Tasks; +using Promitor.Core.Scraping.Configuration.Model.Metrics; + +namespace Promitor.Core.Scraping.Interfaces +{ + public interface IScraper where TMetricDefinition : MetricDefinition + { + Task ScrapeAsync(TMetricDefinition metricDefinition); + } +} \ No newline at end of file diff --git a/src/Promitor.Core.Scraping/Promitor.Core.Scraping.csproj b/src/Promitor.Core.Scraping/Promitor.Core.Scraping.csproj new file mode 100644 index 000000000..125a150b3 --- /dev/null +++ b/src/Promitor.Core.Scraping/Promitor.Core.Scraping.csproj @@ -0,0 +1,29 @@ + + + + netcoreapp2.1 + + + + 1701;1702;1591 + + + + 1701;1702;1591 + + + + + + + + + + + + + + + + + diff --git a/src/Promitor.Scraper.Host/Scraping/ResouceTypes/GenericScraper.cs b/src/Promitor.Core.Scraping/ResouceTypes/GenericScraper.cs similarity index 87% rename from src/Promitor.Scraper.Host/Scraping/ResouceTypes/GenericScraper.cs rename to src/Promitor.Core.Scraping/ResouceTypes/GenericScraper.cs index a94d3c5c0..1cebf85e1 100644 --- a/src/Promitor.Scraper.Host/Scraping/ResouceTypes/GenericScraper.cs +++ b/src/Promitor.Core.Scraping/ResouceTypes/GenericScraper.cs @@ -1,10 +1,10 @@ using System.Threading.Tasks; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes; using Promitor.Core.Telemetry.Interfaces; using Promitor.Integrations.AzureMonitor; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes; -namespace Promitor.Scraper.Host.Scraping.ResouceTypes +namespace Promitor.Core.Scraping.ResouceTypes { internal class GenericScraper : Scraper { diff --git a/src/Promitor.Scraper.Host/Scraping/ResouceTypes/ServiceBusQueueScraper.cs b/src/Promitor.Core.Scraping/ResouceTypes/ServiceBusQueueScraper.cs similarity index 88% rename from src/Promitor.Scraper.Host/Scraping/ResouceTypes/ServiceBusQueueScraper.cs rename to src/Promitor.Core.Scraping/ResouceTypes/ServiceBusQueueScraper.cs index db5809ca0..e0f684d43 100644 --- a/src/Promitor.Scraper.Host/Scraping/ResouceTypes/ServiceBusQueueScraper.cs +++ b/src/Promitor.Core.Scraping/ResouceTypes/ServiceBusQueueScraper.cs @@ -1,10 +1,10 @@ using System.Threading.Tasks; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes; using Promitor.Core.Telemetry.Interfaces; -using Promitor.Scraper.Host.Configuration.Model; using Promitor.Integrations.AzureMonitor; -using Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes; -namespace Promitor.Scraper.Host.Scraping.ResouceTypes +namespace Promitor.Core.Scraping.ResouceTypes { public class ServiceBusQueueScraper : Scraper { diff --git a/src/Promitor.Scraper.Host/Scraping/ScrapeEndpoint.cs b/src/Promitor.Core.Scraping/ScrapeEndpoint.cs similarity index 95% rename from src/Promitor.Scraper.Host/Scraping/ScrapeEndpoint.cs rename to src/Promitor.Core.Scraping/ScrapeEndpoint.cs index 16b677178..d3367674f 100644 --- a/src/Promitor.Scraper.Host/Scraping/ScrapeEndpoint.cs +++ b/src/Promitor.Core.Scraping/ScrapeEndpoint.cs @@ -1,7 +1,7 @@ using System; using Microsoft.Extensions.Configuration; -namespace Promitor.Scraper.Host.Scraping +namespace Promitor.Core.Scraping { public static class ScrapeEndpoint { diff --git a/src/Promitor.Scraper.Host/Scraping/Scraper.cs b/src/Promitor.Core.Scraping/Scraper.cs similarity index 94% rename from src/Promitor.Scraper.Host/Scraping/Scraper.cs rename to src/Promitor.Core.Scraping/Scraper.cs index 798493363..3e00b5f0f 100644 --- a/src/Promitor.Scraper.Host/Scraping/Scraper.cs +++ b/src/Promitor.Core.Scraping/Scraper.cs @@ -1,15 +1,15 @@ using System; using System.Threading.Tasks; +using GuardNet; using Newtonsoft.Json; using Prometheus.Client; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics; +using Promitor.Core.Scraping.Interfaces; using Promitor.Core.Telemetry.Interfaces; using Promitor.Integrations.AzureMonitor; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Model.Metrics; -using Promitor.Scraper.Host.Scraping.Interfaces; -using GuardNet; -namespace Promitor.Scraper.Host.Scraping +namespace Promitor.Core.Scraping { /// /// Azure Monitor Scrape diff --git a/src/Promitor.Core.Telemetry/EnvironmentVariables.cs b/src/Promitor.Core.Telemetry/EnvironmentVariables.cs deleted file mode 100644 index f9648d7f5..000000000 --- a/src/Promitor.Core.Telemetry/EnvironmentVariables.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Promitor.Core.Telemetry -{ - public class EnvironmentVariables - { - public class Telemetry - { - public const string InstrumentationKey = "PROMITOR_TELEMETRY_INSTRUMENTATIONKEY"; - } - } -} \ No newline at end of file diff --git a/src/Promitor.Core.Telemetry/Promitor.Core.Telemetry.csproj b/src/Promitor.Core.Telemetry/Promitor.Core.Telemetry.csproj index 1f77ffb54..7d059ccfa 100644 --- a/src/Promitor.Core.Telemetry/Promitor.Core.Telemetry.csproj +++ b/src/Promitor.Core.Telemetry/Promitor.Core.Telemetry.csproj @@ -16,4 +16,8 @@ + + + + diff --git a/src/Promitor.Scraper.Host/EnvironmentVariables.cs b/src/Promitor.Core/EnvironmentVariables.cs similarity index 76% rename from src/Promitor.Scraper.Host/EnvironmentVariables.cs rename to src/Promitor.Core/EnvironmentVariables.cs index ccc823998..56cbeaf22 100644 --- a/src/Promitor.Scraper.Host/EnvironmentVariables.cs +++ b/src/Promitor.Core/EnvironmentVariables.cs @@ -1,4 +1,4 @@ -namespace Promitor.Scraper.Host +namespace Promitor.Core { public class EnvironmentVariables { @@ -18,5 +18,10 @@ public class Scraping public const string CronSchedule = "PROMITOR_SCRAPE_SCHEDULE"; public const string Path = "PROMITOR_SCRAPE_BASEPATH"; } + + public class Telemetry + { + public const string InstrumentationKey = "PROMITOR_TELEMETRY_INSTRUMENTATIONKEY"; + } } } \ No newline at end of file diff --git a/src/Promitor.Core/Promitor.Core.csproj b/src/Promitor.Core/Promitor.Core.csproj new file mode 100644 index 000000000..dd18ff6ad --- /dev/null +++ b/src/Promitor.Core/Promitor.Core.csproj @@ -0,0 +1,21 @@ + + + + netcoreapp2.1 + + + + 1701;1702;1591 + + + + 1701;1702;1591 + + + + + + + + + diff --git a/src/Promitor.Scraper.Host/Serialization/YamlSerialization.cs b/src/Promitor.Core/Serialization/Yaml/YamlSerialization.cs similarity index 94% rename from src/Promitor.Scraper.Host/Serialization/YamlSerialization.cs rename to src/Promitor.Core/Serialization/Yaml/YamlSerialization.cs index 2781da0d9..6403ff995 100644 --- a/src/Promitor.Scraper.Host/Serialization/YamlSerialization.cs +++ b/src/Promitor.Core/Serialization/Yaml/YamlSerialization.cs @@ -1,7 +1,7 @@ using YamlDotNet.Serialization; using YamlDotNet.Serialization.NamingConventions; -namespace Promitor.Scraper.Host.Serialization +namespace Promitor.Core.Serialization.Yaml { public static class YamlSerialization { diff --git a/src/Promitor.Scraper.Host/Constants.cs b/src/Promitor.Scraper.Host/Constants.cs index 789ec17a0..f4a073d44 100644 --- a/src/Promitor.Scraper.Host/Constants.cs +++ b/src/Promitor.Scraper.Host/Constants.cs @@ -21,10 +21,5 @@ internal static class Validation internal const string GeneralValidationSucceeded = "Configuration is valid."; } } - - internal static class Defaults - { - internal const string MetricsDeclarationPath = "/config/metrics-declaration.yaml"; - } } } \ No newline at end of file diff --git a/src/Promitor.Scraper.Host/Controllers/v1/ConfigurationController.cs b/src/Promitor.Scraper.Host/Controllers/v1/ConfigurationController.cs index cde52db81..145fa66fd 100644 --- a/src/Promitor.Scraper.Host/Controllers/v1/ConfigurationController.cs +++ b/src/Promitor.Scraper.Host/Controllers/v1/ConfigurationController.cs @@ -1,8 +1,8 @@ using System.Collections.Generic; using System.Net; using Microsoft.AspNetCore.Mvc; -using Promitor.Scraper.Host.Configuration.Model.Metrics; -using Promitor.Scraper.Host.Configuration.Providers.Interfaces; +using Promitor.Core.Scraping.Configuration.Model.Metrics; +using Promitor.Core.Scraping.Configuration.Providers.Interfaces; using Swashbuckle.AspNetCore.Annotations; namespace Promitor.Scraper.Host.Controllers.v1 diff --git a/src/Promitor.Scraper.Host/Dockerfile b/src/Promitor.Scraper.Host/Dockerfile index b75785247..06b3f22f3 100644 --- a/src/Promitor.Scraper.Host/Dockerfile +++ b/src/Promitor.Scraper.Host/Dockerfile @@ -1,8 +1,10 @@ FROM microsoft/dotnet:2.1.403-sdk AS build WORKDIR /src -COPY Promitor.Scraper.Host/* Promitor.Scraper.Host/ +COPY Promitor.Core/* Promitor.Core/ +COPY Promitor.Core.Scraping/* Promitor.Core.Scraping/ COPY Promitor.Core.Telemetry/* Promitor.Core.Telemetry/ COPY Promitor.Integrations.AzureMonitor/* Promitor.Integrations.AzureMonitor/ +COPY Promitor.Scraper.Host/* Promitor.Scraper.Host/ RUN dotnet --info RUN dotnet publish Promitor.Scraper.Host/Promitor.Scraper.Host.csproj --configuration release -o app diff --git a/src/Promitor.Scraper.Host/Docs/Open-Api.xml b/src/Promitor.Scraper.Host/Docs/Open-Api.xml index d60d5352f..3f2c3c329 100644 --- a/src/Promitor.Scraper.Host/Docs/Open-Api.xml +++ b/src/Promitor.Scraper.Host/Docs/Open-Api.xml @@ -4,129 +4,32 @@ Promitor.Scraper.Host - - - Type of aggregation to query the Azure Monitor metric - - - - - Name of the Azure Monitor metric to query - - - - - Configuration about the Azure Monitor metric to scrape - - - - - Description concerning metric that will be made available in the scraping endpoint - - - - - Name of the metric to use when exposing in the scraping endpoint - - - - - Type of resource that is configured - - - - - Gets the configured metrics declaration - - - - - Gets the serialized metrics declaration - - Get Metrics Declaration Provides a list of all configured metrics to scrape - - - Parses the Cron schedule into a Cron expression - - Raw Cron schedule to use - - - - Creates a scraper that is capable of scraping a specific resource type - - Metadata concerning the Azure resources - Resource type to scrape - Tracker used to log exceptions - - - - Determines the base path under which the scrape endpoint is configured to be exposed - - - - - Azure Monitor Scrape - - Type of metric definition that is being used - - - - Constructor - - Metadata concerning the Azure resources - Credentials used to authenticate to Microsoft Azure - Exception tracker - - - - Credentials used to authenticate to Microsoft Azure - - - - - Metadata concerning the Azure resources - - - - - Scrapes the configured resource - - Client to query Azure Monitor - Definition of the metric to scrape - - - - Validates a specific metric definition - - Metric definition to validate - List of validation errors - - + Add support for Open API with API explorer Application Builder - + Add support for exposing a prometheus scraping endpoint Application Builder Path where the scrape endpoint will be exposed - + Defines to use the cron scheduler Collections of services in application - + Use OpenAPI specification @@ -134,5 +37,18 @@ Endpoint where the prometheus scraping is exposed Version of the API + + + Parses the Cron schedule into a Cron expression + + Raw Cron schedule to use + + + + Validates a specific metric definition + + Metric definition to validate + List of validation errors + diff --git a/src/Promitor.Scraper.Host/Extensions/IApplicationBuilderExtensions.cs b/src/Promitor.Scraper.Host/Extensions/IApplicationBuilderExtensions.cs index 763aebffb..e931cc93c 100644 --- a/src/Promitor.Scraper.Host/Extensions/IApplicationBuilderExtensions.cs +++ b/src/Promitor.Scraper.Host/Extensions/IApplicationBuilderExtensions.cs @@ -1,8 +1,9 @@ -using Prometheus.Client.AspNetCore; +using Microsoft.AspNetCore.Builder; +using Prometheus.Client.AspNetCore; using Swashbuckle.AspNetCore.SwaggerUI; // ReSharper disable once CheckNamespace -namespace Microsoft.AspNetCore.Builder +namespace Promitor.Scraper.Host.Extensions { // ReSharper disable once InconsistentNaming public static class IApplicationBuilderExtensions diff --git a/src/Promitor.Scraper.Host/Extensions/IServiceCollectionExtensions.cs b/src/Promitor.Scraper.Host/Extensions/IServiceCollectionExtensions.cs index 0b781cbc2..fa01b9c57 100644 --- a/src/Promitor.Scraper.Host/Extensions/IServiceCollectionExtensions.cs +++ b/src/Promitor.Scraper.Host/Extensions/IServiceCollectionExtensions.cs @@ -2,13 +2,14 @@ using System.IO; using System.Linq; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.DependencyInjection; using Promitor.Scraper.Host.Scheduling; using Promitor.Scraper.Host.Scheduling.Infrastructure.Extensions; using Promitor.Scraper.Host.Scheduling.Interfaces; using Swashbuckle.AspNetCore.Swagger; // ReSharper disable once CheckNamespace -namespace Microsoft.Extensions.DependencyInjection +namespace Promitor.Scraper.Host.Extensions { // ReSharper disable once InconsistentNaming public static class IServiceCollectionExtensions diff --git a/src/Promitor.Scraper.Host/Promitor.Scraper.Host.csproj b/src/Promitor.Scraper.Host/Promitor.Scraper.Host.csproj index dc0bdcd98..6c76b70c9 100644 --- a/src/Promitor.Scraper.Host/Promitor.Scraper.Host.csproj +++ b/src/Promitor.Scraper.Host/Promitor.Scraper.Host.csproj @@ -46,6 +46,8 @@ + + diff --git a/src/Promitor.Scraper.Host/Scheduling/AzureMonitorScrapingTask.cs b/src/Promitor.Scraper.Host/Scheduling/AzureMonitorScrapingTask.cs index 578ebb3e8..c802886e5 100644 --- a/src/Promitor.Scraper.Host/Scheduling/AzureMonitorScrapingTask.cs +++ b/src/Promitor.Scraper.Host/Scheduling/AzureMonitorScrapingTask.cs @@ -2,12 +2,13 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using Promitor.Core; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics; +using Promitor.Core.Scraping.Configuration.Providers.Interfaces; +using Promitor.Core.Scraping.Factories; using Promitor.Core.Telemetry.Interfaces; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Model.Metrics; -using Promitor.Scraper.Host.Configuration.Providers.Interfaces; using Promitor.Scraper.Host.Scheduling.Interfaces; -using Promitor.Scraper.Host.Scraping.Factories; namespace Promitor.Scraper.Host.Scheduling { diff --git a/src/Promitor.Scraper.Host/Scraping/Interfaces/IScraper.cs b/src/Promitor.Scraper.Host/Scraping/Interfaces/IScraper.cs deleted file mode 100644 index 4d14fe369..000000000 --- a/src/Promitor.Scraper.Host/Scraping/Interfaces/IScraper.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Threading.Tasks; -using Promitor.Scraper.Host.Configuration.Model.Metrics; - -namespace Promitor.Scraper.Host.Scraping.Interfaces -{ - internal interface IScraper where TMetricDefinition : MetricDefinition - { - Task ScrapeAsync(TMetricDefinition metricDefinition); - } -} \ No newline at end of file diff --git a/src/Promitor.Scraper.Host/Startup.cs b/src/Promitor.Scraper.Host/Startup.cs index 605752b43..8147a7afe 100644 --- a/src/Promitor.Scraper.Host/Startup.cs +++ b/src/Promitor.Scraper.Host/Startup.cs @@ -4,11 +4,12 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Promitor.Core.Scraping; +using Promitor.Core.Scraping.Configuration.Providers; +using Promitor.Core.Scraping.Configuration.Providers.Interfaces; using Promitor.Core.Telemetry; using Promitor.Core.Telemetry.Interfaces; -using Promitor.Scraper.Host.Configuration.Providers; -using Promitor.Scraper.Host.Configuration.Providers.Interfaces; -using Promitor.Scraper.Host.Scraping; +using Promitor.Scraper.Host.Extensions; using Promitor.Scraper.Host.Validation; using Promitor.Scraper.Host.Validation.Interfaces; using Promitor.Scraper.Host.Validation.Steps; diff --git a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/Interfaces/IMetricValidator.cs b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/Interfaces/IMetricValidator.cs index 19b3224dd..9b1b06852 100644 --- a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/Interfaces/IMetricValidator.cs +++ b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/Interfaces/IMetricValidator.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using Promitor.Scraper.Host.Configuration.Model.Metrics; +using Promitor.Core.Scraping.Configuration.Model.Metrics; namespace Promitor.Scraper.Host.Validation.MetricDefinitions.Interfaces { diff --git a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/MetricsValidator.cs b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/MetricsValidator.cs index 86f1ffcd5..649d4b5d1 100644 --- a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/MetricsValidator.cs +++ b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/MetricsValidator.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Model.Metrics; -using Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes; using Promitor.Scraper.Host.Validation.MetricDefinitions.ResourceTypes; using GuardNet; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics; +using Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes; namespace Promitor.Scraper.Host.Validation.MetricDefinitions { diff --git a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/GenericMetricValidator.cs b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/GenericMetricValidator.cs index 6c1bfc470..7143b4676 100644 --- a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/GenericMetricValidator.cs +++ b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/GenericMetricValidator.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes; +using Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes; using Promitor.Scraper.Host.Validation.MetricDefinitions.Interfaces; namespace Promitor.Scraper.Host.Validation.MetricDefinitions.ResourceTypes diff --git a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/ServiceBusQueueMetricValidator.cs b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/ServiceBusQueueMetricValidator.cs index af3924658..b99819b30 100644 --- a/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/ServiceBusQueueMetricValidator.cs +++ b/src/Promitor.Scraper.Host/Validation/MetricDefinitions/ResourceTypes/ServiceBusQueueMetricValidator.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes; +using Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes; using Promitor.Scraper.Host.Validation.MetricDefinitions.Interfaces; namespace Promitor.Scraper.Host.Validation.MetricDefinitions.ResourceTypes diff --git a/src/Promitor.Scraper.Host/Validation/Steps/AzureAuthenticationValidationStep.cs b/src/Promitor.Scraper.Host/Validation/Steps/AzureAuthenticationValidationStep.cs index 93bb8352e..61f848734 100644 --- a/src/Promitor.Scraper.Host/Validation/Steps/AzureAuthenticationValidationStep.cs +++ b/src/Promitor.Scraper.Host/Validation/Steps/AzureAuthenticationValidationStep.cs @@ -1,4 +1,5 @@ using System; +using Promitor.Core; using Promitor.Scraper.Host.Validation.Interfaces; namespace Promitor.Scraper.Host.Validation.Steps diff --git a/src/Promitor.Scraper.Host/Validation/Steps/ConfigurationPathValidationStep.cs b/src/Promitor.Scraper.Host/Validation/Steps/ConfigurationPathValidationStep.cs index ede088170..78f574378 100644 --- a/src/Promitor.Scraper.Host/Validation/Steps/ConfigurationPathValidationStep.cs +++ b/src/Promitor.Scraper.Host/Validation/Steps/ConfigurationPathValidationStep.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using Promitor.Core; using Promitor.Scraper.Host.Validation.Interfaces; namespace Promitor.Scraper.Host.Validation.Steps @@ -14,7 +15,7 @@ public ValidationResult Run() if (string.IsNullOrWhiteSpace(configurationPath)) { LogMessage("No scrape configuration configured, falling back to default one..."); - configurationPath = Constants.Defaults.MetricsDeclarationPath; + configurationPath = Promitor.Core.Scraping.Constants.Defaults.MetricsDeclarationPath; Environment.SetEnvironmentVariable(EnvironmentVariables.Configuration.Path, configurationPath); } diff --git a/src/Promitor.Scraper.Host/Validation/Steps/MetricsDeclarationValidationStep.cs b/src/Promitor.Scraper.Host/Validation/Steps/MetricsDeclarationValidationStep.cs index 67d9c5cbf..848ad8d1e 100644 --- a/src/Promitor.Scraper.Host/Validation/Steps/MetricsDeclarationValidationStep.cs +++ b/src/Promitor.Scraper.Host/Validation/Steps/MetricsDeclarationValidationStep.cs @@ -1,10 +1,8 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Model.Metrics; -using Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes; -using Promitor.Scraper.Host.Configuration.Providers.Interfaces; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics; +using Promitor.Core.Scraping.Configuration.Providers.Interfaces; using Promitor.Scraper.Host.Validation.Interfaces; using Promitor.Scraper.Host.Validation.MetricDefinitions; diff --git a/src/Promitor.Scraper.Host/Validation/Steps/ScrapingScheduleValidationStep.cs b/src/Promitor.Scraper.Host/Validation/Steps/ScrapingScheduleValidationStep.cs index f0ca63821..cac9ea9cd 100644 --- a/src/Promitor.Scraper.Host/Validation/Steps/ScrapingScheduleValidationStep.cs +++ b/src/Promitor.Scraper.Host/Validation/Steps/ScrapingScheduleValidationStep.cs @@ -1,4 +1,5 @@ using System; +using Promitor.Core; using Promitor.Scraper.Host.Scheduling.Cron; using Promitor.Scraper.Host.Validation.Interfaces; diff --git a/src/Promitor.Scraper.Tests.Unit/Builders/MetricsDeclarationBuilder.cs b/src/Promitor.Scraper.Tests.Unit/Builders/MetricsDeclarationBuilder.cs index 40fdd30e3..3cd3cf0f6 100644 --- a/src/Promitor.Scraper.Tests.Unit/Builders/MetricsDeclarationBuilder.cs +++ b/src/Promitor.Scraper.Tests.Unit/Builders/MetricsDeclarationBuilder.cs @@ -1,15 +1,15 @@ using System.Collections.Generic; using Microsoft.Azure.Management.Monitor.Fluent.Models; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes; -using Promitor.Scraper.Host.Configuration.Serialization; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes; +using Promitor.Core.Scraping.Configuration.Serialization; namespace Promitor.Scraper.Tests.Unit.Builders { public class MetricsDeclarationBuilder { private readonly AzureMetadata _azureMetadata; - private readonly List _metrics = new List(); + private readonly List _metrics = new List(); public MetricsDeclarationBuilder(AzureMetadata azureMetadata) { diff --git a/src/Promitor.Scraper.Tests.Unit/Promitor.Scraper.Tests.Unit.csproj b/src/Promitor.Scraper.Tests.Unit/Promitor.Scraper.Tests.Unit.csproj index a9fd62531..f6a77cf63 100644 --- a/src/Promitor.Scraper.Tests.Unit/Promitor.Scraper.Tests.Unit.csproj +++ b/src/Promitor.Scraper.Tests.Unit/Promitor.Scraper.Tests.Unit.csproj @@ -29,6 +29,7 @@ + diff --git a/src/Promitor.Scraper.Tests.Unit/Serialization/YamlMetricsDeclarationSerializationTests.cs b/src/Promitor.Scraper.Tests.Unit/Serialization/YamlMetricsDeclarationSerializationTests.cs index 0102b5ba9..f40e17aa7 100644 --- a/src/Promitor.Scraper.Tests.Unit/Serialization/YamlMetricsDeclarationSerializationTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Serialization/YamlMetricsDeclarationSerializationTests.cs @@ -3,9 +3,9 @@ using System.Linq; using Bogus; using Microsoft.Azure.Management.Monitor.Fluent.Models; -using Promitor.Scraper.Host.Configuration.Model; -using Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes; -using Promitor.Scraper.Host.Configuration.Serialization; +using Promitor.Core.Scraping.Configuration.Model; +using Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes; +using Promitor.Core.Scraping.Configuration.Serialization; using Xunit; namespace Promitor.Scraper.Tests.Unit.Serialization @@ -22,7 +22,7 @@ public void YamlSerialization_SerializeAndDeserializeValidConfigForServiceBus_Su var scrapingConfiguration = new MetricsDeclaration { AzureMetadata = azureMetadata, - Metrics = new List + Metrics = new List { serviceBusMetricDefinition } diff --git a/src/Promitor.Scraper.Tests.Unit/Stubs/MetricsDeclarationProviderStub.cs b/src/Promitor.Scraper.Tests.Unit/Stubs/MetricsDeclarationProviderStub.cs index f8e44cd27..872e14270 100644 --- a/src/Promitor.Scraper.Tests.Unit/Stubs/MetricsDeclarationProviderStub.cs +++ b/src/Promitor.Scraper.Tests.Unit/Stubs/MetricsDeclarationProviderStub.cs @@ -1,5 +1,5 @@ -using Promitor.Scraper.Host.Configuration.Providers; -using Promitor.Scraper.Host.Configuration.Providers.Interfaces; +using Promitor.Core.Scraping.Configuration.Providers; +using Promitor.Core.Scraping.Configuration.Providers.Interfaces; namespace Promitor.Scraper.Tests.Unit.Stubs { diff --git a/src/Promitor.Scraper.Tests.Unit/Validation/Authentication/AzureAuthenticationValidationStepTests.cs b/src/Promitor.Scraper.Tests.Unit/Validation/Authentication/AzureAuthenticationValidationStepTests.cs index 6a507f289..5a508ac23 100644 --- a/src/Promitor.Scraper.Tests.Unit/Validation/Authentication/AzureAuthenticationValidationStepTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Validation/Authentication/AzureAuthenticationValidationStepTests.cs @@ -1,6 +1,6 @@ using System; using System.ComponentModel; -using Promitor.Scraper.Host; +using Promitor.Core; using Promitor.Scraper.Host.Validation.Steps; using Xunit; diff --git a/src/Promitor.Scraper.Tests.Unit/Validation/Misc/ConfigurationPathValidationStepTests.cs b/src/Promitor.Scraper.Tests.Unit/Validation/Misc/ConfigurationPathValidationStepTests.cs index 8163ea975..46b8e588b 100644 --- a/src/Promitor.Scraper.Tests.Unit/Validation/Misc/ConfigurationPathValidationStepTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Validation/Misc/ConfigurationPathValidationStepTests.cs @@ -1,6 +1,6 @@ using System; using System.ComponentModel; -using Promitor.Scraper.Host; +using Promitor.Core; using Promitor.Scraper.Host.Validation.Steps; using Xunit; diff --git a/src/Promitor.Scraper.Tests.Unit/Validation/Scraping/ScrapingScheduleValidationStepTests.cs b/src/Promitor.Scraper.Tests.Unit/Validation/Scraping/ScrapingScheduleValidationStepTests.cs index 8d1f76531..a1ab0c46d 100644 --- a/src/Promitor.Scraper.Tests.Unit/Validation/Scraping/ScrapingScheduleValidationStepTests.cs +++ b/src/Promitor.Scraper.Tests.Unit/Validation/Scraping/ScrapingScheduleValidationStepTests.cs @@ -1,6 +1,6 @@ using System; using System.ComponentModel; -using Promitor.Scraper.Host; +using Promitor.Core; using Promitor.Scraper.Host.Validation.Steps; using Xunit; diff --git a/src/Promitor.sln b/src/Promitor.sln index 03f8c3dc0..60e497533 100644 --- a/src/Promitor.sln +++ b/src/Promitor.sln @@ -30,6 +30,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Integrations", "Integration EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "App", "App", "{9D006E55-567F-4521-9366-490679CA00BF}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Promitor.Core.Scraping", "Promitor.Core.Scraping\Promitor.Core.Scraping.csproj", "{C3ADE514-95AD-4FDD-8577-45F7EADB4A23}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Promitor.Core", "Promitor.Core\Promitor.Core.csproj", "{FCFD60ED-3389-42A1-9B1A-4F2D30DCDA8B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -55,6 +59,14 @@ Global {E39EA07D-C6E3-4D5A-8748-DB0CB8E08C1F}.Debug|Any CPU.Build.0 = Debug|Any CPU {E39EA07D-C6E3-4D5A-8748-DB0CB8E08C1F}.Release|Any CPU.ActiveCfg = Release|Any CPU {E39EA07D-C6E3-4D5A-8748-DB0CB8E08C1F}.Release|Any CPU.Build.0 = Release|Any CPU + {C3ADE514-95AD-4FDD-8577-45F7EADB4A23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3ADE514-95AD-4FDD-8577-45F7EADB4A23}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3ADE514-95AD-4FDD-8577-45F7EADB4A23}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3ADE514-95AD-4FDD-8577-45F7EADB4A23}.Release|Any CPU.Build.0 = Release|Any CPU + {FCFD60ED-3389-42A1-9B1A-4F2D30DCDA8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FCFD60ED-3389-42A1-9B1A-4F2D30DCDA8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FCFD60ED-3389-42A1-9B1A-4F2D30DCDA8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FCFD60ED-3389-42A1-9B1A-4F2D30DCDA8B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -68,6 +80,8 @@ Global {05524B1B-9965-4E36-9626-A2823B8588AA} = {9D006E55-567F-4521-9366-490679CA00BF} {E39EA07D-C6E3-4D5A-8748-DB0CB8E08C1F} = {59D7FFBC-3929-48AD-8C9C-242280D01CBD} {59D7FFBC-3929-48AD-8C9C-242280D01CBD} = {9D006E55-567F-4521-9366-490679CA00BF} + {C3ADE514-95AD-4FDD-8577-45F7EADB4A23} = {05524B1B-9965-4E36-9626-A2823B8588AA} + {FCFD60ED-3389-42A1-9B1A-4F2D30DCDA8B} = {05524B1B-9965-4E36-9626-A2823B8588AA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B47A777A-C793-453F-8F4F-7703551DFC4C}