1.0.0 • Public • Published


    npm version CircleCI JavaScript Style Guide

    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 = require('metrica')()
    // metrics is an event emitter
    m.on('tick', (data) => console.log(data))
    // 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.


    When instantiating a new process metrics you can specify some options:

    interval: 60000, autoStart: true

    • interval (default 60000) - Allows you to specify how often the metrics are collected. This can be a number (milliseconds) or a string expression as supported by the ms module
    • autoStart (default true) - Will automatically start the collection of metrics at given intervals. If set to false you should start the collection with the .start() method


    A process metrics instance will expose few methods:

    • .start() - Will start the automatic collection of metrics (which will trigger tick 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 a tick event.


    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 = require('metrica')
    const m = metrica({ interval: '1s', autoStart: false })
    m.on('tick', (metrics) => console.log('Tick:', metrics))
    setTimeout(() => m.stop(), 5000)

    👯‍ 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.


    npm i metrica

    DownloadsWeekly Downloads






    Unpacked Size

    6.64 kB

    Total Files


    Last publish


    • lmammino