packages feed

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