From ea9af87d44235a32c8c290f335e71d7709c52f96 Mon Sep 17 00:00:00 2001 From: Qi Kang Date: Thu, 30 Apr 2020 07:15:26 +0800 Subject: [PATCH] fix: telemetry logger middleware (#2800) * fix telemetry client. * change telemetry default to true, change naming Co-authored-by: Ben Yackley <61990921+beyackle@users.noreply.github.com> --- .../CSharp/BotSettings/BotFeatureSettings.cs | 5 +-- BotProject/Templates/CSharp/Startup.cs | 39 +++++++++---------- BotProject/Templates/CSharp/appsettings.json | 3 +- .../models/settings/defaultSettingManager.ts | 7 ++++ 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/BotProject/Templates/CSharp/BotSettings/BotFeatureSettings.cs b/BotProject/Templates/CSharp/BotSettings/BotFeatureSettings.cs index d65e24c2aa..158d5ec1cd 100644 --- a/BotProject/Templates/CSharp/BotSettings/BotFeatureSettings.cs +++ b/BotProject/Templates/CSharp/BotSettings/BotFeatureSettings.cs @@ -10,9 +10,6 @@ namespace Microsoft.Bot.Builder.ComposerBot.Json { public class BotFeatureSettings { - // Use TelementryLoggerMiddleware - public bool UseTelementryLoggerMiddleware { get; set; } - // Use TranscriptLoggerMiddleware public bool UseTranscriptLoggerMiddleware { get; set; } @@ -23,6 +20,6 @@ public class BotFeatureSettings public bool UseInspectionMiddleware { get; set; } // Use CosmosDb for storage - public bool UseCosmosDb { get; set; } + public bool UseCosmosDbPersistentStorage { get; set; } } } diff --git a/BotProject/Templates/CSharp/Startup.cs b/BotProject/Templates/CSharp/Startup.cs index 357f86b405..0b0a24315f 100644 --- a/BotProject/Templates/CSharp/Startup.cs +++ b/BotProject/Templates/CSharp/Startup.cs @@ -54,18 +54,18 @@ public void ConfigureShowTypingMiddleWare(BotFrameworkAdapter adapter, BotSettin } } - public void ConfigureInspectionMiddleWare(BotFrameworkAdapter adapter, BotSettings settings, IServiceProvider s) + public void ConfigureInspectionMiddleWare(BotFrameworkAdapter adapter, BotSettings settings, IStorage storage) { if (settings.Feature.UseInspectionMiddleware) { - adapter.Use(s.GetService()); + adapter.Use(new InspectionMiddleware(new InspectionState(storage))); } } public IStorage ConfigureStorage(BotSettings settings) { IStorage storage; - if (settings.Feature.UseCosmosDb && !string.IsNullOrEmpty(settings.CosmosDb.AuthKey)) + if (settings.Feature.UseCosmosDbPersistentStorage && !string.IsNullOrEmpty(settings.CosmosDb.AuthKey)) { storage = new CosmosDbPartitionedStorage(settings.CosmosDb); } @@ -89,7 +89,7 @@ public BotFrameworkHttpAdapter GetBotAdapter(IStorage storage, BotSettings setti // Configure Middlewares ConfigureTranscriptLoggerMiddleware(adapter, settings); - ConfigureInspectionMiddleWare(adapter, settings, s); + ConfigureInspectionMiddleWare(adapter, settings, storage); ConfigureShowTypingMiddleWare(adapter, settings); adapter.OnTurnError = async (turnContext, exception) => @@ -124,24 +124,21 @@ public void ConfigureServices(IServiceCollection services) services.AddHttpClient(); services.AddSingleton(); - if (settings.Feature.UseTelementryLoggerMiddleware) + // Register telemetry client, initializers and middleware + services.AddApplicationInsightsTelemetry(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(sp => { - // Register telemetry client, initializers and middleware - services.AddApplicationInsightsTelemetry(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(sp => - { - var telemetryClient = sp.GetService(); - return new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: settings.Telemetry.LogPersonalInformation); - }); - services.AddSingleton(sp => - { - var httpContextAccessor = sp.GetService(); - var telemetryLoggerMiddleware = sp.GetService(); - return new TelemetryInitializerMiddleware(httpContextAccessor, telemetryLoggerMiddleware, settings.Telemetry.LogActivities); - }); - } + var telemetryClient = sp.GetService(); + return new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: settings.Telemetry.LogPersonalInformation); + }); + services.AddSingleton(sp => + { + var httpContextAccessor = sp.GetService(); + var telemetryLoggerMiddleware = sp.GetService(); + return new TelemetryInitializerMiddleware(httpContextAccessor, telemetryLoggerMiddleware, settings.Telemetry.LogActivities); + }); IStorage storage = ConfigureStorage(settings); diff --git a/BotProject/Templates/CSharp/appsettings.json b/BotProject/Templates/CSharp/appsettings.json index 93b869b25c..4bf7525985 100644 --- a/BotProject/Templates/CSharp/appsettings.json +++ b/BotProject/Templates/CSharp/appsettings.json @@ -1,10 +1,9 @@ { "feature": { - "UseTelementryLoggerMiddleware": false, "UseTranscriptLoggerMiddleware": false, "UseShowTypingMiddleware": false, "UseInspectionMiddleware": false, - "UseCosmosDb": false + "UseCosmosDbPersistentStorage": false }, "microsoftAppId": "", "cosmosDb": { diff --git a/Composer/packages/server/src/models/settings/defaultSettingManager.ts b/Composer/packages/server/src/models/settings/defaultSettingManager.ts index 723b4bcdd7..6d82b4371d 100644 --- a/Composer/packages/server/src/models/settings/defaultSettingManager.ts +++ b/Composer/packages/server/src/models/settings/defaultSettingManager.ts @@ -19,6 +19,12 @@ export class DefaultSettingManager extends FileSettingManager { protected createDefaultSettings = (): any => { return { + feature: { + UseTranscriptLoggerMiddleware: false, + UseShowTypingMiddleware: false, + UseInspectionMiddleware: false, + UseCosmosDbPersistentStorage: false, + }, MicrosoftAppPassword: '', MicrosoftAppId: '', luis: { @@ -37,6 +43,7 @@ export class DefaultSettingManager extends FileSettingManager { }, telemetry: { logPersonalInformation: false, + logActivities: true, }, runtime: { customRuntime: false,