cf-service-metrics-logger v0.2.1

❯ Why
You want to log service metrics from your application on Cloud Foundry? - Yes? - Here you are 🙌 !!

❯ Table of Contents

❯ Supported Services
| Service | Version |
|---|---|
| MongoDB | >=3.6.6 |
| Redis | >=2.3.9 |

❯ Quick Start
Installation
Install library by using npm
npm install cf-service-metrics-loggeror by using yarn
yarn add cf-service-metrics-loggerHow to use
Step 1: Import CfServiceMetricsLogger
Using CommonJS module loader:
const CfServiceMetricsLogger = require('cf-service-metrics-logger');Using ES6 module loader:
import { CfServiceMetricsLogger } from 'cf-service-metrics-logger';Step 2: Create new instance of CfServiceMetricsLogger
Create new instance of CfServiceMetricsLogger and provide options:
const options = {
mongoDB: {
serverStatusInterval: 10000,
dbStatsInterval: 20000,
},
redis: {
infoInterval: 100000
}
};
const cfServiceMetricsLogger = new CfServiceMetricsLogger(options);Step 3: Subscribe to receive service metrics and general logs
Subscribe metrics to receive service metrics data:
cfServiceMetricsLogger.subscribe('metrics', data => {
// do some fancy stuff with your metrics
});Subscribe logs to receive general application logs:
cfServiceMetricsLogger.subscribe('logs', {message, level} => {
console[level](message));
});Step 3: Start and stop service metrics logging
Start service metrics logging:
cfServiceMetricsLogger.start();Stop service metrics logging:
cfServiceMetricsLogger.stop();
❯ API
Options
| Option | Description | Default Value |
|---|---|---|
mongoDb.serverStatusInterval (optional) | MongoDb database status polling interval in ms | 10000 |
mongoDb.dbStatsInterval (optional) | MongoDB storage statistics polling interval in ms | 10000 |
redis.infoInterval (optional) | Redis statistics polling interval | 10000 |
vcap (optional) | Provide local VCAP_SERVICES and/or VCAP_APPLICATION values | {} |
vcapFile (optional) | Provide local VCAP_SERVICES and/or VCAP_APPLICATION file | '' |
Methods
| Method | Description |
|---|---|
start() | Start service metrics |
stop() | Stop service metrics |
subscribe(eventId, callback) | Subscribe an event |
unsubscribe(eventId, callback) | Unsubscribe an event |
unsubscribeAll() | Unsubscribe all events |
Subscription event id's
| Id | Description |
|---|---|
metrics | Service metrics |
logs | General application logs for levels debug, info, warn and error |

❯ Development
Getting Started
Step 1: Set up the Development Environment
You need to set up your development environment before you can do anything.
Install Node.js and NPM
- on OSX use homebrew
brew install node - on Windows use chocolatey
choco install nodejs
Install yarn globally
yarn install yarn -gStep 2: Set up Environment Variables
Copy the vcap.example.json file and rename it to vcap.json. This file provides VCAP_SERVICES and/or VCAP_APPLICATION for local development.
More information is provided here.
Step 3: Install dependencies
Install all dependencies with yarn.
yarn installScripts and Tasks
Install
- Install all dependencies with
yarn install
Linting
- Run code quality analysis using
yarn run lint. This runs tslint.
Tests
- Run unit test using
yarn run test.
Building the project
- Run
yarn run buildto generate commonJS and ES6 modules as well as declaration from the TypeScript source. - Builded sources are located in
distfolder.
Debugger
VS Code
Just set a breakpoint in source or unit test and hit F5 in your Visual Studio Code to execute and debug all unit tests.

❯ Project Structure
| Name | Description |
|---|---|
| .vscode/ | VSCode tasks, launch configuration and some other settings |
| dist/ | Compiled and bundled source files will be placed here |
| src/ | Source files |
| src/types/ *.d.ts | Custom type definitions and files that aren't on DefinitelyTyped |
| test/ | Tests |
| test/unit/ *.test.ts | Unit tests |
| vcap.example.json | Provides VCAP_SERVICES and/or VCAP_APPLICATION for local development |
| vcap.test.json | Provides VCAP_SERVICES and/or VCAP_APPLICATION for unit tests |
| rollup.config.js | Config for Rollup module bundler |