Move weathermap generator docs to scripts/README.md
Root README now just links to it. Also updates the default GRAFANA_WEATHERMAP_PLUGIN_ID to the fork actually installed (tamirsuliman-weathermap-panel), confirmed while validating #48. Refs #48
This commit is contained in:
40
README.md
40
README.md
@@ -384,42 +384,9 @@ curl -s 'http://172.16.0.71:9090/api/v1/query?query=system_memory_state_used' |
|
||||
|
||||
### Weathermap panel generation (dashboard-as-code)
|
||||
|
||||
`scripts/generate_weathermap.py` generates a [weathermap-ng](https://github.com/allamiro/grafana-network-weathermap-ng)
|
||||
panel from live IPFabric topology + gnmic/Prometheus metrics, and writes a full
|
||||
Grafana dashboard-as-code JSON to `configs/grafana/weathermap-dashboard.json`
|
||||
(committed to Gitea as the source of truth, same pattern as the retired Flow
|
||||
Panel YAML). See issue #48 for the schema research this is built against.
|
||||
|
||||
```bash
|
||||
export IPFABRIC_URL=https://<ipfabric-instance>
|
||||
export IPFABRIC_TOKEN=<token>
|
||||
python3 scripts/generate_weathermap.py # writes the JSON only
|
||||
|
||||
export GRAFANA_URL=https://<external-grafana-instance>
|
||||
export GRAFANA_TOKEN=<token>
|
||||
export GRAFANA_DATASOURCE_UID=<prometheus-datasource-uid-in-grafana>
|
||||
python3 scripts/generate_weathermap.py --provision # also provisions via the Grafana API
|
||||
```
|
||||
|
||||
- Re-run after any topology change (`evpn-lab.clab.yml`) to regenerate and re-provision.
|
||||
- Node/link topology comes from IPFabric (`/tables/inventory/devices`,
|
||||
`/tables/interfaces/connectivity-matrix`); node positions are computed as a
|
||||
simple site-grouped grid (dc/core/campus bands) since IPFabric has no
|
||||
layout data.
|
||||
- IPFabric reports abbreviated interface names (`Et11`) while gnmic exposes
|
||||
full OpenConfig names (`Ethernet11`); the script aliases known prefixes
|
||||
(`Et`→`Ethernet`, `Po`→`Port-Channel`, `Lo`→`Loopback`, `Vl`→`Vlan`,
|
||||
`Ma`→`Management`) and cross-checks the result against the live exporter,
|
||||
logging (not silently dropping) any link whose aliased name has no matching
|
||||
series — the actual fix for a real mismatch belongs in gnmic interface
|
||||
aliasing (#43), not in this script.
|
||||
- `.100`/`.200` subinterface rows in the connectivity-matrix (802.1Q tags used
|
||||
for the gold VRF stitching on Core) are excluded — they ride the same
|
||||
physical port as their parent interface and gnmic only exports physical
|
||||
interface counters.
|
||||
- The Grafana panel plugin id (`GRAFANA_WEATHERMAP_PLUGIN_ID`, default
|
||||
`allamiro-weathermap-panel`) is a placeholder — confirm it against the
|
||||
actually installed plugin before provisioning.
|
||||
`scripts/generate_weathermap.py` generates a weathermap-ng Grafana panel from
|
||||
live IPFabric topology + gnmic/Prometheus metrics. See
|
||||
[`scripts/README.md`](scripts/README.md) for usage and details.
|
||||
|
||||
## 📁 Repository Structure
|
||||
|
||||
@@ -449,6 +416,7 @@ arista-evpn-vxlan-clab/
|
||||
│ └── grafana/
|
||||
│ └── weathermap-dashboard.json
|
||||
├── scripts/
|
||||
│ ├── README.md
|
||||
│ └── generate_weathermap.py
|
||||
└── hosts/
|
||||
├── README.md
|
||||
|
||||
Reference in New Issue
Block a user