using Autofac; namespace Core.ModuleRegistry { public class TelemetryModule : Module { public TelemetryConfig TelemetryConfig { get; set; } protected override void Load(ContainerBuilder builder) { if (TelemetryConfig == null) throw new Exceptions.ConfigurationException("TelemetryConfig is missing"); var tmc = Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.CreateDefault(); tmc.ConnectionString = TelemetryConfig.ConnectionString; tmc.TelemetryChannel.DeveloperMode = true; //var r = new Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder(tmc); //r.Use(next => new Domain.EventTelemetryEnrichers.EnrichWithMetaTelemetry(next)); //r.Build(); builder.RegisterInstance(tmc); builder.RegisterType().InstancePerLifetimeScope(); } } public class TelemetryConfig { public string InstrumentationKey { get; set; } public string ConnectionString { get; set; } } }