moleculer-prometheus
v0.2.5
Published
Moleculer metrics module for Prometheus.
Downloads
460
Readme
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 = require("moleculer-prometheus");
module.exports = {
mixins: [PromService],
settings: {
port: 3030,
collectDefaultMetrics: true,
timeout: 5 * 1000,
}
};
// moleculer.config.js
module.exports = {
// ...
metrics: true,
// ...
}
Add custom metric
// services/metrics.prometheus.js
const PromService = require("moleculer-prometheus");
module.exports = {
mixins: [PromService],
settings: {
metrics: {
"custom_value": { type: "Gauge", help: "Moleculer Prometheus custom metric" }
}
}
};
Broadcast a metrics.update
event to set the metric value
broker.broadcast("metrics.update", {
name: "custom_value",
method: "set",
value: Math.round(Math.random() * 100)
});
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