Skip to content

Latest commit

Β 

History

274 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

β˜• Support this project

Buy me a coffee β€” no account needed Β Β  Sponsor on GitHub Sponsors

Buy me a coffee takes a card and needs no account Β Β·Β  GitHub Sponsors offers monthly tiers and needs a GitHub login

Network Weathermap NG

Network Weathermap NG

Draw your network. Watch it breathe.

Live network weathermaps for Grafana β€” nodes, links, and color scales driven by your real metrics.

Release CI E2E License Grafana Signed

Documentation Β· Getting Started Β· Use Cases Β· Icon Reference Β· FAQ

A live network weathermap rendered by the plugin

A continuation of the archived knightss27-weathermap-panel, rebuilt for modern Grafana β€” React 18, Grafana 11β†’13, TypeScript 5, and a hardened, regression-tested core.


✨ What it does

πŸ—ΊοΈ Maps, not charts
Lay out nodes and links to match your real topology β€” WAN, datacenter, campus, rack, or global backbone on a world map.

🌑️ Metrics as color
Links and nodes recolor live from any Grafana data source β€” Prometheus, InfluxDB, Zabbix, anything that returns a series.

βͺ Incident replay
Scrub the built-in timeline and watch link utilization and node status replay history, step by step.

πŸŽ›οΈ Everything in-panel
Nodes, links, VIAs, thresholds, tooltips, drill-down dashboard links β€” all edited inside Grafana, no external tools.

🧭 PHP Weathermap familiar
Classic weathermap design language, so teams migrating from the old tooling feel at home immediately.

πŸ–ΌοΈ 1064 bundled icons
Twelve icon sets served by the plugin itself β€” no external image hosting, air-gap friendly.

πŸ–ΌοΈ Gallery

Rack cabling and power redundancy
Rack cabling & power redundancy
Global backbone on a world map
Global backbone on a world map
Incident replay with the timeline slider
Incident replay (timeline slider)
Device health overview with status coloring
Device health & status coloring
Eleven ready-made scenarios β€” each with a recipe and a runnable demo dashboard β€” in the Use Cases guide.

🧩 The icon library

routerΒ  awsΒ  gcpΒ  azureΒ  juniperΒ  fortinetΒ  dellΒ  kubernetesΒ  redisΒ  pythonΒ  us flagΒ  de flag

1064 icons Β· 12 sets β€” every one served by the plugin itself

Cisco Flags Networking Vendors Databases Languages Cloud Rack Computers Platforms Aerospace

Browse them all in the Icon Reference. Need the official AWS/Azure/GCP architecture packs? scripts/fetch-cloud-icons.sh installs them onto your own Grafana.

πŸš€ Quick start

Install (from within Grafana):

  1. Go to Administration β†’ Plugins and data β†’ Plugins
  2. Search for Network Weathermap NG and click Install

Build your first map:

  1. Add panel β†’ pick Network Weathermap NG as the visualization
  2. Open the Map Editor in the panel options
  3. Add nodes, draw links between them, bind each link side to a query
  4. Set your color-scale thresholds β€” the map starts breathing 🌑️

πŸ“¦ Manual install (signed release zip)

Grab the versioned zip from the latest release, then:

unzip tamirsuliman-weathermap-panel-*.zip -d /var/lib/grafana/plugins/
systemctl restart grafana-server

Every release ships a .zip.sha1 checksum, a community signature (MANIFEST.txt), and a GitHub build-provenance attestation.

🐳 Local environments β€” know which one you want

The repo ships two Docker Compose environments with different jobs:

πŸ› οΈ Dev server 🐳 Demo & E2E playground
Start npm run server (repo root) cd testing && docker compose up --build
URL http://localhost:3000 β€” admin / admin http://localhost:3101 β€” anonymous admin
Contains your local dist/ build + root provisioning/ plugin + Prometheus + simulated-WAN exporter + all demo dashboards
Use it for plugin development (pair with npm run dev watch mode) trying every use case, plugin review, npm run e2e:local
Pin Grafana GRAFANA_VERSION=11.0.0 npm run server GRAFANA_VERSION=11.0.0 docker compose up --build

The playground provisions WAN utilization, incident replay, rack boards, the world-map backbone, and more β€” every scenario from the Use Cases guide, ready to click through.

Requirement Version
πŸ“Š Grafana 11.0.0+ β€” tested through 13.x
βš™οΈ Node.js (development only) 20 – 24 (.nvmrc pins 24)

πŸ›‘οΈ Built to not break

This fork treats reliability as a feature. Beyond unit coverage, the suite is built around regression traps for the bugs that bite weathermaps in production:

  • Hostile-data safe β€” malformed or partial saved options, links pointing at deleted nodes, empty data frames, overlapping nodes: the panel renders instead of crashing, guaranteed by tests.
  • Immutable by construction β€” every editor interaction delivers new state; the test harnesses deep-freeze the options object so any in-place mutation fails CI instantly.
  • Playwright E2E on real Grafana (declared minimum and latest) β€” weekly, on demand, and on every PR that touches the E2E surface.
  • Release discipline β€” packaging layout checks on PRs, API-compatibility gates for Grafana 11β†’13, signed artifacts with checksums and provenance attestation.

πŸ”„ What was modernized from the original

Area Change
Grafana SDK @grafana/data / runtime / ui updated and verified against Grafana 13
React React 19 / findDOMNode crash fixed
TypeScript all @ts-ignore overrides removed
Styling stylesFactory β†’ useStyles2 + @emotion/css
Security URL sanitization for dashboard links, icons, and background images
E2E deprecated @grafana/e2e β†’ @grafana/plugin-e2e
CI/CD signed releases, provenance attestation, docs site, API-compat matrix, packaging checks

🀝 Contributing

Issues and PRs are welcome β€” please open an issue first for significant changes.

πŸ› Report a bug β€” crashes, wrong rendering, editor glitches
✨ Request a feature β€” new icon sets, options, integrations
πŸ› οΈ Development guide β€” local setup, build, and test commands
πŸ’¬ Browse open issues β€” see what's planned or grab something to work on

🧾 Credits & license

Created and maintained by Tamir Suliman (allamiro@gmail.com). A continuation of the archived knightss27-weathermap-panel β€” thank you to its original author.

Icon sets bundled under their respective licenses (Simple Icons CC0, devicon MIT, circle-flags MIT, flag-icons MIT) β€” see NOTICE. Product names and logos are trademarks of their owners, used for identification only.

Apache-2.0 β€” see LICENSE. Redistributions must retain the NOTICE attribution per Apache-2.0 Β§4(d).

πŸ“– Citing

If you use this project in research or publications, please cite it β€” GitHub's "Cite this repository" button (powered by CITATION.cff) provides APA and BibTeX entries:

@software{Suliman_Network_Weathermap_NG,
  author  = {Suliman, Tamir},
  title   = {Network Weathermap NG},
  url     = {https://github.com/allamiro/grafana-network-weathermap-ng},
  license = {Apache-2.0}
}

⭐ If this plugin lights up your NOC wall, a star helps others find it β€” and if it saved you a weekend, buy me a coffee or sponsor on GitHub.

About

A modernized, actively maintained network weathermap panel plugin for Grafana. Continuation of the archived knightss27-weathermap-panel.

Topics

Resources

Contributing

Security policy

Stars

11 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages