suzieq-observability

$npx mdskill add automateyournetwork/netclaw/suzieq-observability

Queries and validates network state using SuzieQ observability tools

  • Investigates BGP/OSPF states, interface health, and packet paths
  • Uses SuzieQ API with environment variables for authentication and configuration
  • Filters data by device, namespace, time range, and specific columns
  • Returns structured JSON results for real-time or historical analysis
SKILL.md
.github/skills/suzieq-observabilityView on GitHub ↗
---
name: suzieq-observability
description: "SuzieQ network observability — query current and historical network state, run validation assertions, get summary statistics, trace forwarding paths, and discover unique values across 20+ network tables. Use when investigating BGP/OSPF state, checking interface health, performing time-travel queries, validating network assertions, or tracing packet paths through the network via SuzieQ."
license: Apache-2.0
user-invocable: true
metadata:
  { "openclaw": { "requires": { "bins": ["python3"], "env": ["SUZIEQ_API_URL", "SUZIEQ_API_KEY"] } } }
---

# SuzieQ Network Observability

## Server & Configuration

- **Server script:** `mcp-servers/suzieq-mcp/server.py`
- **Transport:** stdio (JSON-RPC 2.0)
- **Environment variables:** `SUZIEQ_API_URL`, `SUZIEQ_API_KEY`
- **Optional:** `SUZIEQ_VERIFY_SSL` (default: true), `SUZIEQ_TIMEOUT` (default: 30s)

## All 5 Available Tools

### 1. `suzieq_show`

Query detailed network state data from any SuzieQ table. Supports filtering by device, namespace, time range, and columns. Use for current or historical (time-travel) network state queries.

- `table` (string, required): SuzieQ table name (e.g., "bgp", "route", "interface")
- `namespace` (string): Filter by SuzieQ namespace
- `hostname` (string): Filter by device hostname
- `columns` (string): Comma-separated column names to return
- `start_time` (string): Start time for time-travel query (ISO 8601 or relative e.g., "1h", "2d")
- `end_time` (string): End time for time-travel query
- `view` (string): Data view: "latest", "all", or "changes"
- `filters` (string): Additional key=value pairs separated by ampersand

**Use when:** Querying current network state, investigating specific devices, performing time-travel queries for historical analysis.

### 2. `suzieq_summarize`

Get aggregated statistics and summary views of any SuzieQ network table. Returns counts, distributions, and per-device breakdowns.

- `table` (string, required): SuzieQ table name
- `namespace` (string): Filter by SuzieQ namespace
- `hostname` (string): Filter by device hostname
- `start_time` (string): Start time for historical summary
- `end_time` (string): End time for historical summary

**Use when:** Getting high-level network overview, distribution analysis, capacity planning.

### 3. `suzieq_assert`

Run validation assertions against network state. Checks conditions like "all BGP peers established" or "no interface errors".

- `table` (string, required): Must be one of: bgp, ospf, interface, evpnVni
- `namespace` (string): Filter by SuzieQ namespace
- `hostname` (string): Filter by device hostname

**Use when:** Validating network health, pre/post-change verification, compliance checks.

### 4. `suzieq_unique`

Get distinct values and their counts for a specific column in a SuzieQ table.

- `table` (string, required): SuzieQ table name
- `column` (string, required): Column name to get unique values for
- `namespace` (string): Filter by SuzieQ namespace
- `hostname` (string): Filter by device hostname

**Use when:** Understanding value distributions (unique VRFs, BGP states, interface types).

### 5. `suzieq_path`

Trace the forwarding path between two endpoints through the network.

- `namespace` (string, required): SuzieQ namespace
- `source` (string, required): Source IP address
- `destination` (string, required): Destination IP address
- `vrf` (string): VRF name (default: "default")

**Use when:** Troubleshooting connectivity, verifying forwarding paths, path analysis.

## Workflow

1. Start with `suzieq_show` or `suzieq_summarize` to understand current network state
2. Use `suzieq_assert` to validate health (BGP established, OSPF full, interfaces up)
3. Use `suzieq_unique` to explore value distributions for specific columns
4. Use `suzieq_path` to trace forwarding paths between endpoints
5. Use `start_time`/`end_time` on show/summarize for time-travel historical analysis

## Supported Tables

address, arpnd, bgp, device, devconfig, evpnVni, fs, ifCounters, interface, inventory, lldp, mac, mlag, namespace, network, ospf, route, sqPoller, topology, vlan
More from automateyournetwork/netclaw