Skip to main content
Glama
aliyun

Alibaba Cloud RDS OpenAPI MCP Server

Official
by aliyun

describe_db_instance_performance

Retrieve performance metrics of an RDS instance, including MemCpuUsage, QPSTPS, and Sessions, by specifying region, instance ID, database type, and time range for detailed analysis.

Instructions

Queries the performance data of an instance using the RDS OpenAPI. This method provides performance data collected from the RDS service, such as MemCpuUsage, QPSTPS, Sessions, ThreadStatus, MBPS, etc. Args: region_id: db instance region(e.g. cn-hangzhou) db_instance_id: db instance id(e.g. rm-xxx) db_type: the db instance database type(e.g. mysql,pgsql,sqlserver) perf_keys: Performance Key (e.g. ["MemCpuUsage", "QPSTPS", "Sessions", "COMDML", "RowDML", "ThreadStatus", "MBPS", "DetailedSpaceUsage"]) start_time: start time(e.g. 2023-01-01 00:00) end_time: end time(e.g. 2023-01-01 00:00)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
db_instance_idYes
db_typeYes
end_timeYes
perf_keysYes
region_idYes
start_timeYes

Implementation Reference

  • The core handler function for the 'describe_db_instance_performance' tool. It calls the Alibaba Cloud RDS DescribeDBInstancePerformance API, processes performance keys based on DB type, compresses data points if too many, and formats the response with keys, units, formats, and CSV values.
    @mcp.tool(annotations=READ_ONLY_TOOL) async def describe_db_instance_performance(region_id: str, db_instance_id: str, db_type: str, perf_keys: list[str], start_time: str, end_time: str): """ Queries the performance data of an instance using the RDS OpenAPI. This method provides performance data collected from the RDS service, such as MemCpuUsage, QPSTPS, Sessions, ThreadStatus, MBPS, etc. Args: region_id: db instance region(e.g. cn-hangzhou) db_instance_id: db instance id(e.g. rm-xxx) db_type: the db instance database type(e.g. mysql,pgsql,sqlserver) perf_keys: Performance Key (e.g. ["MemCpuUsage", "QPSTPS", "Sessions", "COMDML", "RowDML", "ThreadStatus", "MBPS", "DetailedSpaceUsage"]) start_time: start time(e.g. 2023-01-01 00:00) end_time: end time(e.g. 2023-01-01 00:00) """ def _compress_performance(performance_value, max_items=10): if len(performance_value) > max_items: result = [] offset = len(performance_value) / 10 for i in range(0, len(performance_value), int(offset)): _item = None for j in range(i, min(i + int(offset), len(performance_value))): if _item is None or sum([float(v) for v in performance_value[j].value.split('&')]) > sum( [float(v) for v in _item.value.split('&')]): _item = performance_value[j] _item.date = parse_iso_8601(_item.date) result.append(_item) return result else: for item in performance_value: item.date = parse_iso_8601(item.date) return performance_value try: start_time = transform_to_datetime(start_time) end_time = transform_to_datetime(end_time) client = get_rds_client(region_id) perf_key = transform_perf_key(db_type, perf_keys) if not perf_key: raise OpenAPIError(f"Unsupported perf_key: {perf_key}") request = rds_20140815_models.DescribeDBInstancePerformanceRequest( dbinstance_id=db_instance_id, start_time=transform_to_iso_8601(start_time, "minutes"), end_time=transform_to_iso_8601(end_time, "minutes"), key=",".join(perf_key) ) response = client.describe_dbinstance_performance(request) responses = [] for perf_key in response.body.performance_keys.performance_key: perf_key_info = f"""Key={perf_key.key}; Unit={perf_key.unit}; ValueFormat={perf_key.value_format}; Values={json_array_to_csv(_compress_performance(perf_key.values.performance_value))}""" responses.append(perf_key_info) return responses except Exception as e: raise e

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/aliyun/alibabacloud-rds-openapi-mcp-server'

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