Install
openclaw skills install @huaweiclouddev/huawei-cloud-lts-manageHuawei Cloud LTS (Log Tank Service) full lifecycle management via hcloud CLI. Covers log groups, log streams, indexes, transfer tasks, keyword/SQL alarm rules, and log search. Supports Query (list/show logs, alarms, transfers, indexes), Create (log groups/streams, indexes, transfers, alarms), Update (TTL, index, transfer, alarm config), Delete (log resources, alarm rules), and Diagnose (search logs to locate faults). Delete operations require explicit user confirmation; batch deletion of all LTS resources is prohibited. Triggers include: LTS, 云日志服务, log group, log stream, 日志组, 日志流, 日志检索, 日志转储, 日志告警, 索引配置, log transfer, log alarm, log index, 日志运维, 故障排查, log search, structured log, SQL alarm, keyword alarm.
openclaw skills install @huaweiclouddev/huawei-cloud-lts-manageThis skill manages Huawei Cloud LTS (Log Tank Service / 云日志服务) resources through hcloud CLI. It covers the full lifecycle of log groups, log streams, indexes, transfer tasks, and alarm rules, plus log search for fault diagnosis and security event response.
Capabilities:
| Category | Operations |
|---|---|
| Query | List log groups, log streams, indexes, transfers, alarm rules, alarm history; search logs (keyword, structured, context, histogram) |
| Create | Create log groups, log streams, full-text indexes, OBS transfer tasks, keyword alarm rules, SQL alarm rules |
| Update | Update log group TTL, log stream TTL/storage, transfer config, alarm rules, alarm status, struct config |
| Delete | Delete log groups, log streams, transfers, alarm rules (⚠️ requires confirmation) |
| Diagnose | Search logs by keyword/time to locate faults; query log context; view log distribution histogram |
references/cli-installation-guide.mdhcloud configure (CLI profile)references/iam-policies.md for least-privilege policy--cli-region to specify the target region (e.g., cn-north-4, ap-southeast-1)1. Identify target log group/stream (ListLogGroups → ListLogStreams)
2. Query or manage resources based on user intent:
├── Query: list/show logs, indexes, transfers, alarms
├── Create: create log group/stream/index/transfer/alarm
├── Update: modify TTL/index/transfer/alarm config
├── Delete: remove resources (⚠️ confirmation required)
└── Diagnose: search logs with keywords/time range
3. Return results (query returns JSON; mutations return resource config snapshot)
# List all log groups
hcloud LTS ListLogGroups --cli-region={region} --project_id={project_id}
# List log streams under a group
hcloud LTS ListLogStreams --cli-region={region} --project_id={project_id} \
--log_group_name={log_group_name}
# Query index configuration for a log stream
hcloud LTS ListLogStreamIndex --cli-region={region} --project_id={project_id} \
--group_id={group_id} --stream_id={stream_id}
# List all transfer tasks
hcloud LTS ListTransfers --cli-region={region} --project_id={project_id}
# Filter by transfer type (OBS/DIS/DMS)
hcloud LTS ListTransfers --cli-region={region} --project_id={project_id} \
--log_transfer_type=OBS
# List keyword alarm rules
hcloud LTS ListKeywordsAlarmRules --cli-region={region} --project_id={project_id}
# List SQL alarm rules
hcloud LTS ListSqlAlarmRules --cli-region={region} --project_id={project_id}
# Query active or history alarms (type: active_alert/history_alert)
# --whether_custom_field=false requires --time_range (minutes); true requires --start_time/--end_time (ms)
hcloud LTS ListActiveOrHistoryAlarms --cli-region={region} --project_id={project_id} \
--domain_id={domain_id} --type=history_alert --whether_custom_field=false --time_range=30 --limit=10
# Search logs by keyword and time range
hcloud LTS ListLogs --cli-region={region} --project_id={project_id} \
--log_group_id={log_group_id} --log_stream_id={log_stream_id} \
--start_time={start_time} --end_time={end_time} \
--keywords="ERROR" --limit=50 --is_desc=true --highlight=true
# Get log context around a specific line (for fault diagnosis)
hcloud LTS ListLogContext --cli-region={region} --project_id={project_id} \
--log_group_id={log_group_id} --log_stream_id={log_stream_id} \
--__time__={timestamp} --line_num={line_num} \
--backwards_size=10 --forwards_size=10
# Get log distribution histogram (for trend analysis)
hcloud LTS ListLogHistogram --cli-region={region} --project_id={project_id} \
--group_id={group_id} --stream_id={stream_id} \
--start_time={start_time} --end_time={end_time} \
--key_word="ERROR" --step_interval=3600000
# Query structured logs with SQL expression (requires the log stream to have a struct config)
# Supported SQL: GROUP BY / LIKE / WHERE
hcloud LTS ListQueryStructuredLogs --cli-region={region} --project_id={project_id} \
--log_group_id={log_group_id} --log_stream_id={log_stream_id} \
--start_time={start_time} --end_time={end_time} \
--sql_expression="select * where level like '%ERROR%'"
# Create a log group with TTL (days)
hcloud LTS CreateLogGroup --cli-region={region} --project_id={project_id} \
--log_group_name="my-log-group" --ttl_in_days=30
# Create a log stream under a group
hcloud LTS CreateLogStream --cli-region={region} --project_id={project_id} \
--log_group_id={log_group_id} --log_stream_name="my-log-stream" --ttl_in_days=30
# Create full-text index for a log stream
hcloud LTS CreateLogStreamIndex --cli-region={region} --project_id={project_id} \
--group_id={group_id} --stream_id={stream_id} --logStreamId={stream_id} \
--fullTextIndex.enable=true --fullTextIndex.caseSensitive=false \
--fullTextIndex.includeChinese=true --fullTextIndex.tokenizer=" "
# Create a transfer task to OBS bucket
hcloud LTS CreateTransfer --cli-region={region} --project_id={project_id} \
--log_group_id={log_group_id} \
--log_streams.1.log_stream_id={stream_id} --log_streams.1.log_stream_name={stream_name} \
--log_transfer_info.log_transfer_type=OBS \
--log_transfer_info.log_transfer_mode=cycle \
--log_transfer_info.log_storage_format=RAW \
--log_transfer_info.log_transfer_status=ENABLE \
--log_transfer_info.log_transfer_detail.obs_bucket_name={bucket_name} \
--log_transfer_info.log_transfer_detail.obs_period=5 \
--log_transfer_info.log_transfer_detail.obs_period_unit=min
# Create a keyword alarm rule
hcloud LTS CreateKeywordsAlarmRule --cli-region={region} --project_id={project_id} \
--domain_id={domain_id} \
--keywords_alarm_rule_name="error-alarm" \
--keywords_alarm_level=Critical \
--keywords_requests.1.log_group_id={group_id} \
--keywords_requests.1.log_stream_id={stream_id} \
--keywords_requests.1.keywords="ERROR" \
--keywords_requests.1.condition=">=" --keywords_requests.1.number=1 \
--keywords_requests.1.search_time_range=5 --keywords_requests.1.search_time_range_unit=minute \
--frequency.type=CRON --frequency.cron_expr="0 */5 * * * *" --notification_frequency=5
# Create a SQL alarm rule (requires sql_requests.[N].search_time_range)
hcloud LTS CreateSqlAlarmRule --cli-region={region} --project_id={project_id} \
--domain_id={domain_id} \
--sql_alarm_rule_name="sql-error-alarm" \
--sql_alarm_level=Major \
--sql_requests.1.log_group_id={group_id} \
--sql_requests.1.log_stream_id={stream_id} \
--sql_requests.1.sql="select count(*) where level='ERROR'" \
--sql_requests.1.search_time_range=5 --sql_requests.1.search_time_range_unit=minute \
--condition_expression=">=1" \
--frequency.type=CRON --frequency.cron_expr="0 */5 * * * *" --notification_frequency=5
# Update log group TTL (save duration)
hcloud LTS UpdateLogGroup --cli-region={region} --project_id={project_id} \
--log_group_id={log_group_id} --ttl_in_days=60
# Update log stream TTL and storage
hcloud LTS UpdateLogStream --cli-region={region} --project_id={project_id} \
--log_group_id={log_group_id} --log_stream_id={log_stream_id} \
--ttl_in_days=60 --whether_log_storage=true
# Update transfer task config
hcloud LTS UpdateTransfer --cli-region={region} --project_id={project_id} \
--log_transfer_id={transfer_id} \
--log_transfer_info.log_storage_format=RAW \
--log_transfer_info.log_transfer_status=ENABLE \
--log_transfer_info.log_transfer_detail.obs_bucket_name={bucket_name} \
--log_transfer_info.log_transfer_detail.obs_period=5 \
--log_transfer_info.log_transfer_detail.obs_period_unit=min
# Enable/disable an alarm rule (status: RUNNING/STOPPING; type: keywords/sql)
hcloud LTS UpdateAlarmRuleStatus --cli-region={region} --project_id={project_id} \
--alarm_rule_id={alarm_rule_id} --status=STOPPING --type=keywords
CRITICAL: All Delete operations require explicit user confirmation before execution. Batch deletion of all LTS resources is prohibited. Each delete must specify a single resource ID.
# Delete a log group (⚠️ cascades all log streams under it)
hcloud LTS DeleteLogGroup --cli-region={region} --project_id={project_id} \
--log_group_id={log_group_id}
# Delete a log stream
hcloud LTS DeleteLogStream --cli-region={region} --project_id={project_id} \
--log_group_id={log_group_id} --log_stream_id={log_stream_id}
# Delete a transfer task
hcloud LTS DeleteTransfer --cli-region={region} --project_id={project_id} \
--log_transfer_id={transfer_id}
# Delete a keyword alarm rule
hcloud LTS DeleteKeywordsAlarmRule --cli-region={region} --project_id={project_id} \
--keywords_alarm_rule_id={alarm_rule_id}
# Delete a SQL alarm rule
hcloud LTS DeleteSqlAlarmRule --cli-region={region} --project_id={project_id} \
--sql_alarm_rule_id={alarm_rule_id}
| Parameter | Required | Description | Example |
|---|---|---|---|
--cli-region | Yes | Target region | {your-region} |
--project_id | Yes | Project ID | Obtained from IAM console |
--log_group_id | For stream/index/transfer ops | Log group ID | xxx-xxx-xxx |
--log_stream_id | For index/log search ops | Log stream ID | xxx-xxx-xxx |
--ttl_in_days | For create/update group/stream | Log retention in days | 30, 60, 365 |
--keywords | For log search | Search keywords | "ERROR", "Exception" |
--start_time / --end_time | For log search | Time range (ms) | 1700000000000 |
--log_transfer_type | For transfer filter | Transfer type | OBS, DIS, DMS |
DeleteLogGroup deletes all streams under the group; always confirm the cascade impacthcloud LTS ListLogGroups --cli-region={your-region} [--key=value ...]
| Feature | Description | Example |
|---|---|---|
| Service name | LTS (uppercase) | hcloud LTS ListLogGroups |
| Operation name | PascalCase | ListLogGroups, CreateTransfer, DeleteLogStream |
| Region parameter | --cli-region=<value> | --cli-region={your-region} |
| Simple parameter | --key=value | --log_group_name=my-group |
| Indexed parameter | --key.1=value | --keywords_requests.1.keywords=ERROR |