metrica
Event Emitter based node library that emits process metrics (uptime, memory, cpu) at given intervals
Install & quick usage
Requirements: this library is written for Node.js >= 6.0
As usual, this happens through NPM:
npm install --save metrica
Then, in your code:
const m = // metrics is an event emitter m// tick happens (by default) every minute and data will look like:// {// cpu: {// user: 129255,// system: 25515// },// memory: {// rss: 21843968,// heapTotal: 8208384,// heapUsed: 5394352,// external: 8628// },// uptime: 44.858// }
🤔 Rationale
When running your Node.js app in production you might be interested in gathering metrics about the running process. Perhaps, you want to log this information or send it to a centralized metrics system.
This library gives you an easy way to collect process metric continuously and offers a convenient event based interface so that you can easily attach your custom logic to handle the new metrics.
Options
When instantiating a new process metrics you can specify some options:
interval: 60000, autoStart: true
interval
(default60000
) - Allows you to specify how often the metrics are collected. This can be a number (milliseconds) or a string expression as supported by thems
moduleautoStart
(defaulttrue
) - Will automatically start the collection of metrics at given intervals. If set tofalse
you should start the collection with the.start()
method
Methods
A process metrics instance will expose few methods:
.start()
- Will start the automatic collection of metrics (which will triggertick
events at given intervals).stop()
- Will stop the automatic collection of metrics.getMetrics()
- Will get and return the current metrics. It's not going to trigger atick
event.
Events
A process metrics instance is an event emitter and will emit the following events:
tick
- triggered continuously at the given interval time. It will contain as a payload the current metrics object.
Complete example
This example will collect and log metrics for 5 seconds and then stop the collection:
const metrica = const m = mmstart
👯 Contributing
Everyone is very welcome to contribute to this project. You can contribute just by submitting bugs or suggesting improvements by opening an issue on GitHub.
🤦 License
Licensed under MIT License. © Luciano Mammino.