packages feed

apiary-helics 1.1.2 → 1.1.3

raw patch · 2 files changed

+19/−2 lines, 2 filesdep +text

Dependencies added: text

Files

apiary-helics.cabal view
@@ -1,5 +1,5 @@ name:                apiary-helics-version:             1.1.2+version:             1.1.3 synopsis:            helics support for apiary web framework. description:         helics support for apiary web framework. license:             MIT@@ -27,6 +27,7 @@                      , monad-control      >=0.3   && <0.4                      , wai                >=3.0   && <3.1                      , bytestring         >=0.10  && <0.11+                     , text               >=1.1   && <1.2                      , data-default-class >=0.0   && <0.1    hs-source-dirs:      src
src/Web/Apiary/Helics.hs view
@@ -1,4 +1,7 @@ {-# LANGUAGE Rank2Types #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NoMonomorphismRestriction #-} @@ -7,6 +10,7 @@     -- * initializer     , HelicsConfig(..)     , initHelics+    , initHerokuHelics     -- * action     -- ** raw     , transactionId@@ -43,9 +47,11 @@  import Data.Apiary.Compat import Data.Apiary.Extension+import Web.Apiary.Heroku import Data.Default.Class import qualified Data.Vault.Lazy as V import qualified Data.ByteString as S+import qualified Data.Text.Encoding as T  data Helics = Helics (V.Key H.TransactionId) ThreadId HelicsConfig @@ -95,10 +101,20 @@  initHelics :: (MonadBaseControl IO m, MonadIO m) => HelicsConfig -> Initializer' m Helics initHelics cnf = initializerBracket' $ \m -> do-    k <- liftIO $ V.newKey+    k <- liftIO V.newKey     control $ \run -> H.withHelics (toHelicsConfig cnf) $ run $ do         tid <- liftIO $ forkIO $ H.sampler (samplerFrequency cnf)         m (Helics k tid cnf)++initHerokuHelics :: (MonadBaseControl IO m, MonadIO m, Has Heroku exts)+                 => HelicsConfig -> Initializer m exts (Helics ': exts)+initHerokuHelics cnf = initializerBracket $ \exts m -> do+    k    <- liftIO V.newKey+    cnf' <- maybe cnf (\key -> cnf { licenseKey = T.encodeUtf8 key } )+        <$> liftIO (getHerokuEnv "NEW_RELIC_LICENSE_KEY" exts)+    control $ \run -> H.withHelics (toHelicsConfig cnf') $ run $ do+        tid <- liftIO $ forkIO $ H.sampler (samplerFrequency cnf')+        m (Helics k tid cnf')  recordMetric :: MonadIO m => S.ByteString -> Double              -> ActionT exts prms m ()