用于node.js应用的在终端的遥测仪表板

用于node.js应用的在终端的遥测仪表板,实时确定在你的终端Node进程发生了什么。

Node.js 调试/剖析

访问GitHub主页

共3855Star

详细介绍

nodejs-dashboard

Telemetry dashboard for node.js apps from the terminal!


http://i.imgur.com/FDEsZEC.png

Determine in realtime what's happening inside your node process from the terminal. No need to instrument code to get the deets. Also splits stderr/stdout to help spot errors sooner.

Getting Started

Install

The preferred method is global install but can optionally be placed locally as well.

% npm install -g nodejs-dashboard

Add the reporting module

There are a couple patterns for including nodejs-dashboard in your code. This module isn't designed for production use and should be limited to development environments.

Including via code

From within a dev.index.js script or other dev entry point simply require the nodejs-dashboard module.

// dev.index.js
require("nodejs-dashboard");
require("./index");

Next update your package.json to launch the dashboard:

...
"scripts": {
    "dev": "nodejs-dashboard node dev.index.js"
}
...

Including via preload argument

This method utilizes Node's -r flag to introduce the nodejs-dashboard module. In this setup no code modifications are required. This is functionally equivalent to the above example.

Update your package.json with the new script:

...
"scripts": {
    "dev": "nodejs-dashboard -- node -r nodejs-dashboard index.js"
}
...

Caveats

If your app requires additional arguments you'll need to pass the -- flag to your script. For example:

...
"scripts": {
    "dev": "nodejs-dashboard -- node -m=false --bar=true index.js"
}
...

But I want to use something else to launch my app!

Most CLI interfaces provide a mechanism for launching other tools. If you're looking to use something like nodemon or babel checkout the exec options provided by the CLI.

% nodemon --exec "nodejs-dashboard babel-node" src/index.js

Launch your app

Once you've completed these steps run the following in your terminal:

% npm run dev

What options does nodejs-dashboard support?

Usage: nodejs-dashboard [options] -- [node] [script] [arguments]

Options:

  -h, --help             output usage information
  -V, --version          output the version number
  -p, --port [port]      Socket listener port
  -e, --eventdelay [ms]  Minimum threshold for event loop reporting, default 10ms
--port

Under the hood the dashboard utilizes SocketIO with a default port of 9838. If this conflicts with an existing service you can optionally change this value.

--eventdelay

This tunes the minimum threshold for reporting event loop delays. The default value is 10ms. Any delay below this value will be reported at 0.

To gracefully exit and terminate the spawned process use one of: Ctrl + C, Q, or ESC.