opentelemetry-lightstep-0.6.0: src/OpenTelemetry/Lightstep/Exporter.hs
{-# LANGUAGE OverloadedStrings #-}
module OpenTelemetry.Lightstep.Exporter where
import Control.Monad.IO.Class
import OpenTelemetry.Common
import OpenTelemetry.Lightstep.Config
import OpenTelemetry.ZipkinExporter
import Text.Printf
createLightstepSpanExporter :: MonadIO m => LightstepConfig -> m (Exporter Span)
createLightstepSpanExporter LightstepConfig {..} = liftIO do
let zcfg =
ZipkinConfig
{ zEndpoint = printf "https://%s:%d/api/v2/spans" lsHostName (fromIntegral lsPort :: Int),
zServiceName = lsServiceName,
zGlobalTags =
[ ("lightstep.component", lsServiceName),
("lightstep.access_token", lsToken)
],
zSpanQueueSize = lsSpanQueueSize,
zGracefulShutdownTimeoutSeconds = lsGracefulShutdownTimeoutSeconds
}
createZipkinSpanExporter zcfg