Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including node-red-contrib-prib-functions with all npm packages installed. Try it out:

node-red-contrib-prib-functions lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

// require("node-red-contrib-prib-functions/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

node-red-contrib-prib-functions v0.9.2

Node-RED added node functions.


Node-Red nodes for various functions:

  • Data Analysis - statistical metrics that has real time option
  • Test
  • Load Injector
  • Monitor Flow
  • append
  • Spawn Process
  • Host Available
  • node.js os metrics

Data Analysis

Real time metrics which are recalculated on single of data point and posted in msg.result. Key and value can be selected from msg.payload. Sending message with topic"@stats" places message with all stats on second port. If realtime metrics then a third port is shown where the message is sent if it is an outlier being outside 3 standard deviations from mean.

Data Analysis Realtime Data Analysis Pearson R

A set of data analysis functions that can be run over an array of data

Single value metrics:

  • Average/Mean
  • Maximum
  • Median
  • Minimum
  • Range
  • Standard Deviation
  • Skewness
  • Sum
  • Variance

Array metrics:

  • Deltas
  • Deltas Normalised
  • Moving Average Simple (SMA)
  • Moving Average Cumulative (CMA)
  • Moving Average Weighted (WMA)
  • Moving Average Exponential (EMA/EWMA)
  • Normalise
  • Standardization (Z-score Normalization)

Data Analysis


Data Analysis Realtime example

Data Analysis Pearson R example

Data Analysis example


Allows a test case for a message to allow simple testing of nodes. Injects a new message via mouse or message. Message sent to first port which can be consumed by other nodes and returned back to node in a loop. The Test node then checks against detailed expected payload result.



Test example

after run

Test example run


Append file(s) to payload. Cached to maximise performance. Require can be used to find file.


Test example:

append example

Load Injector

Inject messages for a set period of time with varying think time. Primary purpose is testing and useful for load/stress testing.

Load Injector

Test example:

Load Injector example

Monitor Flow

Add on wire between two flows to see message rates in status line. Rate sampled every second and provides rate last second / 10 seconds / 1 minute / 5 minutes.

Monitor Flow

Test example:

Monitor Flow example

Spawn Process

Spawn process as per node.js manual with ability to set working directory, environment variables and argument passed to process. STDOUT and STDERR are sent as individual messages. RC port is sent a message on closure. Takes in messages that starts a process with ability to add environment values. Message can be sent to kill the process.

Spawn Process

Test example:

Spawn Process example

Host Available

Test if host is available sending msg to up or down port so action can be taken. Message only sent on state change or if message is sent which doesn't have topic refreshHostAvailable. This topic forces a check rather than time check which can be set.

Host Available

Test example:

Host Available example


The metrics from node.js os


Test example:

os example


Run the following command in the root directory of your Node-RED install

npm install node-red-contrib-prib-functions


Test/example flow in test/generalTest.json


0.9.1 Add outlier detection 0.9.0 Add Pearson R realtime metrics

0.8.1 Add the tests for realtime metrics 0.8.0 Add realtime metrics to data analysis


  • fix json to table html and minor code improvements. turn off debug mode on spawn process. clear down timer on close for host available


  • add Host Available


  • add Spawn Process
  • improve experimental transform with json to table html


  • test node add select property tested for result
  • dataAnalysis add property analysed
  • add experimental transform

0.4.0 Add test, monitor flow, data analysis

0.0.1 base


Peter Prib

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free