ekg-forward is a library allowing to forward EKG system metrics from one process to another one.
You have one Haskell application that collects its EKG system metrics (both predefined and custom) and another Haskell application that needs to receive those metrics. You can think of the first application as a Forwarder and the second one as an Acceptor.
There is ekg package that already lets you remotely monitor a running Haskell process over HTTP. But there are three main differences between ekg and ekg-forward:
ekgprovides HTTP server for monitoring,ekg-forwardis a lightweight library without HTTP and REST API.ekg-forwardis based on Haskell typed protocol, which provides type-level guarantees of correctness.ekg-forward's network layer usesouroboros-network-frameworkpackage which supports both network sockets and local pipes for connection.
You can find demo programs in the demo directory.
Please note that not all EKG metrics are supported in the current release:
- Gauge - supported
- Label - supported
- Counter - supported
- Distribution - does not supported