input-output-hk / ekg-forward

EKG forwarding library
Apache License 2.0
7 stars 10 forks source link

ekg-forward

GitHub CI

What Is It

ekg-forward is a library allowing to forward EKG system metrics from one process to another one.

Main Use Case

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.

Motivation

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:

  1. ekg provides HTTP server for monitoring, ekg-forward is a lightweight library without HTTP and REST API.
  2. ekg-forward is based on Haskell typed protocol, which provides type-level guarantees of correctness.
  3. ekg-forward's network layer uses ouroboros-network-framework package which supports both network sockets and local pipes for connection.

How To Use It

You can find demo programs in the demo directory.

Limitations

Please note that not all EKG metrics are supported in the current release:

  1. Gauge - supported
  2. Label - supported
  3. Counter - supported
  4. Distribution - not supported