@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.