

# 检索指标数据（GetMetricData）
<a name="metrics-classic-getdata"></a>

`GetMetricData` 是通过编程方式检索经典指标数据点的主要 API。该 API 支持在单次调用中执行批量查询、数学表达式运算及多项查询。

## 基本用法
<a name="metrics-classic-getdata-basic"></a>

检索单条指标：

```
aws cloudwatch get-metric-data \
  --metric-data-queries '[
    {
      "Id": "cpu",
      "MetricStat": {
        "Metric": {
          "Namespace": "AWS/EC2",
          "MetricName": "CPUUtilization",
          "Dimensions": [{"Name": "InstanceId", "Value": "{{i-1234567890abcdef0}}"}]
        },
        "Period": 300,
        "Stat": "Average"
      }
    }
  ]' \
  --start-time $(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%S) \
  --end-time $(date -u +%Y-%m-%dT%H:%M:%S) \
  --output json
```

## 批量查询
<a name="metrics-classic-getdata-batch"></a>

单次调用可一次性检索多条指标（最多支持 500 条查询）：

```
aws cloudwatch get-metric-data \
  --metric-data-queries '[
    {"Id": "cpu", "MetricStat": {"Metric": {"Namespace": "AWS/EC2", "MetricName": "CPUUtilization", "Dimensions": [{"Name": "InstanceId", "Value": "{{i-abc}}"}]}, "Period": 300, "Stat": "Average"}},
    {"Id": "mem", "MetricStat": {"Metric": {"Namespace": "CWAgent", "MetricName": "mem_used_percent", "Dimensions": [{"Name": "InstanceId", "Value": "{{i-abc}}"}]}, "Period": 300, "Stat": "Average"}}
  ]' \
  --start-time 2024-01-01T00:00:00 \
  --end-time 2024-01-01T01:00:00
```

## 数学表达式
<a name="metrics-classic-getdata-math"></a>

通过算术运算组合多条指标：

```
[
  {"Id": "rx", "MetricStat": {"Metric": {"Namespace": "AWS/EC2", "MetricName": "NetworkIn", "Dimensions": [{"Name": "InstanceId", "Value": "{{i-abc}}"}]}, "Period": 300, "Stat": "Sum"}},
  {"Id": "tx", "MetricStat": {"Metric": {"Namespace": "AWS/EC2", "MetricName": "NetworkOut", "Dimensions": [{"Name": "InstanceId", "Value": "{{i-abc}}"}]}, "Period": 300, "Stat": "Sum"}},
  {"Id": "total", "Expression": "rx + tx", "Label": "TotalNetwork"}
]
```

## GetMetricData 与 GetMetricStatistics 对比
<a name="metrics-classic-getdata-comparison"></a>


|  | **GetMetricData** | **GetMetricStatistics** | 
| --- | --- | --- | 
| 批量支持 | 单次调用最多支持 500 条查询 | 单次调用仅支持单条指标 | 
| 数学表达式 | 是 | 否 | 
|  查询 | 是 | 否 | 
| 分页 | 是（通过 NextToken 分页） | 否 | 
| 推荐 | 是（主要 API） | 遗留（建议改用 GetMetricData） | 

## 定价
<a name="metrics-classic-getdata-pricing"></a>

通过 `GetMetricData` 查询指标，每 1000 条指标收费 0.01 美元。

**注意**  
如需查询 OTel 指标，请使用兼容 Prometheus 的查询 API，或搭载 PromQL 的 CloudWatch Query Studio。`GetMetricData` 无法查询 OTel 指标。