Skip to main content
Glama

Alibaba Cloud Operations MCP Server

by RadiumGu
cms_tools.py4.18 kB
from pydantic import Field from typing import List import os import json from alibabacloud_cms20190101.client import Client as cms20190101Client from alibabacloud_cms20190101 import models as cms_20190101_models from alibaba_cloud_ops_mcp_server.alibabacloud.utils import create_config END_STATUSES = ['Success', 'Failed', 'Cancelled'] tools = [] def create_client(region_id: str) -> cms20190101Client: config = create_config() config.endpoint = f'metrics.{region_id}.aliyuncs.com' return cms20190101Client(config) def _get_cms_metric_data(region_id: str, instance_ids: List[str], metric_name: str): client = create_client(region_id) dimesion = [] for instance_id in instance_ids: dimesion.append({ 'instanceId': instance_id }) describe_metric_last_request = cms_20190101_models.DescribeMetricLastRequest( namespace='acs_ecs_dashboard', metric_name=metric_name, dimensions=json.dumps(dimesion), ) describe_metric_last_resp = client.describe_metric_last(describe_metric_last_request) return describe_metric_last_resp.body.datapoints @tools.append def CMS_GetCpuUsageData( InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'), RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou') ): """获取ECS实例的CPU使用率数据""" return _get_cms_metric_data(RegionId, InstanceIds, 'cpu_total') @tools.append def CMS_GetCpuLoadavgData( InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'), RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou') ): """获取CPU一分钟平均负载指标数据""" return _get_cms_metric_data(RegionId, InstanceIds, 'load_1m') @tools.append def CMS_GetCpuloadavg5mData( InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'), RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou') ): """获取CPU五分钟平均负载指标数据""" return _get_cms_metric_data(RegionId, InstanceIds, 'load_5m') @tools.append def CMS_GetCpuloadavg15mData( InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'), RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou') ): """获取CPU十五分钟平均负载指标数据""" return _get_cms_metric_data(RegionId, InstanceIds, 'load_15m') @tools.append def CMS_GetMemUsedData( InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'), RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou') ): """获取内存使用量指标数据""" return _get_cms_metric_data(RegionId, InstanceIds, 'memory_usedspace') @tools.append def CMS_GetMemUsageData( InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'), RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou') ): """获取内存利用率指标数据""" return _get_cms_metric_data(RegionId, InstanceIds, 'memory_usedutilization') @tools.append def CMS_GetDiskUsageData( InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'), RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou') ): """获取磁盘利用率指标数据""" return _get_cms_metric_data(RegionId, InstanceIds, 'diskusage_utilization') @tools.append def CMS_GetDiskTotalData( InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'), RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou') ): """获取磁盘分区总容量指标数据""" return _get_cms_metric_data(RegionId, InstanceIds, 'diskusage_total') @tools.append def CMS_GetDiskUsedData( InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'), RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou') ): """获取磁盘分区使用量指标数据""" return _get_cms_metric_data(RegionId, InstanceIds, 'diskusage_used')

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RadiumGu/alicloud-ops-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server