我想在应用程序洞察中记录成功调用的百分比。
我看到了这个帖子https://learn.microsoft.com/en-us/azure/azure-monitor/app/sampling我认为固定速率采样在这里是合适的。但这是否同样影响所有日志记录?某些错误/失败将不再被记录吗?
我正在寻找一种解决方案,可以记录一定比例的成功调用,但保留所有失败的请求/错误。
我不认为这是开箱即用的支持,但你可以编写自己的ITelemetryProcessor
.
See: https://learn.microsoft.com/en-us/azure/azure-monitor/app/api-filtering-sampling#filtering-itelemetryprocessor
.NET 中的 Application Insights 使用一系列遥测处理器,可用于筛选遥测数据,因此您可以编写自己的遥测处理器来检查resultCode
(我认为这就是 Application Insights 所说的 HTTP 状态代码,但您必须仔细检查)请求遥测对象,如果它是 500(或 5xx),则批准它,但如果它是,则只有 10% 的机会发送它2xx 或 3xx。您可以覆盖OKToSend()
方法来执行上述检查ITelemetry
输入,并相应返回 true / false。
也许是这样的(我在浏览器中写的,它不一定能完美地按原样工作):
// Approves 500 errors and 10% of other telemetry objects
private bool OKtoSend (ITelemetry telemetry)
{
if (telemetry.ResponseCode == 500) {
return true;
} else {
Random rnd = new Random();
int filter = rnd.Next(1, 11);
return filter == 1;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)