module OpenTelemetry.LightStep where
import Control.Monad.Catch
import Control.Monad.IO.Class
import OpenTelemetry.Common
import OpenTelemetry.Implicit
import OpenTelemetry.LightStep.Config
import OpenTelemetry.LightStep.ZipkinExporter
import System.IO
withEnvConfigLightStepOpenTelemetry :: (MonadIO m, MonadMask m) => m a -> m a
withEnvConfigLightStepOpenTelemetry action = do
mcfg <- getEnvConfig
case mcfg of
Just cfg -> do
exporter <- createLightStepSpanExporter cfg
let otelConfig = OpenTelemetryConfig {otcSpanExporter = exporter}
withOpenTelemetry otelConfig action
Nothing -> do
liftIO $ hPutStrLn stderr "Warning: LightStep exporter is not configured"
action