All Projects → RuntimeTools → Appmetrics Dash

RuntimeTools / Appmetrics Dash

Licence: other
A data visualizer that uses " Node Application Metrics" (appmetrics) to monitor and display Node.js application data as a html web application.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Appmetrics Dash

Sparklens
Qubole Sparklens tool for performance tuning Apache Spark
Stars: ✭ 345 (-8.49%)
Mutual labels:  performance-visualization
Coreui Free Laravel Admin Template
CoreUI Free Laravel Bootstrap Admin Template
Stars: ✭ 353 (-6.37%)
Mutual labels:  dashboard
Dropit
DropIt is a File Uploader built with nodejs, Upload, get a link, and share your files with anyone easily.
Stars: ✭ 367 (-2.65%)
Mutual labels:  node-js
Gitlab Monitor
A web-based monitor dashboard for GitLab CI
Stars: ✭ 343 (-9.02%)
Mutual labels:  dashboard
Mozaik
Mozaïk is a tool based on nodejs / react / redux / nivo / d3 to easily craft beautiful dashboards
Stars: ✭ 3,546 (+840.58%)
Mutual labels:  dashboard
Hygieia
CapitalOne DevOps Dashboard
Stars: ✭ 3,682 (+876.66%)
Mutual labels:  dashboard
Perfjankie
Checking browser rendering performance regression
Stars: ✭ 343 (-9.02%)
Mutual labels:  dashboard
Practicalnode
Practical Node.js, 1st and 2nd Editions [Apress] 📓
Stars: ✭ 3,694 (+879.84%)
Mutual labels:  node-js
Tailwind Starter Kit
Tailwind Starter Kit a beautiful extension for TailwindCSS, Free and Open Source
Stars: ✭ 4,434 (+1076.13%)
Mutual labels:  dashboard
Nodejs Api Boilerplate
A boilerplate for kickstart your nodejs api project with JWT Auth and some new Techs :)
Stars: ✭ 364 (-3.45%)
Mutual labels:  node-js
Angular Material Dashboard
A material-design dashboard by using angular
Stars: ✭ 347 (-7.96%)
Mutual labels:  dashboard
Airframe React
Free Open Source High Quality Dashboard based on Bootstrap 4 & React 16: http://dashboards.webkom.co/react/airframe
Stars: ✭ 3,659 (+870.56%)
Mutual labels:  dashboard
Vudash
Powerful, Flexible, Open Source dashboards for anything
Stars: ✭ 363 (-3.71%)
Mutual labels:  dashboard
Allorigins
👽 Pull contents from any page as JSON via API
Stars: ✭ 343 (-9.02%)
Mutual labels:  node-js
Machinery
State machine thin layer for structs (+ GUI for Phoenix apps)
Stars: ✭ 367 (-2.65%)
Mutual labels:  dashboard
Go Project Sample
Introduce the best practice experience of Go project with a complete project example.通过一个完整的项目示例介绍Go语言项目的最佳实践经验.
Stars: ✭ 344 (-8.75%)
Mutual labels:  dashboard
Atlantabot
🤖 Another powerful Discord Bot with a web-dashboard used by more than 130k users!
Stars: ✭ 362 (-3.98%)
Mutual labels:  dashboard
Leaa
Leaa is a monorepo restful CMS / Admin built with Nest.js (@nestjsx/crud, node.js) and Ant Design.
Stars: ✭ 375 (-0.53%)
Mutual labels:  dashboard
Photon
Clone native desktop UI's like cocoa and develop native feeling applications using web technologies
Stars: ✭ 369 (-2.12%)
Mutual labels:  node-js
Shards Dashboard Vue
A free Vue admin dashboard template pack featuring a modern design system and lots of custom templates and components.
Stars: ✭ 363 (-3.71%)
Mutual labels:  dashboard

Node Application Metrics Dashboard

Build Status codebeat badge codecov.io Apache 2 Homepage Module LTS Adopted' IBM Support

Node Application Metrics Dashboard (appmetrics-dash) provides a very easy-to-use web based dashboard to show the performance metrics of your running Node.js application.

appmetrics-dash in action

If you want to add the dashboard to all HTTP servers created by your application then simply add:

// Before all other 'require' statements:
require('appmetrics-dash').attach();

to the very top of your main JavaScript source file.

