Я хотел бы извлечь поля JSON в столбцы для сообщения:
FunctionAppLogs
| order by TimeGenerated desc
| where FunctionName == "TelemetryListenerCalculateAlgoPostNewState"
| where Message has "Telemetry Message"
| where TimeGenerated > datetime(2022-11-25 06:38) and TimeGenerated < datetime(2022-11-25 06:50)
Я пытаюсь добавить Код запроса ADFPipelineRun, который я нашел, чтобы выбрать столбцы, но я не получаю результатов (пусто и без ошибок):
FunctionAppLogs
| order by TimeGenerated desc
| where FunctionName == "TelemetryListenerCalculateAlgoPostNewState"
| where Message has "Telemetry Message"
| where TimeGenerated > datetime(2022-11-25 06:38) and TimeGenerated < datetime(2022-11-25 06:50)
| extend MessageObject=parse_json(Message)
| mv-expand MessageObject
| extend myhumidity=MessageObject.humidity
| project myhumidity
На случай, если это кому-нибудь поможет, проблема заключалась в том, что я отправлял текст в формате json — обратите внимание на «Сообщение телеметрии: {…».
Я попробовал подстроку, но Kusto не распознал результат как json. Я изменил журналы, чтобы показать json без текста, и последний запрос, который сработал, был таким:
FunctionAppLogs
| order by TimeGenerated desc
| where FunctionName == "TelemetryListenerCalculateAlgoPostNewState"
| where Message has "telemetryTimeStamp"
| where TimeGenerated > datetime(2022-11-25 14:50) and TimeGenerated < datetime(2022-11-25 15:00)
| extend MessageObject=parse_json(Message)
| extend mxchip_timestamp=MessageObject.telemetryTimeStamp
| extend humidity=MessageObject.humidity
| project TimeGenerated, mxchip_timestamp, humidity