如何列出所有AWS CloudWatch指标命名空间
获取AWS CloudWatch可用指标命名空间及指标数据的方法
一、获取所有可用指标命名空间
使用AWS CLI
执行以下命令提取并去重所有命名空间:
aws cloudwatch list-metrics --query 'Metrics[].Namespace' --output text | sort | uniq
list-metrics:返回所有CloudWatch指标的元数据--query:筛选结果只保留Namespace字段sort | uniq:对命名空间排序并去除重复项
使用Python SDK(boto3)
通过代码自动提取去重的命名空间:
import boto3 # 初始化CloudWatch客户端 cloudwatch_client = boto3.client('cloudwatch') response = cloudwatch_client.list_metrics() # 提取并去重命名空间 unique_namespaces = {metric['Namespace'] for metric in response['Metrics']} # 按顺序输出命名空间 for namespace in sorted(unique_namespaces): print(namespace)
使用AWS管理控制台
- 登录AWS控制台,进入CloudWatch服务
- 左侧导航栏选择「指标」
- 顶部的「命名空间」下拉菜单会展示所有可用的命名空间,也可通过搜索框快速筛选
二、通过命名空间获取指标数据
使用AWS CLI示例(以EC2 CPU使用率为例)
aws cloudwatch get-metric-statistics \ --namespace AWS/EC2 \ --metric-name CPUUtilization \ --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \ --start-time 2024-05-01T00:00:00Z \ --end-time 2024-05-02T00:00:00Z \ --period 3600 \ --statistics Average
使用Python SDK示例(以EC2 CPU使用率为例)
import boto3 from datetime import datetime, timedelta cloudwatch_client = boto3.client('cloudwatch') # 获取指定命名空间的指标数据 metric_data = cloudwatch_client.get_metric_statistics( Namespace='AWS/EC2', MetricName='CPUUtilization', Dimensions=[{'Name': 'InstanceId', 'Value': 'i-1234567890abcdef0'}], StartTime=datetime.utcnow() - timedelta(days=1), EndTime=datetime.utcnow(), Period=3600, Statistics=['Average'], Unit='Percent' ) # 输出数据点 for datapoint in metric_data['Datapoints']: print(f"时间: {datapoint['Timestamp']}, 平均CPU使用率: {datapoint['Average']}%")
内容的提问来源于stack exchange,提问作者Programming-Lover
相关产品推荐
相关产品推荐

