cpu使用率
python
import json
from alibabacloud_cms20190101.client import Client as Cms20190101Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_cms20190101 import models as cms_20190101_models
from alibabacloud_tea_util import models as util_models
# 配置客户端参数
config = open_api_models.Config(
access_key_id = "",
access_key_secret = ""
)
# 设置控制台的Endpoint
config.endpoint = ''
# 创建客户端实例
client = Cms20190101Client(config)
# print(client)
# 构造请求体
request = cms_20190101_models.DescribeMetricLastRequest(
# ECS监控指标的命名空间
namespace='acs_ecs_dashboard',
# 要查询的指标:CPU利用率
metric_name='CPUUtilization',
# 如需指定单个ECS实例,取消下面注释并替换实例ID
# dimensions=json.dumps({'instanceId': 'i-xxxxxxx'})
)
# 运行时选项
runtime = util_models.RuntimeOptions()
# 响应体
response = client.describe_metric_last_with_options(request, runtime)
# print(response)
# 先把响应体转成字典(解决SDK返回混合结构的问题)
response_dict = response.to_map()
# 提取key为body的value(是子字典),再取出key为Datapoints对应的value
datapoints_str = response_dict['body']['Datapoints']
# json格式的数据转列表
datapoints_list = json.loads(datapoints_str)
R = []
# 提取目标字段
for i in datapoints_list:
instance_id = i.get('instanceId')
average = i.get('Average')
t = (instance_id, average)
R.append(t)
# print(R)
count = len(R)
total = 0
for i in R:
total += i[1]
cpu_average_usage_util = round(total / count, 3)
print(f"{count}台实例的cpu平均使用率为{cpu_average_usage_util}%")
内存使用率
python
import json
from alibabacloud_cms20190101.client import Client as Cms20190101Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_cms20190101 import models as cms_20190101_models
from alibabacloud_tea_util import models as util_models
config = open_api_models.Config(
access_key_id = "",
access_key_secret = ""
)
config.endpoint = ''
client = Cms20190101Client(config)
# print(client)
request = cms_20190101_models.DescribeMetricLastRequest(
namespace='acs_ecs_dashboard',
metric_name='vm.MemoryUtilization',
)
runtime = util_models.RuntimeOptions()
response = client.describe_metric_last_with_options(request, runtime)
# print(response)
response_dict = response.to_map()
datapoints_str = response_dict['body']['Datapoints']
datapoints_list = json.loads(datapoints_str)
R = []
for i in datapoints_list:
instance_id = i.get('instanceId')
average = i.get('Average')
t = (instance_id, average)
R.append(t)
# print(R)
count = len(R)
total = 0
for i in R:
total += i[1]
cpu_average_usage_util = round(total / count, 3)
print(f"{count}台通算实例的内存平均使用率为{cpu_average_usage_util}%")