View a markdown version of this page

检索指标数据(GetMetricData) - Amazon CloudWatch

检索指标数据(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 指标。