如何通过PowerShell为Log Analytics添加自定义维度(Properties)?
解决Log Analytics自定义维度(Properties)提交异常的问题
针对你的问题,可按以下步骤调整代码:
- 修正自定义维度的键名:将代码中的
property改为Properties(首字母大写),Log Analytics中自定义嵌套字段通常使用该命名,且字段名大小写敏感,不匹配会导致解析异常。 - 指定JSON转换深度:使用
ConvertTo-Json时添加-Depth参数,避免嵌套结构被自动截断(默认深度为2,虽然当前结构不深,但添加后更稳妥)。 - 验证生成的JSON结构:取消注释
# $json2,确认输出的JSON格式正确,比如嵌套的Properties对象是否完整。 - 确保请求头正确:检查
Post-LogAnalyticsData函数是否设置了Content-Type: application/json请求头,Log Analytics API要求该头来正确解析JSON数据。
修改后的代码示例:
$JSON = @{ Type = 'SQL' Subscriptionname = "123" Properties = @{ SQLServerName = "myServer"; DatabaseName = "myDatabase"; } } $json2 = $JSON | ConvertTo-Json -Depth 10 $json2 # 验证JSON结构 # Submit the data to the API endpoint Post-LogAnalyticsData -customerId $customerId -sharedKey $sharedKey -body ([System.Text.Encoding]::UTF8.GetBytes($json2)) -logType "MyRecordTypetoo"
提交后可在Log Analytics的日志查询中验证:使用MyRecordTypetoo表查询,查看Properties_SQLServerName和Properties_DatabaseName字段是否存在并正确赋值(Log Analytics会将嵌套对象的字段自动展开为父字段_子字段的格式)。
内容的提问来源于stack exchange,提问作者user3622142
相关产品推荐
相关产品推荐

