检索指标数据(GetMetricData)
GetMetricData 是通过编程方式检索经典指标数据点的主要 API。该 API 支持在单次调用中执行批量查询、数学表达式运算及多项查询。
基本用法
检索单条指标:
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
批量查询
单次调用可一次性检索多条指标(最多支持 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
数学表达式
通过算术运算组合多条指标:
[ {"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 对比
GetMetricData |
GetMetricStatistics |
|
|---|---|---|
批量支持 |
单次调用最多支持 500 条查询 |
单次调用仅支持单条指标 |
数学表达式 |
是 |
否 |
查询 |
是 |
否 |
分页 |
是(通过 NextToken 分页) |
否 |
推荐 |
是(主要 API) |
遗留(建议改用 GetMetricData) |
定价
通过 GetMetricData 查询指标,每 1000 条指标收费 0.01 美元。
注意
如需查询 OTel 指标,请使用兼容 Prometheus 的查询 API,或搭载 PromQL 的 CloudWatch Query Studio。GetMetricData 无法查询 OTel 指标。