From 04efb2abca2739688fcc800024a42a582e1bf080 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Thu, 16 Aug 2018 17:53:19 -0500 Subject: [PATCH] refactor Agent telemetry --- src/FilterLists.Agent/Logger.cs | 30 +++++++++++++++++++ src/FilterLists.Agent/Program.cs | 50 ++++++++++++-------------------- 2 files changed, 49 insertions(+), 31 deletions(-) create mode 100644 src/FilterLists.Agent/Logger.cs diff --git a/src/FilterLists.Agent/Logger.cs b/src/FilterLists.Agent/Logger.cs new file mode 100644 index 000000000..a99e9f0cf --- /dev/null +++ b/src/FilterLists.Agent/Logger.cs @@ -0,0 +1,30 @@ +using System; +using System.Threading; +using Microsoft.ApplicationInsights; +using Microsoft.ApplicationInsights.Extensibility; + +namespace FilterLists.Agent +{ + public class Logger : IDisposable + { + private readonly TelemetryClient telemetryClient; + + public Logger(string appInsightsKey) + { + TelemetryConfiguration.Active.InstrumentationKey = appInsightsKey; + telemetryClient = new TelemetryClient(); + } + + public void Dispose() + { + telemetryClient.Flush(); + Thread.Sleep(5000); + } + + public void Log(string message) + { + Console.WriteLine(message); + telemetryClient.TrackTrace(message); + } + } +} \ No newline at end of file diff --git a/src/FilterLists.Agent/Program.cs b/src/FilterLists.Agent/Program.cs index ebf6f79a3..a4b00d610 100644 --- a/src/FilterLists.Agent/Program.cs +++ b/src/FilterLists.Agent/Program.cs @@ -1,9 +1,6 @@ -using System; -using System.IO; +using System.IO; using FilterLists.Services.DependencyInjection.Extensions; using FilterLists.Services.Snapshot; -using Microsoft.ApplicationInsights; -using Microsoft.ApplicationInsights.Extensibility; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -12,51 +9,42 @@ namespace FilterLists.Agent public static class Program { private const int BatchSize = 1; - private const string AiConfigSetting = "ApplicationInsights:InstrumentationKey"; - private static IConfigurationRoot configurationRoot; + private const string AppInsightsKeyConfig = "ApplicationInsights:InstrumentationKey"; + private static IConfigurationRoot configRoot; private static ServiceProvider serviceProvider; - private static TelemetryClient telemetryClient; + private static Logger logger; public static void Main() { - BuildConfigurationRoot(); - InstantiateTelemetryClient(); + BuildConfigRoot(); BuildServiceProvider(); - CaptureSnapshots(BatchSize); + using (BuildLogger()) + { + CaptureSnapshots(BatchSize); + } } - private static void BuildConfigurationRoot() => - configurationRoot = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile("appsettings.json", false) - .Build(); - - private static void InstantiateTelemetryClient() - { - TelemetryConfiguration.Active.InstrumentationKey = configurationRoot[AiConfigSetting]; - telemetryClient = new TelemetryClient(); - } + private static void BuildConfigRoot() => + configRoot = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile("appsettings.json", false) + .Build(); private static void BuildServiceProvider() { var serviceCollection = new ServiceCollection(); - serviceCollection.AddFilterListsAgentServices(configurationRoot); + serviceCollection.AddFilterListsAgentServices(configRoot); serviceProvider = serviceCollection.BuildServiceProvider(); } + private static Logger BuildLogger() => logger = new Logger(configRoot[AppInsightsKeyConfig]); + private static void CaptureSnapshots(int batchSize) { var snapshotService = serviceProvider.GetService(); - Log("Capturing FilterList snapshots..."); + logger.Log("Capturing FilterList snapshots..."); snapshotService.CaptureAsync(batchSize).Wait(); - Log("Snapshots captured."); - telemetryClient.Flush(); - } - - private static void Log(string message) - { - Console.WriteLine(message); - telemetryClient.TrackTrace(message); + logger.Log("Snapshots captured."); } } } \ No newline at end of file