@@ -23,13 +23,11 @@ import qualified Control.Retry as Retry
23import qualified Data.Aeson as A
23import qualified Data.Aeson as A
24import qualified Data.Binary.Builder as BB
24import qualified Data.Binary.Builder as BB
25import qualified Data.ByteString.Lazy as BSL
25import qualified Data.ByteString.Lazy as BSL
27import qualified Data.Pool as Pool
26import qualified Data.Pool as Pool
28import Data.Text (Text)
27import Data.Text (Text)
29import qualified Data.Text.Encoding as T
28import qualified Data.Text.Encoding as T
30import qualified Data.Text.Lazy.Builder as B
29import qualified Data.Text.Lazy.Builder as B
31import Data.Time (NominalDiffTime)
30import Data.Time (NominalDiffTime)
32−import Debug.Trace --TODO: drop
33import Katip
31import Katip
34import Katip.Core (LocJs (..))
32import Katip.Core (LocJs (..))
35import qualified Network as Net
33import qualified Network as Net
@@ -45,8 +43,6 @@ newtype APIKey = APIKey
45 } deriving (Show, Eq)
43 } deriving (Show, Eq)
50data DataDogAuth =
46data DataDogAuth =
51 NoAuthLocal
47 NoAuthLocal
52 -- ^ Writing to the local agent, no auth required
48 -- ^ Writing to the local agent, no auth required
@@ -136,8 +132,9 @@ mkDataDogScribe settings sev verb = do
136 (dataDogScribeSettings_connectionKeepalive settings)
132 (dataDogScribeSettings_connectionKeepalive settings)
137 (dataDogScribeSettings_connsPerStripe settings)
133 (dataDogScribeSettings_connsPerStripe settings)
138 pure $ Scribe
134 pure $ Scribe
139− { liPush = pushPool (dataDogScribeSettings_retry settings) pool keyBuilder sev verb
135+ { liPush = pushPool (dataDogScribeSettings_retry settings) pool keyBuilder verb
140 , scribeFinalizer = Pool.destroyAllResources pool
136 , scribeFinalizer = Pool.destroyAllResources pool
137+ , scribePermitItem = permitItem sev
143 !keyBuilder = case dataDogScribeSettings_auth settings of
140 !keyBuilder = case dataDogScribeSettings_auth settings of
@@ -151,18 +148,16 @@ pushPool
151 -> Pool.Pool C.Connection
148 -> Pool.Pool C.Connection
152 -> Maybe BB.Builder
149 -> Maybe BB.Builder
153 -- ^ Rendered API key
150 -- ^ Rendered API key
155 -> Verbosity
151 -> Verbosity
156 -> Item a
152 -> Item a
158−pushPool retryPolicy pool token sev verb item
154+pushPool retryPolicy pool token verb item =
159− | permitItem sev item = void $ Retry.retrying retryPolicy (\_status shouldRetry -> pure (traceShowId shouldRetry)) $ \_status -> do
155+ void $ Retry.retrying retryPolicy (\_status shouldRetry -> pure shouldRetry) $ \_status -> do
160− res <- EX.tryAny $ Pool.withResource pool $ \conn -> do
156+ res <- EX.tryAny $ Pool.withResource pool $ \conn -> do
161− C.connectionPut conn rendered
157+ C.connectionPut conn rendered
162− pure $ case res of
158+ pure $ case res of
163− Left e -> traceShow e True
159+ Left _ -> True
164− Right _ -> False
160+ Right _ -> False
165− | otherwise = pure ()
167 payloadBuilder = A.fromEncoding (encodeDatadog verb item) <> "\n"
162 payloadBuilder = A.fromEncoding (encodeDatadog verb item) <> "\n"
168 messageBuilder = case token of
163 messageBuilder = case token of