Alternatively, to use preloading:

$ node --require appmetrics-dash/attach app.js

or use the NODE_OPTIONS environment variable:

$ export NODE_OPTIONS="--require appmetrics-dash/attach"

If you want to add the dashboard to one specific HTTP server then use:

var dash = require('appmetrics-dash');
// Other 'require' statements here
// Create HTTP server 'myHttpServer' here
dash.monitor({server: myHttpServer});

If you are not creating an HTTP server then use:

// Before all other 'require' statements:
require('appmetrics-dash').monitor();

or run your program with

$ node --require appmetrics-dash/monitor app.js

or via the NODE_OPTIONS environment variable:

$ export NODE_OPTIONS="--require appmetrics-dash/monitor"

This creates a new server for the dashboard on port 3001 by default. The path defaults to /appmetrics-dash. E.g. http://localhost:3001/appmetrics-dash

The data available on the dashboard is as follows:

  • CPU Profiling (via a separate tab)
  • HTTP Incoming Requests
  • HTTP Throughput
  • Average Reponse Times (top 5)
  • CPU
  • Memory
  • Heap
  • Event Loop Times
  • Environment
  • Other Requests
  • HTTP Outbound Requests

As well as displaying data, it also provides the ability to generate both Node Report and Heap Snapshots directly from the dashboard. The Node Report will display in a new tab in the browser whilst the Heap Snapshot will be written to disk for loading into the Chrome DevTools for analysis. These can both be triggered from the options menu in the top left of the screen

The dashboard uses Node Application Metrics to monitor the application.

Installation

npm install appmetrics-dash

Performance overhead

Our testing has shown that the performance overhead in terms of processing is minimal, adding less than 0.5 % to the CPU usage of your application. The additional memory required is around 30 MB to gather information about your system and application which is then visualized in the dashboard.

We gathered this information by monitoring the sample application Acme Air. We used MongoDB as our datastore and used JMeter to drive load though the program. We have performed this testing with Node.js version 6.10.3

API Documentation

attach(options)

  • options {Object} Options are the same as for dash.monitor().

Auto-attach to all http servers created after this call, calling dash.monitor(options) for every server.

Simple example using attach

var dash = require('appmetrics-dash');
dash.attach();

var http = require('http');

const port = 3000;

const requestHandler = (request, response) => {  
  response.end('Hello')
}

const server = http.createServer(requestHandler);

server.listen(port, (err) => {  
  if (err) {
    return console.log('An error occurred', err)
  }
  console.log(`Server is listening on ${port}`)
});

monitor(options)

  • options.url {String} Path to serve dashboard from. Optional, defaults to '/appmetrics-dash'.
  • options.console {Object} Some messages are printed to the console using console.log() and console.error(). Optional, defaults to the global console object.
  • options.server {Object} An instance of a node http server to serve the dashboard from. Optional, default is to create a server (see port and host).
  • options.port {String|Number} Port to listen on if creating a server. Optional, unused if server option is used.
  • options.host {String} Host to listen on if creating a server. Optional, unused if server option is used.
  • options.appmetrics {Object} An instance of require('appmetrics') can be injected if the application wants to use appmetrics, since it is a singleton module and only one can be present in an application. Optional, defaults to the appmetrics dependency of this module.
  • options.nodereport {Object} An instance of require('node-report') can be injected if the application wants to use node-report, since it is a singleton module and only one can be present in an application. Optional, defaults to the node-report dependency of this module. The ability to generate reports can be disabled by setting this to null or undefined.
  • options.title {String} Title for the dashboard.
  • options.docs {String} URL link to accompanying documentation.
  • options.middleware {Object} Pass in middleware function to be used by server.

Contributing

We welcome contributions. Please see CONTRIBUTING.md for details about the contributor licence agreement and other information. If you want to do anything more involved than a bug fix or a minor enhancement then we would recommend discussing it in an issue first before doing the work to make sure that it's likely to be accepted. We're also keen to improve test coverage and may not accept new code unless there are accompanying tests.

Module Long Term Support Policy

This module adopts the Module Long Term Support (LTS) policy, with the following End Of Life (EOL) dates:

Module Version Release Date Minimum EOL EOL With Status
V4.x.x Jun 2018 Dec 2019 Current

License

The Node Application Metrics Dashboard is licensed using an Apache v2.0 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].