58 lines
1.8 KiB
Markdown
58 lines
1.8 KiB
Markdown
# simple-prom
|
|
|
|
A simple and easy to use module for Prometheus metric exporting.
|
|
|
|
## Usage
|
|
|
|
Create an instance of SimpleProm using `SimpleProm.init`
|
|
```ts
|
|
import SimpleProm from "simple-prom";
|
|
|
|
const instance = SimpleProm.init({});
|
|
```
|
|
See [IConfig](https://git.eusv.net/Catgirl.Enterprises/simple-prom/src/branch/master/interfaces/IConfig.ts) 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.
|
|
```ts
|
|
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:
|
|
```ts
|
|
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:
|
|
- [Counter](https://prometheus.io/docs/concepts/metric_types/#counter)
|
|
- [Gauge](https://prometheus.io/docs/concepts/metric_types/#gauge)
|
|
|
|
Support for all metric types is planned.
|
|
|
|
Example for Counter:
|
|
```ts
|
|
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:
|
|
```ts
|
|
const instance = SimpleProm.init({});
|
|
|
|
const onlineUsers = instance.addMetric(new Gauge("app_online_users"));
|
|
onlineUsers.setHelpText("The number of online users");
|
|
onlineUsers.Value = 1234;
|
|
``` |