You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Analytics Log提取FunctionAppLogs的Message中JSON至列的问题

Azure Log Analytics提取FunctionAppLogs中Message字段JSON内容的解决方案

问题分析

你的查询返回空白结果,大概率是以下几个原因导致:

  1. Message字段并非纯JSON字符串,包含前缀文本(比如"Telemetry Message: "),直接用parse_json解析会失败
  2. 错误使用mv-expand:如果MessageObject是单个JSON对象而非数组,mv-expand会将其转为空值
  3. JSON字段路径或大小写不匹配,导致无法提取humidity值

分步解决方案

1. 先排查Message的实际格式

先运行基础查询查看原始Message内容,确认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)
| project Message

2. 针对带前缀的Message提取JSON

如果Message格式类似"Telemetry Message: {"humidity": 55, ...}",先提取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)
// 提取"Telemetry Message: "后的JSON内容
| extend JsonPart = extract(@"Telemetry Message:\s*(.*)", 1, Message)
| extend MessageObject = parse_json(JsonPart)
// 单个JSON对象无需mv-expand,直接提取字段
| extend myhumidity = MessageObject.humidity
| project TimeGenerated, myhumidity

3. 纯JSON对象的简化查询

如果Message本身就是纯JSON字符串,移除多余的mv-expand即可:

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)
| extend myhumidity = MessageObject.humidity
| project myhumidity

4. 处理嵌套字段或大小写问题

如果humidity在嵌套层级中,或键名大小写不匹配,调整字段路径:

// 示例:嵌套在data字段下
| extend myhumidity = MessageObject.data.humidity
// 示例:键名首字母大写
| extend myhumidity = MessageObject.Humidity

关键注意事项

  • 只有当MessageObject是JSON数组时,才需要使用mv-expand展开元素
  • 解析后可以通过project Message, MessageObject查看MessageObject是否为有效对象,验证解析是否成功

内容的提问来源于stack exchange,提问作者Sergio Solorzano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 19:10:32