moleculer-prometheus
Moleculer metrics module for Prometheus.
Features
- collect default Node.js metrics.
- measure service calls.
- support custom metrics.
- Grafana dashboard example.
Install
$ npm install moleculer-prometheus
Usage
// services/metrics.prometheus.service.js const PromService = ; moduleexports = mixins: PromService settings: port: 3030 collectDefaultMetrics: true timeout: 5 * 1000 ; // moleculer.config.jsmoduleexports = // ... metrics: true // ...
Add custom metric
// services/metrics.prometheus.jsconst PromService = ; moduleexports = mixins: PromService settings: metrics: "custom_value": type: "Gauge" help: "Moleculer Prometheus custom metric" ;
Broadcast a metrics.update
event to set the metric value
broker;
Settings
Property | Type | Default | Description |
---|---|---|---|
port |
Number |
3030 |
Exposed HTTP port. |
collectDefaultMetrics |
Boolean |
true |
Enable to collect default metrics. |
timeout |
Number |
10000 |
Timeout option for 'collectDefaultMetrics' in milliseconds. |
metrics |
Object |
{} |
Metric definitions. |
Default Moleculer metrics
Name | Type | Labels | Description |
---|---|---|---|
moleculer_nodes_total |
Gauge | - | Moleculer nodes count |
moleculer_services_total |
Gauge | - | Moleculer services count |
moleculer_actions_total |
Gauge | - | Moleculer actions count |
moleculer_events_total |
Gauge | - | Moleculer event subscription count |
moleculer_nodes |
Gauge | nodeID , type , version , langVersion |
Moleculer node list |
moleculer_action_endpoints_total |
Gauge | action |
Moleculer action endpoints |
moleculer_service_endpoints_total |
Gauge | service , version |
Moleculer service endpoints |
moleculer_event_endpoints_total |
Gauge | event , group |
Moleculer event endpoints |
moleculer_req_total |
Counter | action , service , nodeID |
Moleculer request count |
moleculer_req_errors_total |
Counter | action , service , nodeID , errorCode , errorName , errorType |
Moleculer request error count |
moleculer_req_duration_ms |
Histogram | action , service , nodeID |
Moleculer request durations |
Methods
update
Update a metric value.
Parameters
Property | Type | Default | Description |
---|---|---|---|
name |
String |
required | |
method |
String |
required | |
labels |
Object |
- | |
value |
any |
required | |
timestamp |
any |
required |
Test
$ npm test
In development with watching
$ npm run ci
License
The project is available under the MIT license.
Contact
Copyright (c) 2016-2018 MoleculerJS