huawei-cloud-agentarts-obs-diagnosis
About huawei-cloud-agentarts-obs-diagnosis
A diagnostic skill for Huawei Cloud AgentArts that helps operators trace missing metrics, logs, and traces across APM, AOM, and LTS. It organizes checks from subscription metadata through data pipelines to query parameters.
Key features
- 01Three-phase diagnosis flow
- 02Checks APM, AOM, and LTS metadata
- 03Troubleshoots metrics, logs, and traces
- 04Validates timestamps, regions, and permissions
- 05Produces a diagnostic report
Use cases
- 01Investigating missing AgentArts metrics
- 02Tracing absent logs or sessions
- 03Checking region and timestamp mismatches
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-agentarts-obs-diagnosisAfter installing, type/huawei-cloud-agentarts-obs-diagnosisin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/acceptance-criteria.mdcli-installation-guide.mddataflow-diagram.mddiagnostic-report-template.mdiam-policies.mdverification-method.mdtemplates/test-vars.jsonDetails
From the project READMEHuawei Cloud AgentArts Observability No-Data Diagnosis
Overview
This skill systematically diagnoses missing metrics, logs, and traces/sessions in Huawei Cloud AgentArts agent-ops platform. It follows a three-phase diagnostic flow: subscription metadata check → data pipeline troubleshooting → query parameter validation, covering three data sources: APM (traces/metrics), AOM (metrics), and LTS (logs).
Architecture
Application (OTel SDK/Collector)
│
├── Traces: OTEL SDK → APM (OTLP) → deliverConfig → Kafka → agent-ops
├── Metrics: Application → AOM (Prometheus) → agent-ops
└── Logs: Application → LTS → agent-ops (requires logGroup/logStream metadata)
Data Sources and Metadata
| Data Type | Source | Required Metadata |
|---|---|---|
| Traces/Sessions | APM | apmBusiness, apmToken |
| Metrics | AOM | promInstance, aomAccessCode |
| Logs | LTS | logGroup, logStream |
Prerequisites
1. Huawei Cloud Credentials
export HUAWEI_ACCESS_KEY="<your-access-key-id>"
read -rs HUAWEI_SECRET_KEY; export HUAWEI_SECRET_KEY
export HUAWEI_REGION="cn-north-4"
2. hcloud CLI (KooCLI)
Install: https://support.huaweicloud.com/qs-hcli/hcli_02_003.html
3. IAM Permissions
See references/iam-policies.md for least-privilege policy.
Workflow
Step 1: Identify Missing Data Type
Use AskUserQuestion to determine which data type is missing:
| Option | Data Type | Data Source |
|---|---|---|
| A | Metrics (metrics) | AOM / APM |
| B | Logs (logs) | LTS |
| C | Traces/Sessions (traces/session) | APM |
| D | All missing | All sources |
Record symptoms: complete vs partial absence, error codes, onset time.
Step 2: Confirm Environment Context
| Parameter | Default | Description |
|---|---|---|
region | cn-north-4 | Query region (must match ingestion region) |
domain_id | — | IAM domain ID |
project_id | — | Project ID for LTS queries |
start_time / end_time | — | Millisecond timestamps (13 digits, NOT 10-digit seconds) |
Step 3: Check Subscription Metadata (Phase 1 — Always First)
Missing subscription metadata is the most common root cause of no-data issues.
Check APM business and token:
hcloud APM ListBusiness --cli-region=cn-north-4
If no business exists → APM not subscribed. Create business:
hcloud APM CreateBusiness --cli-region=cn-north-4 \
--name="obs-diagnosis-check" \
--display_name="obs-diagnosis-check" \
--descp="diagnosis" \
--cmdb_datasource_type=OTEL
Verify business token:
hcloud APM ShowToken --cli-region=cn-north-4 \
--x-business-id={business_id}
Check AOM Prometheus instance and access code:
hcloud AOM ListPromInstance --cli-region=cn-north-4 --Enterprise-Project-Id=0
hcloud AOM ListAccessCode --cli-region=cn-north-4
If no PromInstance → AOM not configured. Create Prometheus instance
(--prom_type must be one of ECS/CCE/REMOTE_WRITE/CLOUD_SERVICE/ACROSS_ACCOUNT;
--region header is required and must match --cli-region):
hcloud AOM CreatePromInstance --cli-region=cn-north-4 \
--prom_name="obs-diagnosis" \
--prom_type=REMOTE_WRITE \
--region=cn-north-4
Check LTS log groups and streams:
hcloud LTS ListLogGroups --cli-region=cn-north-4
hcloud LTS ListLogStreams --cli-region=cn-north-4 --log_group_id={group_id}
If no logGroup/logStream → LTS not subscribed for agent-ops.
Step 4: Diagnose by Data Type (Phase 2 — Pipeline Check)
4A. Metrics No-Data Diagnosis
Check pipeline bottom-up:
- Application side: Is OTEL metrics SDK / Prometheus exporter configured?
- AOM side:
hcloud AOM ListPromInstance --cli-region=cn-north-4 --Enterprise-Project-Id=0 hcloud AOM ListAccessCode --cli-region=cn-north-4 hcloud AOM ListMetadataAomPromGet --cli-region=cn-north-4- Prometheus instance valid?
- Access code valid?
- Endpoint reachable?
- Query side: Use Prometheus query to verify data exists:
hcloud AOM ListInstantQueryAomPromGet --cli-region=cn-north-4 \ --query="up" \ --prom_instance_id={prom_id} - agent-ops filter: Check metric_name matches (
resource_tokens,model_tokens,session_tokens,trace_tokens), filter labels match (gen_ai_resource_type,resource_id,model_id).
4B. Logs No-Data Diagnosis
- Application side: Is ICAgent / OTEL logs exporter configured?
- LTS side:
hcloud LTS ListLogGroups --cli-region=cn-north-4 hcloud LTS ListLogStreams --cli-region=cn-north-4 --log_group_id={group_id} hcloud LTS ListLogs --cli-region=cn-north-4 \ --log_group_id={group_id} \ --log_stream_id={stream_id} \ --start_time=1720000000000 \ --end_time=1720600000000 - Query parameters: Check
agentRunId,agentId,traceId,logType, keyword syntax (LTS query language). - Error codes:
LTS.2446→ Unsupported query syntax — fix keyword syntax403→ Permission denied — check agency token (ops_admin_trust)
4C. Traces/Sessions No-Data Diagnosis
- Application side:
Is OTEL SDK configured with correct endpoint and token?hcloud APM SearchAgent --cli-region=cn-north-4 --x-business-id={business_id} - APM deliverConfig:
- Is
deliver_otel_trace=truein deliverConfig? - Is Kafka reachable (bootstrap-servers, SASL_SSL, topic exists)?
- Is
- APM data verification:
hcloud APM SearchTransaction --cli-region=cn-north-4 \ --x-business-id={business_id} \ --start_time=1720000000000 \ --end_time=1720600000000 - agent-ops query side (API only — not in KooCLI):
curl -X POST ${AGENT_OPS_ENDPOINT}/v1/ops/observation/traces \ -H "Authorization: Bearer ${IAM_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"start_time": 1720000000000, "end_time": 1720600000000}'
Step 5: Common Checks (All Data Types)
- Timestamp format: Must be 13-digit milliseconds (10-digit seconds → no data)
- Region consistency: Ingestion region must match query region
- Authentication: IAM token / AppCode valid? 401 → expired, 403 → insufficient permission.
${IAM_TOKEN}需在运行期由 IAM token / AppCode 获取后替换(见上 Step 4 agent-ops 查询命令);未替换则为占位符,照抄请求必返回 401。 - Permission check:
hcloud IAM ListPoliciesV5 --cli-region=cn-north-4
Step 6: Generate Diagnostic Report
See references/diagnostic-report-template.md for the report format.
Core Commands
| Command | Purpose | Mode |
|---|---|---|
hcloud APM ListBusiness --cli-region=cn-north-4 | List APM businesses | CLI |
hcloud APM ShowBusinessDetail --cli-region=cn-north-4 | Show business details | CLI |
hcloud APM ShowToken --cli-region=cn-north-4 | Get business token | CLI |
hcloud APM ShowAccessPoint --cli-region=cn-north-4 | Get access point | CLI |
hcloud APM SearchAgent --cli-region=cn-north-4 | Search agents | CLI |
hcloud APM SearchTransaction --cli-region=cn-north-4 | Search transactions (traces) | CLI |
hcloud APM ShowSpanSearch --cli-region=cn-north-4 | Search spans | CLI |
hcloud APM ListOpenRegion --cli-region=cn-north-4 | List open regions | CLI |
hcloud AOM ListPromInstance --cli-region=cn-north-4 --Enterprise-Project-Id=0 | List Prometheus instances | CLI |
hcloud AOM ListAccessCode --cli-region=cn-north-4 | List access codes | CLI |
hcloud AOM ListInstantQueryAomPromGet --cli-region=cn-north-4 | Instant Prometheus query | CLI |
hcloud AOM ListRangeQueryAomPromGet --cli-region=cn-north-4 | Range Prometheus query | CLI |
hcloud AOM ListMetadataAomPromGet --cli-region=cn-north-4 | List Prometheus metadata | CLI |
hcloud LTS ListLogGroups --cli-region=cn-north-4 | List log groups | CLI |
hcloud LTS ListLogStreams --cli-region=cn-north-4 | List log streams | CLI |
hcloud LTS ListLogs --cli-region=cn-north-4 | List logs | CLI |
hcloud IAM ListPoliciesV5 --cli-region=cn-north-4 | List IAM policies | CLI |
POST {AGENT_OPS_ENDPOINT}/v1/ops/observation/traces | Query traces in agent-ops | API |
POST {AGENT_OPS_ENDPOINT}/v1/ops/observation/metrics/trend | Query metric trends | API |
Parameter Confirmation
| Parameter | Required | Description | Example |
|---|---|---|---|
region | Yes | Query region | cn-north-4 |
business_id | Yes (traces) | APM business ID | From ListBusiness |
prom_instance_id | Yes (metrics) | AOM Prometheus instance ID | From ListPromInstance |
log_group_id | Yes (logs) | LTS log group ID | From ListLogGroups |
log_stream_id | Yes (logs) | LTS log stream ID | From ListLogStreams |
start_time | Yes | Start time (ms timestamp) | 1720000000000 |
end_time | Yes | End time (ms timestamp) | 1720600000000 |
metric_name | No (metrics) | Metric name to query | resource_tokens |
keywords | No (logs) | LTS keyword search | error AND timeout |
trace_id | No (traces) | Trace ID filter | — |
KooCLI Command Format Standard
hcloud <Service> <Operation> --cli-region=<region> [--key=value ...]
| Feature | Description | Example |
|---|---|---|
| Service name | KooCLI Service name (uppercase) | APM, AOM, LTS, IAM |
| Operation name | PascalCase | ListBusiness, ShowToken |
| Region parameter | --cli-region=<value> | --cli-region=cn-north-4 |
| Simple parameter | --key=value | --business_id=xxx |
Reference Documents
references/iam-policies.md— Least-privilege IAM policiesreferences/cli-installation-guide.md— hcloud CLI installation guidereferences/verification-method.md— Verification methods and API statusreferences/dataflow-diagram.md— Mermaid data flow and diagnostic flowreferences/acceptance-criteria.md— Acceptance criteria for diagnosisreferences/diagnostic-report-template.md— Diagnostic report template
Edge Cases
| Scenario | Handling |
|---|---|
| All data types missing | Check subscription status first, then network connectivity |
| Partial data missing (some apps) | Check agent deployment, service.name mapping |
| LTS.2446 error | Fix keyword syntax (escaping, quotes, operators) |
| 403 error (non-claw) | Check IAM tenant permissions and subscription status |
| 403 error (claw) | Check agency (ops_admin_trust) and STS configuration |
| RESOURCE_NOT_EXIST | Resource records missing — confirm CreateClawTenantRelation |
| Metadata missing | Subscribe first (SubscribeOpsObservation) |
| Timestamp 10 digits | Convert to 13-digit milliseconds |
| Region mismatch | Use same region for ingestion and query |
Notes
- Priority order: Subscription metadata → data pipeline → query parameters → permissions
- Most common root cause: Missing subscription metadata (apmBusiness, promInstance, logGroup)
- Timestamp pitfall: 10-digit seconds instead of 13-digit milliseconds
- Credential security: Never hardcode AK/SK. Read from env vars or CLI profile.
- Least privilege: See
references/iam-policies.mdfor required permissions.