mindseye

MindsEye is a prometheus exporter that helps you track node packages in production.


Keywords
monitoring, prometheus, exporter, packages
License
MIT
Install
npm install mindseye@1.0.2

Documentation

mindseye

MindsEye is a prometheus exporter that helps you track node packages in production.

const app = express();

// Add the following:

const client = require("prom-client");
const { collectPackageInfo } = require("mindseye");

collectPackageInfo({ registers: [client.register] });

Installation

This is a Node.js module available through the npm registry.

Before installing, download and install Node.js. Node.js 0.10 or higher is required.

Installation is done using the npm install command:

$ npm install mindseye

Follow our installing guide for more information.

This package depends on express and prom-client

Configuration

export interface MindsEyeConfiguration {
    /**
     * Where package.json is located
     */
    packageJsonPath?: string;
    
    /**
     * You can also pass in the package.json buffer directly if you loaded it.
     */
    packageJson?: string;
    
    /**
     * prefix for where all the node modules are.
     * Will use `./node_modules` if unspecified
     */
    nodeModulesPath?: string;
    
    /**
     * Please pass in the register from the default import!
     */
    registers?: Registry[]; // Promethesus registry
    
    /**
     * Which port to run the exporter on, defaults to 9991
     * Metrics are available on localhost:9991/metrics
     */
    port?: number;
    
    /**
     * Logs to console.err if true
     */
    reportMissingPackageJson?: boolean;
    
    /**
     * If you are managing your own exporter, set this to false
     * By default it will run a separate express app on port 9991
     */
    runExpress?: boolean;
}

NOTE: You may have to tweak packageJsonPath and nodeModulesPath when building with docker

Sample Output

When program starts, you will see the following:

MindsEye listening on port 9991 /metrics

And if you navigate to localhost:9991/metrics, you will see:


# HELP npm_packages_installed npm packages installed for this project
# TYPE npm_packages_installed counter
npm_packages_installed{package_type="dep",package_name="dotenv",package_version="8.2.0"} 1
npm_packages_installed{package_type="dep",package_name="express",package_version="4.17.1"} 1
npm_packages_installed{package_type="dep",package_name="mindseye",package_version="1.0.0"} 1
npm_packages_installed{package_type="dep",package_name="mysql2",package_version="2.1.0"} 1
npm_packages_installed{package_type="dep",package_name="sequelize",package_version="5.21.3"} 1

License

MIT