gpt4 book ai didi

.net - 遥测采样而不影响错误/故障

转载 作者:行者123 更新时间:2023-12-02 00:53:54 29 4
gpt4 key购买 nike

我想在应用洞察中记录成功调用的百分比。我看到这篇文章https://learn.microsoft.com/en-us/azure/azure-monitor/app/sampling我认为固定速率采样在这里是合适的。但这是否会同样影响所有日志记录?某些错误/失败将不再被记录吗?

我正在寻找一种解决方案,可以记录一定比例的成功调用,但保留所有失败的请求/错误。

最佳答案

我不认为这是开箱即用的支持,但您可以编写自己的ITelemetryProcessor

参见:https://learn.microsoft.com/en-us/azure/azure-monitor/app/api-filtering-sampling#filtering-itelemetryprocessor

.NET 中的 Application Insights 使用一系列遥测处理器,可用于过滤遥测数据,因此您可以编写自己的处理器来检查 resultCode(我认为这就是 Application Insights 所说的 HTTP 状态)代码,但您必须仔细检查)请求遥测对象,如果它是 500(或 5xx),则批准它,但如果它是 2xx 或 3xx,则只有 10% 的机会发送它。您可以重写 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;
}
}

关于.net - 遥测采样而不影响错误/故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55731036/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com