Skip to content

mojaloop/central-services-metrics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

40ad5db · Dec 6, 2024
Aug 29, 2023
Dec 6, 2024
Dec 4, 2024
May 18, 2022
May 13, 2021
Aug 23, 2023
Aug 19, 2021
Dec 6, 2024
Apr 12, 2024
Dec 9, 2020
Aug 29, 2023
Nov 21, 2024
Dec 6, 2024
Dec 6, 2024
May 18, 2022

Repository files navigation

central-services-metrics

Git Commit Git Releases Npm Version NPM Vulnerabilities CircleCI

Installation

npm install @mojaloop/central-services-metrics

Usage

Import Metrics library:

const Metrics = require('@mojaloop/central-services-metrics')

Set configuration options:

let config = {
    "timeout": 5000, // Set the timeout in ms for the underlying prom-client library. Default is '5000'.
    "prefix": "<PREFIX>", // Set prefix for all defined metrics names
    "defaultLabels": { // Set default labels that will be applied to all metrics
        "serviceName": "<NAME_OF_SERVICE>"
    }
}

Initialise Metrics library:

Metrics.setup(config)

Example instrumentation:

const exampleFunction = async (error, message) => {
    const histTimerEnd = Metrics.getHistogram( // Create a new Histogram instrumentation
      'exampleFunctionMetric', // Name of metric. Note that this name will be concatenated after the prefix set in the config. i.e. '<PREFIX>_exampleFunctionMetric'
      'Instrumentation for exampleFunction', // Description of metric
      ['success'] // Define a custom label 'success'
    ).startTimer() // Start instrumentation
    
    try {
        Logger.info('do something meaningful here')
        histTimerEnd({success: true}) // End the instrumentation & set custom label 'success=true'
    } catch (e) {
        histTimerEnd({success: false}) // End the instrumentation & set custom label 'success=false'
    }
}

Auditing Dependencies

We use audit-ci along with npm audit to check dependencies for node vulnerabilities, and keep track of resolved dependencies with an audit-ci.jsonc file.

To start a new resolution process, run:

npm run audit:fix

You can then check to see if the CI will pass based on the current dependencies with:

npm run audit:check

The audit-ci.jsonc contains any audit-exceptions that cannot be fixed to ensure that CircleCI will build correctly.