Skip to content

Commit

Permalink
fix: telemetry logger middleware (#2800)
Browse files Browse the repository at this point in the history
* fix telemetry client.

* change telemetry default to true, change naming

Co-authored-by: Ben Yackley <61990921+beyackle@users.noreply.github.com>
  • Loading branch information
Qi Kang and beyackle authored Apr 29, 2020
1 parent 942685a commit ea9af87
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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; }

Expand All @@ -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; }
}
}
39 changes: 18 additions & 21 deletions BotProject/Templates/CSharp/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<TelemetryInitializerMiddleware>());
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);
}
Expand All @@ -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) =>
Expand Down Expand Up @@ -124,24 +124,21 @@ public void ConfigureServices(IServiceCollection services)
services.AddHttpClient<BotFrameworkClient, SkillHttpClient>();
services.AddSingleton<ChannelServiceHandler, SkillHandler>();

if (settings.Feature.UseTelementryLoggerMiddleware)
// Register telemetry client, initializers and middleware
services.AddApplicationInsightsTelemetry();
services.AddSingleton<ITelemetryInitializer, OperationCorrelationTelemetryInitializer>();
services.AddSingleton<ITelemetryInitializer, TelemetryBotIdInitializer>();
services.AddSingleton<TelemetryLoggerMiddleware>(sp =>
{
// Register telemetry client, initializers and middleware
services.AddApplicationInsightsTelemetry();
services.AddSingleton<ITelemetryInitializer, OperationCorrelationTelemetryInitializer>();
services.AddSingleton<ITelemetryInitializer, TelemetryBotIdInitializer>();
services.AddSingleton<TelemetryLoggerMiddleware>(sp =>
{
var telemetryClient = sp.GetService<IBotTelemetryClient>();
return new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: settings.Telemetry.LogPersonalInformation);
});
services.AddSingleton<TelemetryInitializerMiddleware>(sp =>
{
var httpContextAccessor = sp.GetService<IHttpContextAccessor>();
var telemetryLoggerMiddleware = sp.GetService<TelemetryLoggerMiddleware>();
return new TelemetryInitializerMiddleware(httpContextAccessor, telemetryLoggerMiddleware, settings.Telemetry.LogActivities);
});
}
var telemetryClient = sp.GetService<IBotTelemetryClient>();
return new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: settings.Telemetry.LogPersonalInformation);
});
services.AddSingleton<TelemetryInitializerMiddleware>(sp =>
{
var httpContextAccessor = sp.GetService<IHttpContextAccessor>();
var telemetryLoggerMiddleware = sp.GetService<TelemetryLoggerMiddleware>();
return new TelemetryInitializerMiddleware(httpContextAccessor, telemetryLoggerMiddleware, settings.Telemetry.LogActivities);
});

IStorage storage = ConfigureStorage(settings);

Expand Down
3 changes: 1 addition & 2 deletions BotProject/Templates/CSharp/appsettings.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
{
"feature": {
"UseTelementryLoggerMiddleware": false,
"UseTranscriptLoggerMiddleware": false,
"UseShowTypingMiddleware": false,
"UseInspectionMiddleware": false,
"UseCosmosDb": false
"UseCosmosDbPersistentStorage": false
},
"microsoftAppId": "",
"cosmosDb": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand All @@ -37,6 +43,7 @@ export class DefaultSettingManager extends FileSettingManager {
},
telemetry: {
logPersonalInformation: false,
logActivities: true,
},
runtime: {
customRuntime: false,
Expand Down

0 comments on commit ea9af87

Please sign in to comment.