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";

Надеюсь это поможет!! Ура!!:)

Другие вопросы по тегам