0

I'm trying to add custom properties to Application Insights to each request. I'm trying to achieve the same thing as described in this post (Adding custom properties for each request in Application Insights metrics) using VB.NET code .

I converted the suggested solution C# code to VB.NET as follow :

public class CustomTelemetry : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        var requestTelemetry = telemetry as RequestTelemetry;
        if (requestTelemetry == null) return;
        requestTelemetry.Properties.Add("LoggedInUserName", "DummyUser");

    }
}

and

TelemetryConfiguration.Active.TelemetryInitializers.Add(new CustomTelemetry());

to

Imports Microsoft.ApplicationInsights.Channel
Imports Microsoft.ApplicationInsights.DataContracts
Imports Microsoft.ApplicationInsights.Extensibility

Public Class CustomTelemetry
    Inherits ITelemetryInitializer

    Public Sub Initialize(ByVal telemetry As ITelemetry)
        Dim requestTelemetry = TryCast(telemetry, RequestTelemetry)
        If requestTelemetry Is Nothing Then Return
        requestTelemetry.Properties.Add("TEST", "TESTERRRRRR")
    End Sub

End Class

and

TelemetryConfiguration.Active.TelemetryInitializers.Add(New CustomTelemetry())

However this gives me an error on Inherits ITelemetryInitializer

Classes can inherit only from other classes.

I've also tried to use "Implements" instead of inherits, but still no Custom properties is sent to AI on page visit.

Public Class CustomTelemetry
    Implements ITelemetryInitializer

    Public Sub Initialize(ByVal telemetry As ITelemetry)
        Dim requestTelemetry = TryCast(telemetry, RequestTelemetry)
        If requestTelemetry Is Nothing Then Return
        requestTelemetry.Properties.Add("TEST", "TESTERRRRRR")
    End Sub

    Private Sub ITelemetryInitializer_Initialize(telemetry As ITelemetry) Implements ITelemetryInitializer.Initialize
        Throw New NotImplementedException()
    End Sub
End Class

I was wondering what i'm missing here?

Thanks

TwiceMe
  • 47
  • 6

1 Answers1

1

I managed to get it to work as follow:

Imports Microsoft.ApplicationInsights.Channel
Imports Microsoft.ApplicationInsights.DataContracts
Imports Microsoft.ApplicationInsights.Extensibility

Public Class CustomTelemetry
    Implements ITelemetryInitializer

    Private Sub ITelemetryInitializer_Initialize(telemetry As ITelemetry) Implements ITelemetryInitializer.Initialize
        Dim requestTelemetry = CType(telemetry, RequestTelemetry)
        If (requestTelemetry Is Nothing) Then
            Return
        End If

        requestTelemetry.Properties.Add("TEST", "TESTERRRRRR")
    End Sub
End Class
TwiceMe
  • 47
  • 6