Skip to content

Commit

Permalink
Refactor code out of host (#215)
Browse files Browse the repository at this point in the history
Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com>
  • Loading branch information
tomkerkhove authored Nov 10, 2018
1 parent d6353b7 commit d4e338b
Show file tree
Hide file tree
Showing 55 changed files with 212 additions and 218 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Promitor.Scraper.Host.Configuration.Model
namespace Promitor.Core.Scraping.Configuration.Model
{
public class AzureCredentials
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Promitor.Scraper.Host.Configuration.Model
namespace Promitor.Core.Scraping.Configuration.Model
{
public class AzureMetadata
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Promitor.Scraper.Host.Configuration.Model.Metrics
namespace Promitor.Core.Scraping.Configuration.Model.Metrics
{
public class MetricDefinition
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes
namespace Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes
{
public class GenericMetricDefinition : MetricDefinition
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Promitor.Scraper.Host.Configuration.Model.Metrics.ResouceTypes
namespace Promitor.Core.Scraping.Configuration.Model.Metrics.ResouceTypes
{
public class ServiceBusQueueMetricDefinition : MetricDefinition
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Promitor.Scraper.Host.Configuration.Model
namespace Promitor.Core.Scraping.Configuration.Model
{
public enum ResourceType
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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<AzureMetadata>
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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<AzureMetricConfiguration>
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<TObject>
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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<MetricDefinition>
{
Expand Down
10 changes: 10 additions & 0 deletions src/Promitor.Core.Scraping/Constants.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace Promitor.Core.Scraping
{
public static class Constants
{
public static class Defaults
{
public const string MetricsDeclarationPath = "/config/metrics-declaration.yaml";
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System;

namespace Promitor.Scraper.Host.Scraping.Exceptions
namespace Promitor.Core.Scraping.Exceptions
{
public class ScrapingException : Exception
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
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
{
/// <summary>
/// Creates a scraper that is capable of scraping a specific resource type
/// </summary>
/// <param name="azureMetadata">Metadata concerning the Azure resources</param>
/// <param name="metricDefinitionResourceType">Resource type to scrape</param>
/// <param name="exceptionTracker">Tracker used to log exceptions</param>
internal static IScraper<MetricDefinition> CreateScraper(AzureMetadata azureMetadata, ResourceType metricDefinitionResourceType, IExceptionTracker exceptionTracker)
public static IScraper<MetricDefinition> CreateScraper(AzureMetadata azureMetadata, ResourceType metricDefinitionResourceType, IExceptionTracker exceptionTracker)
{
var azureCredentials = DetermineAzureCredentials();

Expand Down
10 changes: 10 additions & 0 deletions src/Promitor.Core.Scraping/Interfaces/IScraper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using System.Threading.Tasks;
using Promitor.Core.Scraping.Configuration.Model.Metrics;

namespace Promitor.Core.Scraping.Interfaces
{
public interface IScraper<in TMetricDefinition> where TMetricDefinition : MetricDefinition
{
Task ScrapeAsync(TMetricDefinition metricDefinition);
}
}
29 changes: 29 additions & 0 deletions src/Promitor.Core.Scraping/Promitor.Core.Scraping.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<NoWarn>1701;1702;1591</NoWarn>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>1701;1702;1591</NoWarn>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Guard.Net" Version="1.2.0" />
<PackageReference Include="Microsoft.ApplicationInsights" Version="2.8.1" />
<PackageReference Include="Microsoft.Azure.Management.Fluent" Version="1.17.0" />
<PackageReference Include="Prometheus.Client" Version="2.0.0" />
<PackageReference Include="YamlDotNet" Version="5.2.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Promitor.Core.Telemetry\Promitor.Core.Telemetry.csproj" />
<ProjectReference Include="..\Promitor.Core\Promitor.Core.csproj" />
<ProjectReference Include="..\Promitor.Integrations.AzureMonitor\Promitor.Integrations.AzureMonitor.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -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<GenericMetricDefinition>
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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<ServiceBusQueueMetricDefinition>
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using Microsoft.Extensions.Configuration;

namespace Promitor.Scraper.Host.Scraping
namespace Promitor.Core.Scraping
{
public static class ScrapeEndpoint
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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
{
/// <summary>
/// Azure Monitor Scrape
Expand Down
10 changes: 0 additions & 10 deletions src/Promitor.Core.Telemetry/EnvironmentVariables.cs

This file was deleted.

4 changes: 4 additions & 0 deletions src/Promitor.Core.Telemetry/Promitor.Core.Telemetry.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,8 @@
<PackageReference Include="Microsoft.ApplicationInsights" Version="2.8.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Promitor.Core\Promitor.Core.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Promitor.Scraper.Host
namespace Promitor.Core
{
public class EnvironmentVariables
{
Expand All @@ -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";
}
}
}
21 changes: 21 additions & 0 deletions src/Promitor.Core/Promitor.Core.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<NoWarn>1701;1702;1591</NoWarn>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>1701;1702;1591</NoWarn>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Guard.Net" Version="1.2.0" />
<PackageReference Include="Microsoft.ApplicationInsights" Version="2.8.1" />
<PackageReference Include="YamlDotNet" Version="5.2.1" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -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
{
Expand Down
5 changes: 0 additions & 5 deletions src/Promitor.Scraper.Host/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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";
}
}
}
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Loading

0 comments on commit d4e338b

Please sign in to comment.