Skip to content

Commit badfdec

Browse files
fix for app insight
1 parent ce3ba36 commit badfdec

3 files changed

Lines changed: 26 additions & 13 deletions

File tree

App/backend-api/Microsoft.GS.DPS.Host/Helpers/TelemetryHelper.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,20 @@ public TelemetryHelper(TelemetryClient? telemetryClient, ILogger<TelemetryHelper
1717
{
1818
_telemetryClient = telemetryClient;
1919
_logger = logger;
20-
_isConfigured = !string.IsNullOrEmpty(_telemetryClient?.InstrumentationKey);
20+
21+
// Check if Application Insights is properly configured
22+
// TelemetryConfiguration.ConnectionString is the modern way (replaces deprecated InstrumentationKey)
23+
_isConfigured = _telemetryClient != null &&
24+
!string.IsNullOrEmpty(_telemetryClient.TelemetryConfiguration?.ConnectionString);
2125

2226
if (!_isConfigured)
2327
{
2428
_logger.LogWarning("Application Insights is not configured. Telemetry tracking will be disabled.");
2529
}
30+
else
31+
{
32+
_logger.LogInformation("Application Insights is configured successfully. Telemetry tracking is enabled.");
33+
}
2634
}
2735

2836
/// <summary>

App/backend-api/Microsoft.GS.DPS.Host/Program.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,26 @@
1818
//Load Inject Settings and Load AppConfiguration Objects
1919
AppConfiguration.Config(builder);
2020

21-
// Configure Application Insights
21+
// Configure Application Insights - Always register to ensure TelemetryClient is available for DI
2222
var connectionString = builder.Configuration["ApplicationInsights:ConnectionString"];
23-
if (!string.IsNullOrEmpty(connectionString))
23+
builder.Services.AddApplicationInsightsTelemetry(options =>
2424
{
25-
builder.Services.AddApplicationInsightsTelemetry(options =>
25+
if (!string.IsNullOrEmpty(connectionString))
2626
{
2727
options.ConnectionString = connectionString;
2828
options.EnableAdaptiveSampling = builder.Configuration.GetValue<bool>("ApplicationInsights:EnableAdaptiveSampling", true);
2929
options.EnablePerformanceCounterCollectionModule = builder.Configuration.GetValue<bool>("ApplicationInsights:EnablePerformanceCounterCollectionModule", true);
3030
options.EnableQuickPulseMetricStream = builder.Configuration.GetValue<bool>("ApplicationInsights:EnableQuickPulseMetricStream", true);
31-
});
31+
}
32+
});
3233

33-
builder.Logging.AddApplicationInsights();
34-
}
35-
else
34+
// Configure logging
35+
if (!string.IsNullOrEmpty(connectionString))
3636
{
37-
builder.Logging.AddConsole();
38-
builder.Logging.AddDebug();
37+
builder.Logging.AddApplicationInsights();
3938
}
39+
builder.Logging.AddConsole();
40+
builder.Logging.AddDebug();
4041

4142
//Bson Register Class Maps
4243
//MongoDbConfig.RegisterClassMaps();

infra/main.bicep

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,10 @@ module avmAppConfig 'br/public:avm/res/app-configuration/configuration-store:0.6
531531
]
532532

533533
keyValues: [
534+
{
535+
name: 'ApplicationInsights:ConnectionString'
536+
value: enableMonitoring ? applicationInsights!.outputs.connectionString : ''
537+
}
534538
{
535539
name: 'Application:AIServices:GPT-4o-mini:Endpoint'
536540
value: avmOpenAi.outputs.endpoint
@@ -1115,10 +1119,10 @@ output AZ_GPT_EMBEDDING_MODEL_NAME string = embeddingModelDeployment.modelName
11151119
output AZ_GPT_EMBEDDING_MODEL_ID string = embeddingModelDeployment.deploymentName
11161120

11171121
@description('Contains Application Insights Connection String.')
1118-
output APPLICATIONINSIGHTS_CONNECTION_STRING string = enableMonitoring ? applicationInsights.outputs.connectionString : ''
1122+
output APPLICATIONINSIGHTS_CONNECTION_STRING string = enableMonitoring ? applicationInsights!.outputs.connectionString : ''
11191123

11201124
@description('Contains Application Insights Instrumentation Key.')
1121-
output APPLICATIONINSIGHTS_INSTRUMENTATION_KEY string = enableMonitoring ? applicationInsights.outputs.instrumentationKey : ''
1125+
output APPLICATIONINSIGHTS_INSTRUMENTATION_KEY string = enableMonitoring ? applicationInsights!.outputs.instrumentationKey : ''
11221126

11231127
@description('Contains Application Insights Name.')
1124-
output APPLICATIONINSIGHTS_NAME string = enableMonitoring ? applicationInsights.outputs.name : ''
1128+
output APPLICATIONINSIGHTS_NAME string = enableMonitoring ? applicationInsights!.outputs.name : ''

0 commit comments

Comments
 (0)