Azure Log Analytics Query с предложением WHERE не дает результатов - PullRequest
0 голосов
/ 21 февраля 2019

Я запрашиваю записи журнала в 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"

Query result

При наведении курсора на свойство «productId» отображается знак плюс, который позволяет добавить критерии фильтра:

Filter for property

Выбор этой опции расширяет мой запрос:

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 

Пока все хорошо.Если я сейчас попытаюсь выполнить этот запрос, я получу сообщение «НЕТ РЕЗУЛЬТАТОВ НАЙДЕНО»:

No results found

Редактировать: я также попытался добавить предложение 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

Но этот столбец пуст: Project productId

Есть что-то, что я пропускаю?Является ли инструмент проблемой и производит неправильный запрос?

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 21 февраля 2019

Вы должны использовать различные операторы, такие как mvexpand и расширенные, чтобы выполнить ваши требования.Пожалуйста, найдите ниже образец запроса.Обратите внимание, что приведенный ниже пример запроса, который вам, возможно, придется немного настроить, чтобы заставить его работать должным образом и получить ожидаемый результат (скажем, если вы ожидаете вывода со всеми столбцами customEvent в конкретную отметку времени, которая имеет определенный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"
| extend CDP_toString=parsejson(tostring(customDimensions_Properties))
| mvexpand CDP_toString
| project CDP_toString
| where CDP_toString.['productId'] == "4711";

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

...