Skip to content
This repository was archived by the owner on Apr 7, 2022. It is now read-only.

Commit 248b99a

Browse files
committed
Handle more environment variable naming conventions in getEnvConfig
1 parent 8e72b02 commit 248b99a

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/LightStep/Config.hs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,26 @@ data LightStepConfig
2020
lsGracefulShutdownTimeoutSeconds :: Int
2121
}
2222

23+
lookupOneOfEnvs :: [String] -> IO (Maybe String)
24+
lookupOneOfEnvs names = asum <$> traverse lookupEnv names
25+
26+
getEnvTagsWithPrefix :: T.Text -> IO [(T.Text, T.Text)]
27+
getEnvTagsWithPrefix prefix =
28+
mapMaybe unprefix <$> getEnvironment
29+
where
30+
unprefix ((T.stripPrefix prefix . T.pack) -> Just k, v) = Just (k, T.pack v)
31+
unprefix _ = Nothing
32+
2333
getEnvConfig :: MonadIO m => m (Maybe LightStepConfig)
2434
getEnvConfig = liftIO $ do
25-
maybe_token_from_env <- asum <$> traverse lookupEnv ["LIGHTSTEP_TOKEN", "LIGHTSTEP_ACCESS_TOKEN"]
35+
maybe_token_from_env <- lookupOneOfEnvs ["LIGHTSTEP_TOKEN", "LIGHTSTEP_ACCESS_TOKEN", "OPENTRACING_LIGHTSTEP_ACCESS_TOKEN"]
36+
global_tags <- getEnvTagsWithPrefix "OPENTRACING_TAG_"
2637
case maybe_token_from_env of
2738
Just t -> do
28-
host <- fromMaybe "ingest.lightstep.com" <$> lookupEnv "LIGHTSTEP_HOST"
29-
port <- maybe 443 read <$> lookupEnv "LIGHTSTEP_PORT"
30-
service <- fromMaybe "example-haskell-service" <$> lookupEnv "LIGHTSTEP_SERVICE"
31-
pure $ Just $ LightStepConfig host port (T.pack t) (T.pack service) [] 5
39+
host <- fromMaybe "ingest.lightstep.com" <$> lookupOneOfEnvs ["LIGHTSTEP_HOST", "OPENTRACING_LIGHTSTEP_COLLECTOR_HOST"]
40+
port <- maybe 443 read <$> lookupOneOfEnvs ["LIGHTSTEP_PORT", "OPENTRACING_LIGHTSTEP_COLLECTOR_PORT"]
41+
service <- fromMaybe "example-haskell-service" <$> lookupOneOfEnvs ["LIGHTSTEP_SERVICE", "OPENTRACING_LIGHTSTEP_COMPONENT_NAME"]
42+
pure $ Just $ LightStepConfig host port (T.pack t) (T.pack service) global_tags 5
3243
Nothing -> do
3344
hPutStrLn stderr "LIGHTSTEP_ACCESS_TOKEN environment variable not defined"
3445
pure Nothing

src/LightStep/HighLevel/IO.hs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import Proto.Collector_Fields
2626
import System.IO.Unsafe
2727
import System.Timeout
2828
import LightStep.Config
29-
import Data.Typeable
3029

3130
{-# NOINLINE globalSharedMutableSpanStacks #-}
3231
globalSharedMutableSpanStacks :: MVar (HM.HashMap ThreadId [Span])

0 commit comments

Comments
 (0)