我在这里努力寻找运行 kusto 查询的时间间隔。
我要做的是计算在 Azure 应用服务上运行的某些特定 API 的停机时间。azure APP 服务的所有日志都存在于应用分析中。
为了绘制停机时间,我能够通过查询找到 API 被认为停机的分钟数。
现在的挑战是计算 UP 时间百分比。查询会在门户上提供的时间范围内选择的日志上运行。
这意味着如果我在控制台中更改时间范围,则会相应地计算停机时间。但由于我不知道时间范围,我无法计算它的运行时间百分比。
现在,我每次都必须更新查询,我从控制台更改时间范围以计算 UP 时间百分比。
编辑 1
requests
| where client_Type != "Browser"
| where operation_Name =~ 'GET Account/Login'
| summarize failed_requests=sumif(itemCount, toint(resultCode) >= 500), total_requests=sum(itemCount) by bin(timestamp, 1m)
| extend failure_percentage=(failed_requests * 100/ total_requests)
| extend external_sla_failure=iff(failure_percentage < 100, 0, 1)
| extend internal_sla_failure=iff(external_sla_failure == 0 and failed_requests < 3, 0 , 1)
| summarize internal_sla_downtime_min=sum(internal_sla_failure), external_sla_downtime_min=sum(external_sla_failure)
此查询计算两个停机时间,内部和外部。现在我只想计算两个停机时间的正常运行时间百分比。为了计算我需要从门户时间范围选择器中选择的持续时间。
此时间范围是从 azure 门户应用程序分析时间范围选择器或从 azure 仪表板时间选择器中选择的。是否有任何变量或存储从门户上的时间选择器(应用程序分析或天蓝色仪表板)中选择的时间跨度(或开始和结束时间)?
编辑 2
我可以通过在时间戳上使用min和max函数来获得开始和结束时间,但如果应用程序在所选时间的前n分钟或最后m分钟内没有收到任何请求,则%正常运行时间计算将显示不正确数据。