asp.net - 在 Application Insights 指标 (VB.NET) 中为每个请求添加自定义属性
问题描述
我正在尝试将自定义属性添加到 Application Insights 到每个请求。我正在尝试使用 VB.NET 代码实现与本文所述相同的事情(在 Application Insights 指标中为每个请求添加自定义属性)。
我将建议的解决方案 C# 代码转换为 VB.NET,如下所示:
public class CustomTelemetry : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
var requestTelemetry = telemetry as RequestTelemetry;
if (requestTelemetry == null) return;
requestTelemetry.Properties.Add("LoggedInUserName", "DummyUser");
}
}
和
TelemetryConfiguration.Active.TelemetryInitializers.Add(new CustomTelemetry());
到
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
和
TelemetryConfiguration.Active.TelemetryInitializers.Add(New CustomTelemetry())
然而,这给了我一个关于Inherits ITelemetryInitializer的错误
类只能从其他类继承。
我也尝试使用“实现”而不是继承,但仍然没有在页面访问时将自定义属性发送给 AI。
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
我想知道我在这里缺少什么?
谢谢
解决方案
我设法让它按如下方式工作:
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
推荐阅读
- python - 熊猫 groupby 的用户定义函数
- javascript - 从 HTML 表中提取数据以将值存储在变量中
- r - R:将不同条件的函数(夏皮罗测试)应用于数据框中的每一列
- java - 如何创建 Rest API 并添加时间延迟来处理?
- javascript - 在现有静态网站之上使用 Vue 添加过滤功能
- excel - 用户窗体不会打开
- php - 带有php的谷歌日历v3 api不发送与会者
- c++ - 聆听 GLFW 中的键盘输入并相应地修改对象?
- python - 为什么使用 networkx 时 dask.delayed 比串行代码花费更长的时间?
- java - 如何解决 Apache 客户端 5.0“连接已关闭”HTTPS POST 错误