Поисковый запрос должен содержать «AggregatedValue» и «bin (timestamp, [roundTo])» для типа предупреждения «Метрика». - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь создать персонализированное оповещение о метрике на основе некоторых метрик в моих журналах Application Insights. Ниже приведен запрос, который я использую;

let start = customEvents
| where customDimensions.configName == "configName" 
| where name == "name"
| extend timestamp, correlationId = tostring(customDimensions.correlationId), configName = tostring(customDimensions.configName);

let ending = customEvents
| where customDimensions.configName == configName" 
| where name == "anotherName" 
| where customDimensions.taskName == "taskName" 
| extend timestamp, correlationId = tostring(customDimensions.correlationId), configName = tostring(customDimensions.configName), name= name, nameTimeStamp= timestamp ;


let timeDiffs = start
| join (ending) on correlationId
| extend timeDiff = nameTimeStamp- timestamp
| project timeDiff, timestamp, nameTimeStamp, name, anotherName, correlationId;

timeDiffs
| summarize AggregatedValue=avg(timeDiff) by bin(timestamp, 1m)

Когда я запускаю этот запрос на странице Google Analytics, я получаю результаты, однако, когда я пытаюсь создать пользовательское предупреждение о метрике, я получаю сообщение об ошибке Search Query should contain 'AggregatedValue' and 'bin(timestamp, [roundTo])' for Metric alert type

Единственный ответ, который я нашел, это добавление AggregatedValue, которое у меня уже есть, я не уверен, почему страница с предупреждением о метрической системе выдаёт мне эту ошибку.

1 Ответ

0 голосов
/ 17 сентября 2018

Я обнаружил, что не так с моим запросом. По сути, агрегированное значение должно быть числовым, однако AggregatedValue=avg(timeDiff) дает значение времени, но это было в секундах, поэтому его было немного трудно заметить. Преобразование его в int решает проблему,

Я только что обновил последний бит следующим образом

timeDiffs
| summarize AggregatedValue=toint(avg(timeDiff)/time(1ms)) by bin(timestamp, 5m)

Это создает еще одну проблему для Aggregate On при создании оповещения, поскольку AggregatedValue не является частью группировки, которая идет после оператора by.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...