Azure Log Analytics Query с предложением WHERE не дает результатов
Я запрашиваю записи журнала в Azure Application Insights, полученные из AppCenter Diagnostics, с помощью Azure Log Analytics. В некоторых записях журнала я использую пользовательские свойства. Теперь я пытаюсь написать запрос, чтобы показать значения только с определенными свойствами, имеющими данное значение.
Мой оригинальный запрос выглядит так и дает ожидаемый результат:
customEvents
| where (timestamp >= datetime(2019-02-20T09:04:00.000Z) and timestamp <= datetime(2019-02-21T09:04:00.000Z))
| top 101 by timestamp desc
| project timestamp, name, customDimensions.Properties
| where name == "Navigated to details view"
При наведении курсора на свойство "productId" отображается знак плюс, который позволяет добавить критерии фильтра:
Выбор этой опции расширяет мой запрос:
customEvents
| where (timestamp >= datetime(2019-02-20T09:04:00.000Z) and timestamp <= datetime(2019-02-21T09:04:00.000Z))
| top 101 by timestamp desc
| project timestamp, name, customDimensions.Properties
| where name == "Navigated to details view"
| where customDimensions_Properties.productId == 4711
Все идет нормально. Если я сейчас попытаюсь выполнить этот запрос, я получу сообщение "НЕТ РЕЗУЛЬТАТОВ НАЙДЕНО":
Редактировать: я также попытался добавить предложение where внизу к первому предложению where
customEvents
| where (timestamp >= datetime(2019-02-20T09:04:00.000Z) and timestamp <= datetime(2019-02-21T09:04:00.000Z))
and name == "Navigated to details view"
and customDimensions.Properties.productId == 4711
| top 101 by timestamp desc
| project timestamp, name, customDimensions
К сожалению, никакого результата тоже нет.
Изменить 2: Я также попытался этот запрос, чтобы увидеть, могу ли я проецировать свойство productId в моем запросе, не включая его в предложении where:
customEvents
| where (timestamp >= datetime(2019-02-20T09:04:00.000Z) and timestamp <= datetime(2019-02-21T09:04:00.000Z))
and name == "Navigated to details view"
| top 101 by timestamp desc
| project timestamp, name, customDimensions, customDimensions.Properties.productId
Есть что-то, что я пропускаю? Является ли инструмент проблемой и производит неправильный запрос?
Спасибо за любую помощь!
1 ответ
Вы должны использовать различные операторы, такие как mvexpand и расширенные для выполнения ваших требований. Пожалуйста, найдите ниже образец запроса. Обратите внимание, что приведенный ниже пример запроса, который вам, возможно, придется немного настроить, чтобы заставить его работать должным образом и получить ожидаемый результат (скажем, если вы ожидаете вывода со всеми столбцами customEvent в конкретную отметку времени, которая имеет определенный идентификатор продукта и т. д.)
customEvents
| where (timestamp >= datetime(2019-02-20T09:04:00.000Z) and timestamp <= datetime(2019-02-21T09:04:00.000Z))
| top 101 by timestamp desc
| project timestamp, name, customDimensions_Properties
| where name == "Navigated to details view"
| extend CDP_toString=parsejson(tostring(customDimensions_Properties))
| mvexpand CDP_toString
| project CDP_toString
| where CDP_toString.['productId'] == "4711";
Надеюсь это поможет!! Ура!!:)