SysOM Inspection (sysom-inspection)
Inspections are launched with the sysom-osops CLI command
(sysom-osops inspection ecs ...). Always go through the CLI instead of calling
the inspection OpenAPI directly.
CLI Setup
Check whether the CLI is available:
command -v sysom-osops
If it is missing, install it:
curl -fsSL --connect-timeout 1000 https://sysom-prd-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/sysom_prd/skill_cli/install.sh | sudo bash
Then verify only the binary:
command -v sysom-osops
If the CLI is installed but has no inspection subcommand yet, run
sysom-osops update first, then retry.
If a command fails due to missing RAM permissions, follow
references/ram-policies.md to attach the minimum permission policy.
Quick Start
# Focused inspection by intent (--query)
# Run only CPU/load related items (keyword mapping)
sysom-osops inspection ecs --region cn-shenzhen --instance i-xxxxxxxx --query "cpu related inspection"
# Combined intent: memory and disk
sysom-osops inspection ecs --region cn-shenzhen --instance i-xxxxxxxx --query "memory and disk"
# Natural-language sentence: intent is extracted automatically, matching packet-loss items
sysom-osops inspection ecs --region cn-shenzhen --instance i-xxxxxxxx --query "check whether this machine has network packet loss"
# If the query matches no items, it falls back to a full inspection automatically
# Batch inspection (--scope-type batch, auto diagnosis supported)
# Inspect all specified instances -> auto root-cause diagnosis on the Top-3 most severe
# anomalous instances -> LLM summary (the rest get copy-ready deep-dive commands in the report)
sysom-osops inspection ecs --region cn-shenzhen --scope-type batch --instances i-aaa,i-bbb,i-ccc
# Region-wide inspection (--scope-type all, auto diagnosis supported)
# Auto-discover every ECS instance in the region (limit 5000) -> Top-3 anomalies auto-diagnosed
# -> LLM summary; one command for the full closed loop
sysom-osops inspection ecs --region cn-shenzhen --scope-type all
# Re-check an existing report (--report-id)
# Returns immediately without re-running (auto-generated in inspection next_steps).
# IMPORTANT: --region and --scope-type (or --instance) MUST match the original
# inspection command, otherwise the replay will fail with MissingParam errors.
sysom-osops inspection ecs --region cn-shenzhen --scope-type all --report-id inspection-82a64d9d-11c5-45b2-a81c-27fc754891e8
Invocation Modes
- Focused inspection:
--query "<intent>" maps keywords or extracted intent to concrete
items (CPU/load keyword mapping, combined intents such as memory + disk, natural-language
sentences such as network packet-loss checks). A query matching no items falls back to a
full inspection automatically.
- Batch:
--scope-type batch --instances i-aaa,i-bbb,... inspects all specified instances,
auto-diagnoses the Top-3 most severe anomalous ones, and lists copy-ready deep-dive commands
for the rest in the report.
- Region-wide:
--scope-type all auto-discovers every ECS instance in the region
(limit 5000), then applies the same Top-3 auto-diagnosis and LLM summarization in one command.
- Report replay:
--region <region> --scope-type <scope-type> --report-id <reportId>
(or --region <region> --instance <instanceId> --report-id <reportId>) returns the
existing report immediately without re-running the inspection; inspection results emit
this replay command — with the original --region and --scope-type/--instance —
in next_steps automatically.
Observability
- UA template (required for all SDK requests):
AlibabaCloud-Agent-Skills/{SKILL_NAME}/{session-id}
- Runtime resolved form in this skill:
AlibabaCloud-Agent-Skills/alibabacloud-alinux-sysom-inspection/<SKILL_SESSION_ID>
- Unified session-id rule:
- A single session-id is generated once per session (one CLI execution) and must be
reused consistently across all API calls, both CLI and SDK requests.
- Generation priority: external env
SKILL_SESSION_ID (preferred) -> auto-generated
fallback sid-<32-char hex> (uuid4 hex); invalid injected values fall back to the
generated id.
- Accepted format:
[A-Za-z0-9][A-Za-z0-9._:-]{7,127}.
- The resolved value is exported to process env
SKILL_SESSION_ID so downstream calls
stay consistent.
- The
sysom-osops CLI injects the UA header automatically and follows the same unified
session-id rule.
Execution Flow
- Before each inspection, the CLI verifies SysOM activation and permissions (
InitialSysom,
source=skill_hub); activation and installation prompts are handled by the CLI itself.
- Every new inspection calls ROA API
POST /api/v1/inspection/createInstanceInspection with
source=skill_hub; selected items come from --query keyword/intent mapping, and a query
matching no items falls back to a full inspection.
- Each mode runs a full closed loop: inspect (metrics + logs) -> automatic root-cause diagnosis
on detected anomalies -> LLM-summarized Chinese report.
- Automatic root-cause diagnosis is triggered via
InvokeDiagnosis (injecting
__sysom_diagnosis_source=skill_hub into params) and polled via GetDiagnosisResult
until success / fail / timeout.
- Batch (
--scope-type batch --instances ...) inspects every specified instance; region-wide
(--scope-type all) auto-discovers all ECS instances in the region (limit 5000). Both
automatically diagnose the Top-3 most severe anomalous instances and include copy-ready
deep-dive commands for the remaining ones in the report.
- Report lookup uses ROA API
GET /api/v1/inspection/getInspectionReport; the CLI polls until
the report succeeds or times out.
--region <region> --scope-type <scope-type> --report-id <reportId> (or with
--instance instead of --scope-type) skips task creation and directly fetches the
existing report; inspection results emit this replay command in next_steps
automatically, including the original --region and --scope-type/--instance.
- Local threshold/event-rule configuration is not used; anomaly decisions come from the
server-side inspection report.
Error Handling
When a CLI invocation fails, classify the failure by the error text (Error: <Code>: ...)
and handle it as follows instead of blind retries:
- Permission (
Forbidden.RAM): explain that sysom:InitialSysom /
sysom:InvokeAgentCli is missing and point the user to references/ram-policies.md
for the minimum policy; do not retry.
- Parameter (
InvalidParameter, invalid argument): identify the offending argument
and guide the user to verify the instance id and region; do not attribute it to the
service.
- Throttling (
Throttling): tell the user the request was rate-limited and advise
retrying later; do not retry automatically in a loop.
- Internal (
InternalError): report the temporary service failure honestly and
suggest retrying later; do not attribute it to user input.
- Empty region (
no ECS instances found): not an error. Report that the region has
no ECS instances and skip the inspection; never fabricate a report.
Extensibility Notes
- Inspection focus is controlled by
--query (keyword/intent mapping to concrete items);
unmatched queries fall back to a full inspection.
- Use
--scope-type batch --instances ... for batch inspection and --scope-type all for the
whole region (limit 5000 instances); both auto-diagnose the Top-3 most severe anomalies.
- Use
--region <region> --scope-type <scope-type> --report-id <reportId> (or with
--instance instead of --scope-type) to re-check an existing report without
re-execution; the replay command is emitted automatically in inspection next_steps
with the original --region and --scope-type/--instance.
- A local Python CLI (
./scripts/osops.sh inspection) is kept only as a fallback for
environments where sysom-osops is unavailable.
- Memory anomaly trigger logic of the fallback path stays implemented in
scripts/sysom_cli/inspection/command.py.
- To add more post-inspection specialized diagnosis actions, reuse the
InvokeDiagnosis
integration pattern.
1---
2name: alibabacloud-alinux-sysom-inspection
3version: 0.2.0
4description: >
5 Inspect ECS instance health, detect anomalies in memory, disk, CPU, load,
6 and resource leaks, and automatically trigger deep diagnosis when critical
7 memory issues are detected. Suitable for routine inspections, troubleshooting,
8 and risk warning scenarios. Trigger keywords: SysOM, inspection, instance
9 diagnosis, memory_usage_rate, memory usage.
10layer: application
11category: os-ops
12lifecycle: operations
13tags:
14 - sysom
15 - inspection
16 - ecs
17 - memory
18 - diagnosis
19status: beta
20---
21
22# SysOM Inspection (`sysom-inspection`)
23
24Inspections are launched with the `sysom-osops` CLI command
25(`sysom-osops inspection ecs ...`). Always go through the CLI instead of calling
26the inspection OpenAPI directly.
27
28## CLI Setup
29
30Check whether the CLI is available:
31
32```bash
33command -v sysom-osops
34```
35
36If it is missing, install it:
37
38```bash
39curl -fsSL --connect-timeout 1000 https://sysom-prd-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/sysom_prd/skill_cli/install.sh | sudo bash
40```
41
42Then verify only the binary:
43
44```bash
45command -v sysom-osops
46```
47
48If the CLI is installed but has no `inspection` subcommand yet, run
49`sysom-osops update` first, then retry.
50
51If a command fails due to missing RAM permissions, follow
52`references/ram-policies.md` to attach the minimum permission policy.
53
54## Quick Start
55
56```bash
57# Focused inspection by intent (--query)
58# Run only CPU/load related items (keyword mapping)
59sysom-osops inspection ecs --region cn-shenzhen --instance i-xxxxxxxx --query "cpu related inspection"
60
61# Combined intent: memory and disk
62sysom-osops inspection ecs --region cn-shenzhen --instance i-xxxxxxxx --query "memory and disk"
63
64# Natural-language sentence: intent is extracted automatically, matching packet-loss items
65sysom-osops inspection ecs --region cn-shenzhen --instance i-xxxxxxxx --query "check whether this machine has network packet loss"
66
67# If the query matches no items, it falls back to a full inspection automatically
68
69# Batch inspection (--scope-type batch, auto diagnosis supported)
70# Inspect all specified instances -> auto root-cause diagnosis on the Top-3 most severe
71# anomalous instances -> LLM summary (the rest get copy-ready deep-dive commands in the report)
72sysom-osops inspection ecs --region cn-shenzhen --scope-type batch --instances i-aaa,i-bbb,i-ccc
73
74# Region-wide inspection (--scope-type all, auto diagnosis supported)
75# Auto-discover every ECS instance in the region (limit 5000) -> Top-3 anomalies auto-diagnosed
76# -> LLM summary; one command for the full closed loop
77sysom-osops inspection ecs --region cn-shenzhen --scope-type all
78
79# Re-check an existing report (--report-id)
80# Returns immediately without re-running (auto-generated in inspection next_steps).
81# IMPORTANT: --region and --scope-type (or --instance) MUST match the original
82# inspection command, otherwise the replay will fail with MissingParam errors.
83sysom-osops inspection ecs --region cn-shenzhen --scope-type all --report-id inspection-82a64d9d-11c5-45b2-a81c-27fc754891e8
84```
85
86## Invocation Modes
87
88- **Focused inspection:** `--query "<intent>"` maps keywords or extracted intent to concrete
89 items (CPU/load keyword mapping, combined intents such as memory + disk, natural-language
90 sentences such as network packet-loss checks). A query matching no items falls back to a
91 full inspection automatically.
92- **Batch:** `--scope-type batch --instances i-aaa,i-bbb,...` inspects all specified instances,
93 auto-diagnoses the Top-3 most severe anomalous ones, and lists copy-ready deep-dive commands
94 for the rest in the report.
95- **Region-wide:** `--scope-type all` auto-discovers every ECS instance in the region
96 (limit 5000), then applies the same Top-3 auto-diagnosis and LLM summarization in one command.
97- **Report replay:** `--region <region> --scope-type <scope-type> --report-id <reportId>`
98 (or `--region <region> --instance <instanceId> --report-id <reportId>`) returns the
99 existing report immediately without re-running the inspection; inspection results emit
100 this replay command — with the original `--region` and `--scope-type`/`--instance` —
101 in `next_steps` automatically.
102
103## Observability
104
105- **UA template (required for all SDK requests):**
106 - `AlibabaCloud-Agent-Skills/{SKILL_NAME}/{session-id}`
107 - Runtime resolved form in this skill: `AlibabaCloud-Agent-Skills/alibabacloud-alinux-sysom-inspection/<SKILL_SESSION_ID>`
108- **Unified session-id rule:**
109 - A single session-id is generated once per session (one CLI execution) and must be
110 reused consistently across all API calls, both CLI and SDK requests.
111 - Generation priority: external env `SKILL_SESSION_ID` (preferred) -> auto-generated
112 fallback `sid-<32-char hex>` (uuid4 hex); invalid injected values fall back to the
113 generated id.
114 - Accepted format: `[A-Za-z0-9][A-Za-z0-9._:-]{7,127}`.
115 - The resolved value is exported to process env `SKILL_SESSION_ID` so downstream calls
116 stay consistent.
117- The `sysom-osops` CLI injects the UA header automatically and follows the same unified
118 session-id rule.
119
120## Execution Flow
121
122- Before each inspection, the CLI verifies SysOM activation and permissions (`InitialSysom`,
123 `source=skill_hub`); activation and installation prompts are handled by the CLI itself.
124- Every new inspection calls ROA API `POST /api/v1/inspection/createInstanceInspection` with
125 `source=skill_hub`; selected items come from `--query` keyword/intent mapping, and a query
126 matching no items falls back to a full inspection.
127- Each mode runs a full closed loop: inspect (metrics + logs) -> automatic root-cause diagnosis
128 on detected anomalies -> LLM-summarized Chinese report.
129- Automatic root-cause diagnosis is triggered via `InvokeDiagnosis` (injecting
130 `__sysom_diagnosis_source=skill_hub` into `params`) and polled via `GetDiagnosisResult`
131 until `success` / `fail` / timeout.
132- Batch (`--scope-type batch --instances ...`) inspects every specified instance; region-wide
133 (`--scope-type all`) auto-discovers all ECS instances in the region (limit 5000). Both
134 automatically diagnose the Top-3 most severe anomalous instances and include copy-ready
135 deep-dive commands for the remaining ones in the report.
136- Report lookup uses ROA API `GET /api/v1/inspection/getInspectionReport`; the CLI polls until
137 the report succeeds or times out.
138- `--region <region> --scope-type <scope-type> --report-id <reportId>` (or with
139 `--instance` instead of `--scope-type`) skips task creation and directly fetches the
140 existing report; inspection results emit this replay command in `next_steps`
141 automatically, including the original `--region` and `--scope-type`/`--instance`.
142- Local threshold/event-rule configuration is not used; anomaly decisions come from the
143 server-side inspection report.
144
145## Error Handling
146
147When a CLI invocation fails, classify the failure by the error text (`Error: <Code>: ...`)
148and handle it as follows instead of blind retries:
149
150- **Permission (`Forbidden.RAM`)**: explain that `sysom:InitialSysom` /
151 `sysom:InvokeAgentCli` is missing and point the user to `references/ram-policies.md`
152 for the minimum policy; do not retry.
153- **Parameter (`InvalidParameter`, invalid argument)**: identify the offending argument
154 and guide the user to verify the instance id and region; do not attribute it to the
155 service.
156- **Throttling (`Throttling`)**: tell the user the request was rate-limited and advise
157 retrying later; do not retry automatically in a loop.
158- **Internal (`InternalError`)**: report the temporary service failure honestly and
159 suggest retrying later; do not attribute it to user input.
160- **Empty region (`no ECS instances found`)**: not an error. Report that the region has
161 no ECS instances and skip the inspection; never fabricate a report.
162
163## Extensibility Notes
164
165- Inspection focus is controlled by `--query` (keyword/intent mapping to concrete items);
166 unmatched queries fall back to a full inspection.
167- Use `--scope-type batch --instances ...` for batch inspection and `--scope-type all` for the
168 whole region (limit 5000 instances); both auto-diagnose the Top-3 most severe anomalies.
169- Use `--region <region> --scope-type <scope-type> --report-id <reportId>` (or with
170 `--instance` instead of `--scope-type`) to re-check an existing report without
171 re-execution; the replay command is emitted automatically in inspection `next_steps`
172 with the original `--region` and `--scope-type`/`--instance`.
173- A local Python CLI (`./scripts/osops.sh inspection`) is kept only as a fallback for
174 environments where `sysom-osops` is unavailable.
175- Memory anomaly trigger logic of the fallback path stays implemented in
176 `scripts/sysom_cli/inspection/command.py`.
177- To add more post-inspection specialized diagnosis actions, reuse the `InvokeDiagnosis`
178 integration pattern.