module Network.Metric (
SinkType(..)
, Group
, Bucket
, Metric(..)
, Measurable(..)
, Encodable(..)
, Sink(..)
, AnyMeasurable(..)
, AnySink(..)
, open
) 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.SinkHandle as HandleSink
data SinkType =
Ganglia
| Graphite
| Statsd
| Stdout
deriving (Data, Typeable, Show)
open :: SinkType -> Host -> HostName -> PortNumber -> IO AnySink
open Ganglia = GangliaSink.open
open Graphite = GraphiteSink.open
open Statsd = StatsdSink.open
open Stdout = HandleSink.open