@solvro/solvronis-metrics v1.0.0
solvronis metrics
A request metrics collector & exporter, compatible with prometheus, that we built because the prometheus exporter format is way too simple to justify using an existing library.
Collected metrics
- response counts (grouped by route, method and response status)
- response timings (available as summaries on the route+method+status level, the route+method level, and the global level)
How 2 install
To start recording metrics, add the middleware to the global middleware list in start/kernel.ts
, as the first item on the list.
Request timings might not include the run time of middleware above the metrics middleware on the list.
server.use([
() => import("@solvro/solvronis-metrics"),
// any other middleware you may have goes here
]);
To export metrics, register the emitMetrics
method on the middleware as a controller for the GET /metrics
route.
If you want to add additional metrics, you can instead write a custom controller, that appends your own metrics to metrics generated by emitMetrics
.
The emitMetrics
function is also available as a named export for this purpose.
const MetricsMiddleware = () => import("@solvro/solvronis-metrics");
router.get("/metrics", [MetricsMiddleware, "emitMetrics"]);
License
This library is licensed under MPL-2.0.
Special thanx
Special thanks to the editors of the English Wikipedia page on Percentiles, from which I've taken the method of calculating arbitrary percentiles from a sorted list.