通过sdk获取ecs指标

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}%")
相关推荐
xzal1237 分钟前
Python 列表操作笔记:append / extend / + / pop
笔记·python
minji...42 分钟前
LangGraph-AI智能体开发框架 - LangGraph 入门案例1 : 智能快递配送系统
人工智能·python·ai·langchain·大语言模型·agent·langgraph
Είναι η κοπέλα1 小时前
PyTorch 安装与验证
人工智能·pytorch·python
“AI国潮设计-小江”1 小时前
Python实战 | SDXL批量生成“潮汕英歌舞”国潮甜品IP,附核心Prompt与商用授权思路
开发语言·人工智能·python·prompt·aigc
2601_962885721 小时前
如何用 Python 分析股票的日历效应?(星期效应与月份效应,附数据挖掘陷阱)
开发语言·python·数据挖掘
czq_26867194871 小时前
Python打卡第30天
python·机器学习
FYKJ_20101 小时前
SSM校园互助与闲置交易平台62145-计算机课程设计、毕业设计
java·spring boot·python·mysql·架构·spark·课程设计
“AI国潮设计-小江”1 小时前
Python实战 | SDXL批量生成“带炸英歌”国潮IP:从海报到门店落地(附核心Prompt与授权思路)
开发语言·人工智能·python·prompt·aigc
我就是不信1 小时前
深入理解 Python 虚拟机:字典(dict)的优化
开发语言·python·哈希算法
晚风醉蝶1 小时前
YOLO11图标点选验证码识别实战
python·目标检测·验证码识别·yolo11