module Network.Metric (
SinkType(..)
, open
, Sink(push, close)
, Group
, Bucket
, Metric(..)
) where
import Data.Data (Data, Typeable)
import Network.Metric.Internal
import qualified Network.Metric.Sink.Ganglia as GangliaSink
import qualified Network.Metric.Sink.Graphite as GraphiteSink
import qualified Network.Metric.Sink.Statsd as StatsdSink
import qualified Network.Metric.Sink.Stdout as StdoutSink
data SinkType =
Ganglia
| Graphite
| Statsd
| Stdout
deriving (Data, Typeable, Show)
open :: SinkType -> String -> String -> IO MetricSink
open Ganglia = GangliaSink.open
open Graphite = GraphiteSink.open
open Statsd = StatsdSink.open
open Stdout = StdoutSink.open