npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

node-red-contrib-performance-monitor

v2.0.0

Published

Compact, Node-RED 5 native performance monitor: real-time CPU/memory/event-loop metrics, header HUD, node:sqlite history, flow node, and anomaly detection.

Readme

Node-RED Performance Monitor

npm version license Node-RED

A native Performance Monitor for Node-RED. It adds a compact sidebar and a header HUD that show real-time process and system health, keeps queryable history in an embedded database, and raises alarms on anomalies — all themed to blend into the Node-RED editor (light and dark).


✨ Highlights

  • Compact sidebar — every metric is a dense, single-line row; click any row to expand history and details. The whole monitor fits without scrolling.
  • Header HUD — CPU, RSS, event-loop lag and session-peak memory, always visible in the editor header (toggleable).
  • Native theming — inherits Node-RED's own CSS variables, so it follows the editor's light/dark theme automatically. No custom themes to configure.
  • Embedded history — metrics are stored in SQLite via Node's built-in node:sqlite (no native build step), with configurable retention.
  • Flow node — a perf-monitor node to read metrics inside your flows.
  • Anomaly detection — built-in CPU/heap/loop/traffic patterns plus user-defined fixed and statistical alarm rules.
  • Historical report — a full-screen dashboard of past metrics over HTTP.

| Sidebar | Expanded row | Header HUD | | :---: | :---: | :---: | | | | |


🔍 What it monitors

  • Node-RED process — CPU load, heap used/total, RSS, external & array-buffer memory, event-loop lag, PID, uptime.
  • System — total CPU load (all cores), RAM usage, disk usage, CPU model/cores.
  • Containers — detects cgroup v1/v2 limits (memory & CPU) and reports against the container's limits, not just the host's.

📦 Installation

From your Node-RED user directory (usually ~/.node-red):

npm install node-red-contrib-performance-monitor

Restart Node-RED. A Performance Monitor tab appears in the sidebar, and the HUD appears in the editor header.


✅ Compatibility

| | Supported | | --- | --- | | Node-RED | 4.x and 5.x (built and verified for Node-RED 5) | | Node.js | ≥ 22.9 (uses the built-in node:sqlite module) | | OS | macOS, Windows, Linux, Alpine, Raspberry Pi | | Containers | Docker / Kubernetes (cgroup v1 & v2 aware) |

No native dependencies. History uses Node's built-in SQLite, so there is no node-gyp/compiler step — installs cleanly on Alpine, ARM and minimal container images, and upgrades don't break on Node version changes. If SQLite is unavailable on the host runtime, the plugin automatically falls back to in-memory history instead of failing to load.


🔧 Configuration

Click the gear in the sidebar toolbar:

| Setting | Default | Description | | --- | --- | --- | | Refresh interval | 2000 ms | Polling cadence (min 500 ms). | | History retention | 7 days | How long to keep stored metrics. | | Max DB size | 500 MB | Cap for the SQLite history database. | | Hide header HUD | off | Toggle the editor-header widget. |


🌐 HTTP API

All routes are served under the Node-RED admin path:

| Method | Route | Purpose | | --- | --- | --- | | GET | /performance-monitor/stats | Current process + system snapshot | | GET | /performance-monitor/recent | Recent samples | | GET | /performance-monitor/range | Samples in a time range (optional bucketing) | | GET | /performance-monitor/summary | min/max/avg/p95 over a window | | GET | /performance-monitor/stream | Server-sent live sample stream | | GET | /performance-monitor/report | Full-screen historical dashboard | | GET/POST | /performance-monitor/settings | Read / update settings | | GET/POST/PUT/DELETE | /performance-monitor/alarm-rules | Manage anomaly alarm rules |


🤝 License

MIT — see LICENSE.

Buy Me a Coffee