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] });
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
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
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