ekg-push-0.0.2: README.md
# Modifications of ekg-statsd by Johan Tibell to provide a generic "push" framework.
You will notice this is almost identical to ekg-statsd. It's just me trying to abstract away the basic functionality found in ekg-statsd, so not to have to duplicate this code anywhere else. Eventually I may try to clean up this "abstraction" and create a PR in ekg-core.
# TODO: Soon
So, the idea of ekg-push is to create a simple framework so that I can create agents such as:
- ekg-push-redis
- ekg-push-file
- ekg-push-statsd
- ekg-push-uberlog
etc..
Push agents simply 'subscribe' to the push handle returned by forkPush. Once subscribed, agents call consume and handle the Metric.Sample data how they want.
# Installation
You can just type 'make' to install ekg-push into a local sandbox. Or you can use cabal:
```
cabal install ekg-push
```
# Getting started
See examples/basic.hs
```
main :: IO ()
main = do
store <- newStore
registerGcMetrics store
iters <- createCounter "iterations" store
push <- forkPush defaultPushOptions { prefix = "pfx", suffix = "sfx" } store
ch1 <- subscribe push
_ <- forkIO $ forever $ do
msg <- consume ch1
putStrLn $ "subscription #1: " ++ show msg
let loop n = do
evaluate $ mean [1..n]
Counter.inc iters
threadDelay 2000
loop n
loop 1000000
```
-- adarqui