lightstep-haskell 0.1.4 → 0.1.5
raw patch · 3 files changed
+25/−8 lines, 3 files
Files
lightstep-haskell.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.4 name: lightstep-haskell-version: 0.1.4+version: 0.1.5 synopsis: LightStep OpenTracing client library description: LightStep OpenTracing client library. Uses GRPC transport via proto-lens. category: Tools
src/LightStep/HighLevel/IO.hs view
@@ -97,10 +97,11 @@ shutdown client = do d_ "Getting the last spans before shutdown" spans <- liftIO $ atomically $ flushTBQueue globalSharedMutableSingletonState- d_ $ "Got " <> show (length spans) <> " spans"- when (not $ null spans) $+ when (not $ null spans) $ do+ d_ $ "Got " <> show (length spans) <> " spans" reportSpans client spans- d_ $ "Reported " <> show (length spans) <> " spans"+ d_ $ "Reported " <> show (length spans) <> " spans"+ d_ "No more spans" closeClient client d_ "Client closed" liftIO $ putMVar doneVar ()@@ -113,10 +114,19 @@ work client loop loop- pure () submitSpan :: Span -> IO ()-submitSpan = atomically . writeTBQueue globalSharedMutableSingletonState+submitSpan sp = do+ written <- atomically $ tryWriteTBQueue globalSharedMutableSingletonState sp+ when (not written) $ do+ d_ "internal span queue is full, dropping the span"++tryWriteTBQueue :: TBQueue a -> a -> STM Bool+tryWriteTBQueue q a = isFullTBQueue q >>= \case+ True -> pure False+ _ -> do+ writeTBQueue q a+ pure True -- TODO: handle span batches larger that queue size submitSpans :: Foldable f => f Span -> IO ()
src/LightStep/LowLevel.hs view
@@ -31,6 +31,7 @@ reportSpans :: LightStepClient -> [Span] -> ExceptT ClientError IO () reportSpans (LightStepClient grpc token rep) sps = do+ d_ $ show ("RPC timeout", (\(Timeout t) -> t) $ _grpcClientTimeout grpc) ret <- rawUnary (RPC :: RPC CollectorService "report")@@ -40,13 +41,19 @@ & spans .~ sps & reporter .~ rep )- d_ (show ret)+ d_ $ show ret -- FIXME: handle errors pure () mkClient :: LightStepConfig -> ClientIO LightStepClient mkClient LightStepConfig {..} = do- grpc <- setupGrpcClient ((grpcClientConfigSimple lsHostName lsPort True) {_grpcClientConfigCompression = compression})+ grpc <-+ setupGrpcClient+ ( (grpcClientConfigSimple lsHostName lsPort True)+ { _grpcClientConfigCompression = compression,+ _grpcClientConfigTimeout = Timeout 5 -- seconds+ }+ ) pure $ LightStepClient grpc lsToken rep where compression = if False then gzip else uncompressed