lightstep-haskell 0.6.1 → 0.7.0
raw patch · 5 files changed
+19/−8 lines, 5 files
Files
- lightstep-haskell.cabal +1/−1
- src/LightStep/Config.hs +3/−2
- src/LightStep/Diagnostics.hs +8/−1
- src/LightStep/HighLevel/IO.hs +5/−4
- stress-test/Main.hs +2/−0
lightstep-haskell.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.4 name: lightstep-haskell-version: 0.6.1+version: 0.7.0 synopsis: LightStep OpenTracing client library description: LightStep OpenTracing client library. Uses GRPC transport via proto-lens. category: Tools
src/LightStep/Config.hs view
@@ -17,7 +17,8 @@ lsToken :: T.Text, lsServiceName :: T.Text, lsGlobalTags :: [(T.Text, T.Text)],- lsGracefulShutdownTimeoutSeconds :: Int+ lsGracefulShutdownTimeoutSeconds :: Int,+ lsMinimumBatchSize :: Int } lookupOneOfEnvs :: [String] -> IO (Maybe String)@@ -39,7 +40,7 @@ host <- fromMaybe "ingest.lightstep.com" <$> lookupOneOfEnvs ["LIGHTSTEP_HOST", "OPENTRACING_LIGHTSTEP_COLLECTOR_HOST"] port <- maybe 443 read <$> lookupOneOfEnvs ["LIGHTSTEP_PORT", "OPENTRACING_LIGHTSTEP_COLLECTOR_PORT"] service <- fromMaybe "example-haskell-service" <$> lookupOneOfEnvs ["LIGHTSTEP_SERVICE", "OPENTRACING_LIGHTSTEP_COMPONENT_NAME"]- pure $ Just $ LightStepConfig host port (T.pack t) (T.pack service) global_tags 5+ pure $ Just $ LightStepConfig host port (T.pack t) (T.pack service) global_tags 5 1 Nothing -> do hPutStrLn stderr "LIGHTSTEP_ACCESS_TOKEN environment variable not defined" pure Nothing
src/LightStep/Diagnostics.hs view
@@ -32,6 +32,10 @@ rejectedSpanCountVar = unsafePerformIO $ newTVarIO 0 {-# NOINLINE rejectedSpanCountVar #-} +sentBatchesCountVar :: TVar Int+sentBatchesCountVar = unsafePerformIO $ newTVarIO 0+{-# NOINLINE sentBatchesCountVar #-}+ data Diagnostics = Diagnostics { diagReconnectCount :: !Int,@@ -39,8 +43,10 @@ diagFinishedSpanCount :: !Int, diagDroppedSpanCount :: !Int, diagReportedSpanCount :: !Int,- diagRejectedSpanCount :: !Int+ diagRejectedSpanCount :: !Int,+ diagSentBatchesCount :: !Int }+ deriving (Show) getDiagnostics :: IO Diagnostics getDiagnostics =@@ -52,3 +58,4 @@ <*> readTVar droppedSpanCountVar <*> readTVar reportedSpanCountVar <*> readTVar rejectedSpanCountVar+ <*> readTVar sentBatchesCountVar
src/LightStep/HighLevel/IO.hs view
@@ -122,7 +122,7 @@ {-# NOINLINE globalSharedMutableSingletonState #-} globalSharedMutableSingletonState :: TBQueue Span-globalSharedMutableSingletonState = unsafePerformIO $ newTBQueueIO 100+globalSharedMutableSingletonState = unsafePerformIO $ newTBQueueIO 1000 withSingletonLightStep :: LightStepConfig -> IO () -> IO () withSingletonLightStep cfg action = do@@ -132,10 +132,11 @@ let work = do d_ "Getting more spans" sps <- atomically $ do- x <- readTBQueue globalSharedMutableSingletonState- xs <- flushTBQueue globalSharedMutableSingletonState- pure (x : xs)+ some_spans <- replicateM (lsMinimumBatchSize cfg) $ readTBQueue globalSharedMutableSingletonState+ some_more_spans <- flushTBQueue globalSharedMutableSingletonState+ pure (some_spans <> some_more_spans) d_ $ "Got " <> show (length sps) <> " spans"+ inc 1 sentBatchesCountVar reportSpansRes <- tryAny (reportSpans client sps) case reportSpansRes of Right () ->
stress-test/Main.hs view
@@ -4,6 +4,7 @@ import Control.Concurrent.Async import Control.Monad import GHC.Stats+import LightStep.Diagnostics import LightStep.HighLevel.IO (LogEntryKey (..), addLog, getEnvConfig, setTag, withSingletonLightStep, withSpan) import System.Exit import Text.Printf@@ -67,4 +68,5 @@ replicateM_ 1000 $ do _ <- async seriousBusinessMain threadDelay 10000+ getDiagnostics >>= print putStrLn "All done"