This repository contains a collection of libraries that can be used to instrument a Haskell application with metrics that can be consumed by the Prometheus monitoring system and time series database.
API documentation can be found on each libraries respective hackage page: prometheus-client, prometheus-metrics-ghc, wai-middleware-prometheus.
The purposes of the libraries are outline below, and an example application can be found under the example folder in the root directory of the git repository.
This is the base library that defines the core data types and metrics. It has a few dependencies and is intended to provide the minimum functionality required to interact with Prometheus.
This library provides custom metrics that an application can register that expose information from GHC's runtime system. It is provided as a separate package to keep the GHC specific dependencies out of the prometheus-client library.
This library provides WAI middleware that allows for easy integration of the Prometheus client library into existing WAI apps. The middleware will by default automatically instrument a WAI app with common HTTP metrics and respond to GET requests on the /metrics endpoint.