Skip to main content
Glama
aliyun

Alibaba Cloud RDS OpenAPI MCP Server

Official
by aliyun

describe_db_instance_performance

Query performance metrics like CPU usage, QPS/TPS, sessions, and throughput for Alibaba Cloud RDS database instances to monitor and analyze database health.

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
region_idYes
db_instance_idYes
db_typeYes
perf_keysYes
start_timeYes
end_timeYes

Implementation Reference

  • The main handler function for the 'describe_db_instance_performance' tool. It queries performance metrics for an RDS DB instance using the Alibaba Cloud RDS DescribeDBInstancePerformance API. Transforms input perf_keys based on db_type using transform_perf_key, calls the SDK, compresses data if too many points, and formats the output.
    @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