oclaw/skills/_workspace/ops/ops-netx-ume-playbook/reference.md
oliver beb52006d8 refactor: move bundled skills tree to repo root skills/
- Relocate runtime/skills -> skills/; runtime_skills_root() prefers oclaw/skills
  with fallback to legacy runtime/skills for unmigrated trees.
- session-bootstrap hook handler resolves repo root via PROJECT_ROOT.
- Update architecture/migration docs and in-tree skill references.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 11:35:57 +08:00

90 lines
3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ops Netx UME 快速参考
## 1) 当前告警明细(轻量入口)
- 工具:`netx_query_ume_alarms`
- 常用参数:
- `severity`, `ne_id`, `keyword`, `page`, `page_size`
- 建议:
- 推荐 `page_size=50`
- 默认只看前 1 页(必要时最多 2 页),不要无脑翻页拉全量
## 2) 原始明细(字段可控,推荐用于证据输出)
- 工具:`netx_query_ume_alarms_raw`
- 推荐流程:
- 先调用 `netx_list_ume_alarm_fields` 获取字段清单
- 再用 `select_fields` 控制返回字段,减少输出体积
- 字段集预设(推荐优先用 preset,避免手写字段列表):
- `field_preset=brief`:轻量概览(严重度/事件/最近时间/网元显示)
- `field_preset=evidence`:证据输出(含 object/cause/时间/网元状态)
- `field_preset=ne_debug`:定位网元信息缺失或状态异常
- `select_fields` 示例:
- `alarm_alarm_key`
- `alarm_perceived_severity`
- `alarm_last_seen_at`
- `ne_user_label`
- `ne_ip_address`
## 3) 动态聚合(非 SQL)
- 工具:`netx_aggregate_ume_alarms_raw`
- 常用分组:
- `group_by=alarm_perceived_severity`
- `group_by=ne_user_label`
- `group_by=alarm_event_type`
- `group_by=ne_connection_status`
- `group_by=alarm_perceived_severity, group_by2=ne_user_label`
- 建议:
- 推荐 `limit=200`
## 4) 诊断摘要
- 工具:`netx_run_ume_diagnostics`
- 用途:在深挖前先快速形成“概览简报”(严重度、Top 网元、Top 事件类型等)
## 5) SQL 深度分析(受限)
- 工具:`netx_sql_query_ume`
- 约束:
- 仅允许 SELECT
- 仅允许表:`ume_alarms_current` / `ume_inventory_ne`
- 重查询务必设置 `statement_timeout_ms`
- 除非只是 `count(*)`,否则建议带时间窗(例如 `last_seen_at >= now() - interval '30 minutes'`)
- 示例(全量聚合,谨慎使用):
```sql
select
coalesce(ne.user_label, ne.ne_name, a.ne_id) as ne_display,
count(*) as alarm_count
from ume_alarms_current a
left join ume_inventory_ne ne on ne.ne_id = a.ne_id
group by coalesce(ne.user_label, ne.ne_name, a.ne_id)
order by alarm_count desc
```
- 示例(推荐:带时间窗 + 超时):
- `statement_timeout_ms=8000`
```sql
select
coalesce(ne.user_label, ne.ne_name, a.ne_id) as ne_display,
count(*) as alarm_count
from ume_alarms_current a
left join ume_inventory_ne ne on ne.ne_id = a.ne_id
where a.last_seen_at >= now() - interval '30 minutes'
group by coalesce(ne.user_label, ne.ne_name, a.ne_id)
order by alarm_count desc
```
- 示例(推荐:带时间窗 + 严重度过滤,现场最常用):
- `statement_timeout_ms=8000`
```sql
select
coalesce(ne.user_label, ne.ne_name, a.ne_id) as ne_display,
count(*) as alarm_count
from ume_alarms_current a
left join ume_inventory_ne ne on ne.ne_id = a.ne_id
where a.last_seen_at >= now() - interval '30 minutes'
and lower(coalesce(a.perceived_severity, '')) in ('critical','major')
group by coalesce(ne.user_label, ne.ne_name, a.ne_id)
order by alarm_count desc
```