cf-service-metrics-logger
v0.2.1
Published
Log Cloud Foundry service metrics
Downloads
3
Maintainers
Readme
❯ 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-logger
or by using yarn
yarn add cf-service-metrics-logger
How 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 -g
Step 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 install
Scripts 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 build
to generate commonJS and ES6 modules as well as declaration from the TypeScript source. - Builded sources are located in
dist
folder.
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 |