Я пытаюсь создать оповещения о возможностях приложения, которые будут предупреждать меня, если более 5% моих запросов превышают определенный порог. Я написал запрос в разделе предупреждений Application Insights и назначил его метрическим измерением для предупреждения о превышении желаемого порога
requests
| where timestamp >= ago(15m)
| where (tostring(customDimensions['ProviderName']) == 'ProviderX')
| where (tostring(customDimensions['operationMethod']) == 'operationX')
| extend responseTime = tolong(customDimensions['totalMilliseconds'])
| summarize AggregatedValue = (percentile(responseTime, 95)) by bin(timestamp, 15m)
Хотя это оповещение работает и правильно уведомляет меня, есть одна проблема в том, что существует большое количество ложных срабатываний из-за того, что в определенных 15-минутных окнах очень мало запросов (меньше 3). Таким образом, я только хочу предупредить, когда значение порога превышено И число соответствующих запросов за период превышает определенный порог, скажем, 10.
Я попытался сделать это с помощью «Оповещения о количестве результатов» в разделе предупреждений в обзорах приложений.
requests
| where timestamp >= ago(15m)
| where (tostring(customDimensions['ProviderName']) == 'ProviderX')
| where (tostring(customDimensions['operationMethod']) == 'OpeartionX')
| extend responseTime = tolong(customDimensions['totalMilliseconds'])
| summarize hasFailed = ((percentile(responseTime, 95) > 1000) and count() > 135)
| project iff(hasFailed, 1, 0)
То, чего я пытался добиться, это вернуть предупреждение 1, если тест не пройден, а затем предупредить об этом значении. Однако «Количество результатов», кажется, только предупреждает о количестве возвращаемых результатов, поэтому этот подход также не работает.
Если бы кто-то мог пролить свет на соответствующий запрос или альтернативную стратегию его реализации в Azure, я был бы очень признателен.
Спасибо.