@@ -20,15 +20,26 @@ data LightStepConfig
20
20
lsGracefulShutdownTimeoutSeconds :: Int
21
21
}
22
22
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
+
23
33
getEnvConfig :: MonadIO m => m (Maybe LightStepConfig )
24
34
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_"
26
37
case maybe_token_from_env of
27
38
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
32
43
Nothing -> do
33
44
hPutStrLn stderr " LIGHTSTEP_ACCESS_TOKEN environment variable not defined"
34
45
pure Nothing
0 commit comments