diff --git a/src/FilterLists.Agent/FilterLists.Agent.csproj b/src/FilterLists.Agent/FilterLists.Agent.csproj
index aac1ca74c..78defd2f4 100644
--- a/src/FilterLists.Agent/FilterLists.Agent.csproj
+++ b/src/FilterLists.Agent/FilterLists.Agent.csproj
@@ -43,13 +43,13 @@
-
+
diff --git a/src/FilterLists.Agent/Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs b/src/FilterLists.Agent/Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs
index 4871b1958..7f18b4827 100644
--- a/src/FilterLists.Agent/Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs
+++ b/src/FilterLists.Agent/Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs
@@ -9,9 +9,9 @@
using FilterLists.Agent.Infrastructure.GitHub;
using LibGit2Sharp;
using MediatR;
+using Microsoft.ApplicationInsights;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Polly;
using Serilog;
@@ -59,12 +59,21 @@ private static void ConfigureCustom(this IServiceCollection services,
private static void AddLoggingCustom(this IServiceCollection services)
{
+ services.AddSingleton(b =>
+ {
+ var applicationInsightsSettings = b.GetService>().Value;
+ return new TelemetryClient
+ {
+ InstrumentationKey = applicationInsightsSettings.InstrumentationKey
+ };
+ });
services.AddLogging(b =>
{
- b.AddSerilog(new LoggerConfiguration().WriteTo.Console().CreateLogger());
- var applicationInsightsSettings = b.Services.BuildServiceProvider()
- .GetService>().Value;
- b.AddApplicationInsights(applicationInsightsSettings.InstrumentationKey);
+ var telemetryClient = b.Services.BuildServiceProvider().GetService();
+ b.AddSerilog(new LoggerConfiguration()
+ .WriteTo.Console()
+ .WriteTo.ApplicationInsights(telemetryClient, TelemetryConverter.Traces)
+ .CreateLogger());
});
}
diff --git a/src/FilterLists.Agent/Program.cs b/src/FilterLists.Agent/Program.cs
index 96b203f92..fc28c702b 100644
--- a/src/FilterLists.Agent/Program.cs
+++ b/src/FilterLists.Agent/Program.cs
@@ -1,10 +1,12 @@
using System;
+using System.Threading;
using System.Threading.Tasks;
using CommandLine;
using FilterLists.Agent.Features.Lists;
using FilterLists.Agent.Features.Urls;
using FilterLists.Agent.Infrastructure.DependencyInjection;
using MediatR;
+using Microsoft.ApplicationInsights;
using Microsoft.Extensions.DependencyInjection;
namespace FilterLists.Agent
@@ -18,6 +20,7 @@ public static async Task Main(string[] args)
BuildServiceProvider();
var parser = _serviceProvider.GetService();
var mediator = _serviceProvider.GetService();
+
await parser.ParseArguments(args).MapResult(async o =>
{
if (o.ArchiveLists)
@@ -27,6 +30,8 @@ await parser.ParseArguments(args).MapResult(async o =>
},
e => Task.FromResult(0)
);
+
+ FlushApplicationInsights();
}
private static void BuildServiceProvider()
@@ -35,5 +40,12 @@ private static void BuildServiceProvider()
serviceCollection.RegisterAgentServices();
_serviceProvider = serviceCollection.BuildServiceProvider();
}
+
+ private static void FlushApplicationInsights()
+ {
+ var telemetryClient = _serviceProvider.GetService();
+ telemetryClient.Flush();
+ Thread.Sleep(5000);
+ }
}
}
\ No newline at end of file