1.0.0 • Published 1 month ago

@solvro/solvronis-metrics v1.0.0

Weekly downloads
-
License
MPL-2.0
Repository
github
Last release
1 month ago

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.