我是记录自定义遥测事件使用遥测客户端的天青功能。它几乎每次触发某个事件时都会记录自定义事件,但偶尔会失败一次,千分之一。我可以确定没有异常被抛出,事件被成功地处理,没有任何错误。下面是我如何记录自定义遥测的一个例子。
try
{
_telemetryClient.TrackEvent("MyCustomEventName",
new KeyValuePair<string, string>("CustomEvent",
JsonSerializer.Serialize(customEventObject)));
}
catch (Exception e)
{
_logger.LogError(e,"Failed to log CustomEventObject");
}如果遥测客户端失败,而记录器没有显示异常,我将记录异常。是否有任何原因导致遥测客户端无法分派该事件?如果是,如何诊断和处理?
我在.net内核3.1上使用Azure函数运行时3.1.3.0
发布于 2021-08-27 04:03:03
您可以使用以下两种抽样方法来诊断和处理分派事件的失败:
默认情况下会添加两个AdaptiveSamplingTelemetryProcessor节点,其中一个包含抽样中的事件类型,而另一个则从抽样中排除事件类型。
<TelemetryProcessors>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
<ExcludedTypes>Event</ExcludedTypes>
</Add>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
<IncludedTypes>Event</IncludedTypes>
</Add>
</TelemetryProcessors>您可以参考抽样类型、我怎么跟踪不是自动收集的遥测数据?、遥测采样不影响误差/故障以及在如何正确地将TelemetryClient依赖注入到ASP.NET内核中?上打开的GitHub问题。
https://stackoverflow.com/questions/68932709
复制相似问题