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

如何用PowerShell将Azure API的JSON监控数据正确转换为CSV

解决Azure监控JSON转CSV的行映射问题

问题根源

你的脚本未遍历JSON中每个时间点的指标数据,直接将timestamps、averages这类数组字段写入CSV,导致所有值被合并到同一行。Azure监控API返回的JSON里,每个指标的时间序列数据嵌套在metrics.timeseries.data数组中,每个数组元素对应一个时间点的完整指标值。

正确转换步骤

1. 核心JSON结构参考

假设你的监控数据JSON核心结构如下:

{
  "metrics": [
    {
      "name": { "value": "UsedCapacity" },
      "timeseries": [
        {
          "data": [
            {
              "timeStamp": "2024-05-01T00:00:00Z",
              "average": 1024,
              "maximum": 1200
            },
            {
              "timeStamp": "2024-05-01T01:00:00Z",
              "average": 1100,
              "maximum": 1300
            }
          ]
        }
      ]
    },
    {
      "name": { "value": "Percentage CPU" },
      "timeseries": [
        {
          "data": [
            {
              "timeStamp": "2024-05-01T00:00:00Z",
              "average": 25,
              "maximum": 40
            }
          ]
        }
      ]
    }
  ]
}

2. PowerShell转换脚本

# 读取JSON文件(若直接从API获取,可替换为Invoke-RestMethod的响应结果)
$jsonData = Get-Content -Path "your-monitor-data.json" -Raw | ConvertFrom-Json

# 初始化结果集合
$csvRows = @()

# 遍历所有指标
foreach ($metric in $jsonData.metrics) {
    $metricType = $metric.name.value
    # 遍历时间序列组
    foreach ($series in $metric.timeseries) {
        # 遍历每个时间点的指标数据
        foreach ($point in $series.data) {
            # 构造单行数据对象
            $csvRows += [PSCustomObject]@{
                MetricType   = $metricType
                Timestamp    = $point.timeStamp
                AverageValue = $point.average
                MaximumValue = $point.maximum
            }
        }
    }
}

# 导出到CSV文件
$csvRows | Export-Csv -Path "monitor-output.csv" -NoTypeInformation -Encoding UTF8

3. 脚本说明

  • 逐层遍历嵌套结构:从顶级metrics到timeseries,再到每个时间点的data元素
  • 为每个时间点生成独立的行对象,明确映射指标类型、时间戳、平均值、最大值字段
  • 最终导出的CSV会实现一个时间点对应一行数据的需求

预期CSV结构

导出的CSV内容格式如下:

MetricTypeTimestampAverageValueMaximumValue
UsedCapacity2024-05-01T00:00:00Z10241200
UsedCapacity2024-05-01T01:00:00Z11001300
Percentage CPU2024-05-01T00:00:00Z2540

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:18:21