@mojaloop/central-services-metrics
Version:
Shared code for metrics generation
74 lines (56 loc) • 2.83 kB
Markdown
[](https://github.com/mojaloop/central-services-metrics/commits/master)
[](https://github.com/mojaloop/central-services-metrics/releases)
[](https://www.npmjs.com/package/@mojaloop/central-services-metrics)
[](https://www.npmjs.com/package/@mojaloop/central-services-metrics)
[](https://circleci.com/gh/mojaloop/central-services-metrics)
```bash
npm install @mojaloop/central-services-metrics
```
Import Metrics library:
```javascript
const Metrics = require('@mojaloop/central-services-metrics')
```
Set configuration options:
```javascript
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:
```JAVASCRIPT
Metrics.setup(config)
```
Example instrumentation:
```javascript
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'
}
}
```
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:
```bash
npm run audit:fix
```
You can then check to see if the CI will pass based on the current dependencies with:
```bash
npm run audit:check
```
The [audit-ci.jsonc](./audit-ci.jsonc) contains any audit-exceptions that cannot be fixed to ensure that CircleCI will build correctly.