I want to log custom properties for both request and page view telemetries in Application Insight. I am working in an asp.net webforms project. The following is my code.
public class CustomTelemetry : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
var requestTelemetry = telemetry as RequestTelemetry;
var pageViewTelemetry = telemetry as PageViewTelemetry;
if (requestTelemetry != null)
{
SetRequestTelemetry(requestTelemetry);
}
if (pageViewTelemetry != null)
{
SetPageViewTelemetry(pageViewTelemetry);
}
}
private void SetRequestTelemetry(RequestTelemetry requestTelemetry)
{
//requestTelemetry.Context.Properties["RequestTelemetryUser"] =
//"RequestTelemetryUser";
//requestTelemetry.Properties.Add("LoggedInUserName", "DummyUser");
requestTelemetry.Properties["RequestTelemetryUser"] = "RequestTelemetryUser";
}
private void SetPageViewTelemetry(PageViewTelemetry pageViewTelemetry)
{
pageViewTelemetry.Properties["PageViewTelemetryUser"] = "PageViewTelemetryUser";
}
}
In the Global.asax I have the following line.
TelemetryConfiguration.Active.TelemetryInitializers.Add(new CustomTelemetry());
While the custom properties are logged for the page view they are not logged for the request. I have commented out other additional code I tried within the SetRequestTelemetry method. One of the suggested solution at Add Custom Properties to Application Insights Request Telemetry in WCF doesn't work as it's not a WCF application.