Remote monitoring of running processes over HTTP
JavaScript CSS Haskell HTML
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
System/Remote Fix a deprecation warning. Jul 31, 2017
assets Make sure data are in order before displaying them Aug 8, 2015
examples Fix Basic example to compile after the package split Oct 15, 2014
.gitignore Add distribution event type Apr 21, 2014
.travis.yml Regenerate .travis.yml. Jul 31, 2017 Changelog update. Jul 31, 2017
LICENSE Initial import Oct 29, 2011
LICENSE.icons Change icons to Creative Commons Attribution 3.0 licensed ones Apr 4, 2012
LICENSE.javascript Add original (non-minified) JS files Apr 13, 2012 Add Hackage and Travis shields. Jul 31, 2017
ekg.cabal Bump the dependency on 'time'. Jul 31, 2017

EKG: Remote monitoring of running processes over HTTP Hackage version Build Status

This library lets you remotely monitor a running process over HTTP. It provides a simple way to integrate a monitoring server into any application.

Getting started

Adding monitoring to your application is simple. Just launch the monitoring server as soon as your application starts

import System.Remote.Monitoring

main = do
     forkServer "localhost" 8000

and then visit http://localhost:8000/ in your web browser.

To make full use out of this module you must first enable GC statistics collection in the run-time system. To enable GC statistics collection, either run your program with


or compile it with


The runtime overhead of -T is very small so it's safe to always leave it enabled.


The monitoring server also lets you to retrieve the stats as JSON. Simply send the server an HTTP GET request with the Accept header set to "application/json":

curl -H "Accept: application/json" http://localhost:8000/

You can use the JSON API to e.g. write applications that monitor other applications.

Get involved!

Please report bugs via the GitHub issue tracker.

Master git repository:

git clone


This library is written and maintained by Johan Tibell,