通过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}%")
相关推荐
投图匠8 小时前
十种不同风格的 CTP接口 框架
开发语言·python
2601_9679801110 小时前
深入理解词向量算法及其在Python中的实践
python·word2vec·glove·fasttext·词向量
129Lab10 小时前
电池循环测试数据自动化分析:用Python+AI工具构建一键式寿命评估流水线
python·数据分析·电池测试·数据自动化·寿命评估
treasure14010 小时前
【复古】浅尝Django前后端不分离
前端·css·python·django·bootstrap·html·web
Dmz丶11 小时前
前端转 AI 100 天 Day 44:前端集成实战——用 React 给 Agent 做个正式界面
python
jay神11 小时前
基于 YOLOv8 的手势识别系统(Web 版)
前端·人工智能·python·深度学习·yolo·计算机视觉·计算机毕业设计
DeepVisionary11 小时前
阿里云上线旗舰多模态新模型,不公布跑分且限时14天退役
python·自动化
东莞市云毅网络有限公司11 小时前
FAQ 覆盖度打分:TF-IDF 与向量嵌入双路召回的 Python 实现
python·数据清洗·rag·企业知识库·文档解析
爱笑的k1112 小时前
nano-vllm 源码剖析:千行 Python 手写离线推理引擎的调度、显存与并行时序
开发语言·python·vllm
用户83562907805112 小时前
使用 Python 控制 Excel 工作表的分页位置
后端·python