Expose Brakes metrics as Prometheus data
npm install brakes-prometheus> Expose Brakes metrics as Prometheus data
[![NPM Version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url]

[![Dependency Status][david-image]][david-url]
[![Peer Dependency Status][david-peer-image]][david-peer-url]
[![Dev Dependency Status][david-dev-image]][david-dev-url]
Add event listeners to a [brakes][brakes-url] instance, using prom-client.
This module has a peer dependency on [prom-client][prom-client-url].
Currently, version 10 is supported.
``js
import Brake from 'brakes';
import addEventListeners from 'brakes-prometheus';
import { register as prometheusRegister } from 'prom-client';
const myBrake = new Brake(() => Promise.resolve(), { name: 'some name' });
addEventListeners(myBrake);
setInterval(() => {
console.log(prometheusRegister.metrics());
}, 500);
`
You can supply an additional options object to set a prefix for the metric
names.
`js
addEventListeners(myBrake, { prefix: 'my_application_prefix_' });
// provides "my_application_prefix_breaker_execute_total" and so on
`
This module exposes 9 metrics, all using the name of the Brake as the label:
1. breaker_execute_total, 'Resolver circuit breaker execute count'Counter
()breaker_success_total
2. , 'Resolver circuit breaker success count'Counter
()breaker_failure_total
3. , 'Resolver circuit breaker failure count'Counter
()breaker_timeout_total
4. , 'Resolver circuit breaker timeout count'Counter
()breaker_reject_total
5. , 'Resolver circuit breaker reject count' (Counter)breaker_circuit_closed_total
6. , 'Resolver circuit breaker circuit closedCounter
count' ()breaker_circuit_opened_total
7. , 'Resolver circuit breaker circuit openedCounter
count' ()breaker_duration_seconds
8. : 'Resolver circuit breaker duration summary'Summary
()breaker_duration_buckets_seconds
9. : 'Resolver circuit breaker durationHistogram`)
buckets' (
[travis-url]: https://travis-ci.org/finn-no/node-brakes-prometheus
[travis-image]: https://img.shields.io/travis/finn-no/node-brakes-prometheus.svg
[npm-url]: https://npmjs.org/package/brakes-prometheus
[npm-image]: https://img.shields.io/npm/v/brakes-prometheus.svg
[david-url]: https://david-dm.org/finn-no/node-brakes-prometheus
[david-image]: https://img.shields.io/david/finn-no/node-brakes-prometheus.svg
[david-dev-url]: https://david-dm.org/finn-no/node-brakes-prometheus?type=dev
[david-dev-image]:
https://img.shields.io/david/dev/finn-no/node-brakes-prometheus.svg
[david-peer-url]: https://david-dm.org/finn-no/node-brakes-prometheus?type=peer
[david-peer-image]:
https://img.shields.io/david/peer/finn-no/node-brakes-prometheus.svg
[prom-client-url]: https://github.com/siimon/prom-client
[brakes-url]: https://github.com/awolden/brakes