Install
openclaw skills install alibabacloud-ebs-disk-metric-analyzerAlibaba Cloud EBS Disk Monitoring and Metric Analysis Skill. Query and analyze monitoring metrics for single or multiple cloud disks, supporting time-series aggregation and cross-disk analysis. Triggers: "EBS monitoring", "disk metrics", "cloud disk performance", "IOPS analysis", "BPS analysis", "disk monitoring data", "metric aggregation".
openclaw skills install alibabacloud-ebs-disk-metric-analyzerThis skill enables you to query and analyze monitoring metrics for Alibaba Cloud Elastic Block Storage (EBS) disks. It supports querying single or multiple disks, performing time-series aggregation, and cross-disk metric analysis.
Monitor and analyze cloud disk performance metrics to:
Architecture: EBS Monitoring Service + Cloud Monitor + EBS Disks (System/Data Disks)
Supported Metrics:
disk_bps_percent - Disk bandwidth utilization percentagedisk_iops_percent - Disk IOPS utilization percentagedisk_read_block_size - Average read block sizedisk_read_bps - Read bandwidth (bytes per second)disk_read_iops - Read IOPSdisk_write_block_size - Average write block sizedisk_write_bps - Write bandwidth (bytes per second)disk_write_iops - Write IOPSAggregation Capabilities:
Pre-check: Aliyun CLI >= 3.3.3 required
Run
aliyun versionto verify >= 3.3.3. If not installed or version too low, runcurl -fsSL https://aliyuncli.alicdn.com/setup.sh | bashto install/update, or seereferences/cli-installation-guide.mdfor installation instructions.
Pre-check: Aliyun CLI plugin update required
[MUST] run
aliyun configure set --auto-plugin-install trueto enable automatic plugin installation. [MUST] runaliyun plugin updateto ensure that any existing plugins are always up-to-date.
Pre-check: Alibaba Cloud Credentials Required
Security Rules:
- NEVER read, echo, or print AK/SK values (e.g.,
echo $ALIBABA_CLOUD_ACCESS_KEY_IDis FORBIDDEN)- NEVER ask the user to input AK/SK directly in the conversation or command line
- NEVER use
aliyun configure setwith literal credential values- ONLY use
aliyun configure listto check credential statusaliyun configure listCheck the output for a valid profile (AK, STS, or OAuth identity).
If no valid profile exists, STOP here.
- Obtain credentials from Alibaba Cloud Console
- Configure credentials outside of this session (via
aliyun configurein terminal or environment variables in shell profile)- Return and re-run after
aliyun configure listshows a valid profile
This skill requires the following Alibaba Cloud RAM permissions. See references/ram-policies.md for the complete permission policy.
Required API Permissions:
ebs:DescribeMetricData - Query disk monitoring metrics[MUST] Permission Failure Handling: When any command or API call fails due to permission errors at any point during execution, follow this process:
- Read
references/ram-policies.mdto get the full list of permissions required by this SKILL- Use
ram-permission-diagnoseskill to guide the user through requesting the necessary permissions- Pause and wait until the user confirms that the required permissions have been granted
IMPORTANT: Parameter Confirmation — Before executing any command or API call, ALL user-customizable parameters (e.g., RegionId, DiskId, MetricName, time ranges, aggregation methods, etc.) MUST be confirmed with the user. Do NOT assume or use default values without explicit user approval.
| Parameter Name | Required/Optional | Description | Default Value |
|---|---|---|---|
--metric-name | Required | Metric to query (e.g., disk_read_iops, disk_write_bps) | N/A |
--biz-region-id | Required | Region ID (e.g., cn-hangzhou, cn-shanghai) | N/A |
--start-time | Optional | Query start time in ISO 8601 format (yyyy-MM-ddTHH:mm:ssZ) | Last period if both start/end empty |
--end-time | Optional | Query end time in ISO 8601 format (yyyy-MM-ddTHH:mm:ssZ) | Current time |
--period | Optional | Data granularity in seconds (5, 10, 60, 300, 600, 3600) | 5 |
--dimensions | Optional | JSON filter for DiskId, DeviceType, DeviceCategory, EcsInstanceId, Azone | Empty (all disks) |
--aggre-ops | Optional | Time aggregation method (AVG_OVER_TIME, SUM_OVER_TIME, MAX_OVER_TIME, etc.) | No aggregation |
--aggre-over-line-ops | Optional | Cross-disk aggregation (NON, SUM, AVG, COUNT, MAX, MIN) | NON |
--group-by-labels | Optional | Group by labels (DiskId, DeviceType, DeviceCategory, EcsInstanceId, Azone) | No grouping |
At the start of the Core Workflow (before any CLI invocation): [MUST] Enable AI-Mode — AI-mode is required for Agent Skill execution. Run the following commands before any CLI invocation:
aliyun configure ai-mode enable aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ebs-disk-metric-analyzer"
Query read IOPS for a specific disk over the last hour:
# Confirm with user: RegionId, DiskId, MetricName, time range
aliyun ebs describe-metric-data \
--metric-name disk_read_iops \
--start-time 2024-01-15T10:00:00Z \
--end-time 2024-01-15T11:00:00Z \
--period 60 \
--dimensions "{\"DiskId\": [\"d-bp1234567890abcde\"]}" \
--biz-region-id cn-hangzhou
Expected Output:
{
"TotalCount": 1,
"DataList": [
{
"Labels": "{\"DiskId\": \"d-bp1234567890abcde\"}",
"Datapoints": "{\"1705315200\": 150, \"1705315260\": 148, \"1705315320\": 152, ...}"
}
],
"RequestId": "11B55F58-D3A4-4A9B-9596-342420D0****"
}
Query average write bandwidth across multiple data disks:
# Confirm with user: RegionId, MetricName, DeviceType, aggregation method
aliyun ebs describe-metric-data \
--metric-name disk_write_bps \
--start-time 2024-01-15T09:00:00Z \
--end-time 2024-01-15T10:00:00Z \
--period 300 \
--dimensions "{\"DeviceType\": [\"data\"]}" \
--aggre-ops AVG_OVER_TIME \
--aggre-over-line-ops AVG \
--biz-region-id cn-shanghai
Analyze IOPS utilization grouped by disk category (e.g., cloud_essd):
# Confirm with user: RegionId, MetricName, grouping dimension
aliyun ebs describe-metric-data \
--metric-name disk_iops_percent \
--start-time 2024-01-15T00:00:00Z \
--end-time 2024-01-15T23:59:59Z \
--period 3600 \
--aggre-ops MAX_OVER_TIME \
--group-by-labels DeviceCategory \
--biz-region-id cn-beijing
Compare disk performance across different availability zones:
# Confirm with user: RegionId, MetricName, grouping by Azone
aliyun ebs describe-metric-data \
--metric-name disk_bps_percent \
--start-time 2024-01-14T00:00:00Z \
--end-time 2024-01-15T00:00:00Z \
--period 600 \
--aggre-ops AVG_OVER_TIME \
--aggre-over-line-ops AVG \
--group-by-labels Azone \
--biz-region-id cn-hangzhou
Query specific disks attached to specific ECS instances:
# Confirm with user: RegionId, DiskIds, EcsInstanceId
aliyun ebs describe-metric-data \
--metric-name disk_read_bps \
--start-time 2024-01-15T12:00:00Z \
--end-time 2024-01-15T13:00:00Z \
--period 60 \
--dimensions "{\"DiskId\": [\"d-bp11111\", \"d-bp22222\"], \"EcsInstanceId\": [\"i-bp1234567890\"]}" \
--aggre-ops AVG_OVER_TIME \
--biz-region-id cn-shenzhen
[MUST] Disable AI-Mode at EVERY exit point — Before delivering the final response for ANY reason, always disable AI-mode first. This applies to ALL exit paths: workflow success, workflow failure, error/exception, user cancellation, session end, or any other scenario where no further CLI commands will be executed. AI-mode is only used for Agent Skill invocation scenarios and MUST NOT remain enabled after the skill stops running.
aliyun configure ai-mode disable
After querying metrics, verify:
RequestId is present (indicates successful API call)DataList contains expected entriesDatapoints timestamps match the requested time rangeWarnings array is empty or review any warningsFor detailed verification steps, see references/verification-method.md.
This skill only queries monitoring data and does not create any resources. No cleanup is required.
dimensions filters to reduce data volume and improve query performanceWarnings array if present - it may indicate incomplete datadimensions instead of multiple API callsDatapoints field to extract timestamp-value pairs programmatically| Reference File | Description |
|---|---|
| references/ram-policies.md | Complete RAM permission policy for EBS monitoring APIs |
| references/related-commands.md | All EBS CLI commands used in this skill |
| references/verification-method.md | Detailed verification steps and commands |
| references/acceptance-criteria.md | Test patterns and acceptance criteria |
| references/cli-installation-guide.md | Alibaba Cloud CLI installation guide |
Issue: "InvalidParameter: The parameter MetricName is invalid"
Issue: "InvalidParameter: Period exceeds time range limit"
Issue: Empty DataList returned
Issue: Incomplete data warning
Filter output using --cli-query to extract specific data:
# Extract only datapoints from first result
aliyun ebs describe-metric-data \
--metric-name disk_read_iops \
--dimensions "{\"DiskId\": [\"d-bp1234567890\"]}" \
--biz-region-id cn-hangzhou \
--cli-query "DataList[0].Datapoints"
Pipe results to jq for advanced JSON processing:
aliyun ebs describe-metric-data \
--metric-name disk_write_bps \
--dimensions "{\"DeviceType\": [\"data\"]}" \
--biz-region-id cn-hangzhou \
| jq '.DataList[].Datapoints | fromjson | to_entries | .[] | {timestamp: .key, value: .value}'
For more information: