通过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}%")
相关推荐
幻影123!7 小时前
从零训练一个会下五子棋的AI
python·深度学习·神经网络·强化学习·五子棋·alpha zero·mokugo
Python私教9 小时前
Django 接入 AI 大模型实战:从零做一个流式聊天网站
人工智能·python·django
Python私教9 小时前
Django 接入 MCP 实战:让 AI 安全调用数据库和业务接口
人工智能·python·django
Python私教9 小时前
Django 搭建 AI 本地知识库:文档上传、向量检索与智能问答
人工智能·python·django
always_TT9 小时前
【Python 日志记录:logging 模块入门】
开发语言·python·php
lipku12 小时前
数字人直播开源项目LiveStream
python·开源·数字人·数字人直播
阿童木写作12 小时前
Python实现亚马逊商品图批量智能抠图教程
人工智能·python
axinawang12 小时前
第24课:while循环的应用
python
三亚兴嘉装饰13 小时前
三亚服装店装修
python
小柯南敲键盘13 小时前
速卖通AI图片翻译API集成实战
人工智能·python