A simple and easy to use module for Prometheus metric exporting.
interfaces | ||
objects | ||
test | ||
.gitignore | ||
.npmignore | ||
index.ts | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json |
simple-prom
A simple and easy to use module for Prometheus metric exporting.
Usage
Create an instance of SimpleProm using SimpleProm.init
import SimpleProm from "simple-prom";
const instance = SimpleProm.init({});
See IConfig for config values to use in SimpleProm.init
Self hosted usage
SimpleProm can self host it's own http server for metrics polling, simple pass "selfHost: true" in the init config.
const instance = SimpleProm.init({
selfHost: true,
selfHostPort: 1337 // Optional, defaults to 9100
});
Use your own http server
Simply passing an empty config {}
will get you what you want here, to get the metrics data call getMetricText()
on your SimpleProm instance.
You can then use it as you normally would with anything, in this example with express:
const instance = SimpleProm.init({});
req.get("/metrics", (req, res) => res.end(instance.getMetricText()));
Creating metrics
To add a metric call the addMetric
method on your SimpleProm instance, passing in a metric object.
Currently supported metric types are:
Support for all metric types is planned.
Example for Counter:
const instance = SimpleProm.init({});
const httpRequests = instance.addMetric(new Counter("app_http_requests_handled"));
httpRequests.setHelpText("The number of HTTP requests handled since startup");
httpRequests.add(1);
Example for Gauge:
const instance = SimpleProm.init({});
const onlineUsers = instance.addMetric(new Gauge("app_online_users"));
onlineUsers.setHelpText("The number of online users");
onlineUsers.Value = 1234;