You are configuring Application Insights telemetry in a C# console application. You need to enrich all telemetry sent to Application Insights with a custom cloud role name by implementing and registering a telemetry initializer.
Complete the code snippet by identifying the correct types and properties for each blank.
Answer:using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.Extensibility;
// A custom initializer to enrich all telemetry with cloud role details
public class CloudRoleNameInitializer : 【ITelemetryInitializer】
{
public void Initialize(【ITelemetry】 telemetry)
{
telemetry.Context.Cloud.RoleName = "OrderProcessingService";
}
}
// In the application startup code:
var config = TelemetryConfiguration.CreateDefault();
config.ConnectionString = "ConnectionStringValue";
config.【TelemetryInitializers】.Add(new CloudRoleNameInitializer());
using Microsoft.ApplicationInsights.Extensibility;
// A custom initializer to enrich all telemetry with cloud role details
public class CloudRoleNameInitializer : 【ITelemetryInitializer】
{
public void Initialize(【ITelemetry】 telemetry)
{
telemetry.Context.Cloud.RoleName = "OrderProcessingService";
}
}
// In the application startup code:
var config = TelemetryConfiguration.CreateDefault();
config.ConnectionString = "ConnectionStringValue";
config.【TelemetryInitializers】.Add(new CloudRoleNameInitializer());
Answer
Blank 1 should be filled with ITelemetryInitializer, Blank 2 with ITelemetry, and Blank 3 with TelemetryInitializers.
To write a custom telemetry initializer, you must implement the ITelemetryInitializer interface, which has a single Initialize method taking an ITelemetry argument. To run it, you must add it to the TelemetryInitializers collection on the active TelemetryConfiguration.
Step-by-Step Solution
Key Concept
Programmatic configuration of Application Insights Telemetry Initializers in C#
Estimated Time:2m 0s