{-# LANGUAGE UnicodeSyntax #-}
module Magicbane.Metrics (
module Magicbane.Metrics
, module X
) where
import qualified Control.Monad.Metrics
import Control.Monad.Metrics as X hiding (initialize, initializeWith, run, run')
import System.Metrics as X (Store, registerGcMetrics)
import qualified System.Remote.Monitoring.Wai
import System.Remote.Monitoring.Wai as X (serverMetricStore)
import Network.Wai.Metrics as X
import Data.ByteString (ByteString)
newtype ModMetrics = ModMetrics Metrics
forkMetricsServer ∷ ByteString → Int → IO System.Remote.Monitoring.Wai.Server
forkMetricsServer = System.Remote.Monitoring.Wai.forkServer
newMetricsWith ∷ Store → IO ModMetrics
newMetricsWith x = ModMetrics <$> Control.Monad.Metrics.initializeWith x