packages feed

preamble 0.0.33 → 0.0.34

raw patch · 5 files changed

+20/−21 lines, 5 files

Files

preamble.cabal view
@@ -1,5 +1,5 @@ name:                  preamble-version:               0.0.33+version:               0.0.34 synopsis:              Yet another prelude. description:           A prelude built on basic-prelude. homepage:              https://github.com/swift-nav/preamble
src/Preamble/Ctx.hs view
@@ -11,7 +11,8 @@  import Control.Monad.Logger import Control.Monad.Reader-import Network.Socket+import Network.Socket            hiding (sendTo)+import Network.Socket.ByteString import Preamble.Prelude import Preamble.Trace import Preamble.Types@@ -45,8 +46,8 @@   s <- liftIO $ socket AF_INET Datagram defaultProtocol   h <- liftIO $ fromMaybe "127.0.0.1" <$> lookupEnv "STATS_HOST"   a <- liftIO $ inet_addr h-  let sa = SockAddrInet 8125 a-  runTransT (StatsCtx c s sa) action+  let stat m = void $ sendTo s m $ SockAddrInet 8125 a+  runTransT (StatsCtx c mempty stat) action  -- | Update stats context's preamble. --
src/Preamble/Stats.hs view
@@ -14,21 +14,16 @@   , statsDecrement   ) where -import Network.Socket.ByteString import Preamble.Prelude import Preamble.Types -sendto :: MonadStatsCtx c m => ByteString -> m ()-sendto metric = do-  s <- view scSocket-  a <- view scSockAddr-  liftIO $ void $ sendTo s metric a- stats :: (MonadStatsCtx c m, Show a) => Text -> Text -> a -> Tags -> m ()-stats stat name value tags = do-  let metric = name -:- show value -|- stat-      tagged = intercalate "," $ flip map tags $ uncurry (-:-)-  sendto $ encodeUtf8 $ bool (metric -|- "#" <> tagged) metric $ null tags+stats metric name value tags = do+  labels <- (<> tags) <$> view scLabels+  let statsd = name -:- show value -|- metric+      tagged = intercalate "," $ flip map labels $ uncurry (-:-)+  stat <- view scStat+  liftIO $ stat $ encodeUtf8 $ bool (statsd -|- "#" <> tagged) statsd $ null labels  statsCount :: (MonadStatsCtx c m, Show a) => Text -> a -> Tags -> m () statsCount = stats "c"
src/Preamble/Types/Alias.hs view
@@ -28,6 +28,10 @@ -- type Logger = Loc -> LogSource -> LogLevel -> LogStr -> IO () +-- | Stat+--+type Stat = ByteString -> IO ()+ -- | MonadControl -- type MonadControl m =
src/Preamble/Types/Ctx.hs view
@@ -13,7 +13,6 @@ import Control.Monad.Logger import Control.Monad.Random import Control.Monad.Reader-import Network.Socket import Preamble.Lens import Preamble.Prelude import Preamble.Types.Alias@@ -46,12 +45,12 @@ -- Stats context. -- data StatsCtx = StatsCtx-  { _scCtx      :: Ctx+  { _scCtx    :: Ctx     -- ^ Parent environment.-  , _scSocket   :: Socket-    -- ^ UDP Socket for statsd.-  , _scSockAddr :: SockAddr-    -- ^ UDP SockAddr for statsd.+  , _scLabels :: Tags+    -- ^ Tags to append to every stat.+  , _scStat   :: Stat+    -- ^ Configurable stat function.   }  $(makeClassyConstraints ''StatsCtx [''HasCtx])