packages feed

hs-opentelemetry-awsxray-0.1.0.0: library/OpenTelemetry/Trace/Setup/Lens.hs

-- | Lenses for modifying a 'TracerProviderOptions'
module OpenTelemetry.Trace.Setup.Lens
  ( idGeneratorL
  , samplerL
  , resourcesL
  , attributeLimitsL
  , spanLimitsL
  , propagatorL
  , loggerL
  ) where

import Prelude

import Data.Text (Text)
import Lens.Micro (Lens', lens)
import Network.HTTP.Types.Header (RequestHeaders, ResponseHeaders)
import OpenTelemetry.Attributes (AttributeLimits)
import OpenTelemetry.Context (Context)
import OpenTelemetry.Logging.Core (Log)
import OpenTelemetry.Propagator (Propagator)
import OpenTelemetry.Resource (MaterializedResources)
import OpenTelemetry.Trace (TracerProviderOptions(..))
import OpenTelemetry.Trace.Core (SpanLimits)
import OpenTelemetry.Trace.Id.Generator (IdGenerator)
import OpenTelemetry.Trace.Sampler (Sampler)

idGeneratorL :: Lens' TracerProviderOptions IdGenerator
idGeneratorL = lens tracerProviderOptionsIdGenerator
  $ \x y -> x { tracerProviderOptionsIdGenerator = y }

samplerL :: Lens' TracerProviderOptions Sampler
samplerL = lens tracerProviderOptionsSampler
  $ \x y -> x { tracerProviderOptionsSampler = y }

resourcesL :: Lens' TracerProviderOptions MaterializedResources
resourcesL = lens tracerProviderOptionsResources
  $ \x y -> x { tracerProviderOptionsResources = y }

attributeLimitsL :: Lens' TracerProviderOptions AttributeLimits
attributeLimitsL = lens tracerProviderOptionsAttributeLimits
  $ \x y -> x { tracerProviderOptionsAttributeLimits = y }

spanLimitsL :: Lens' TracerProviderOptions SpanLimits
spanLimitsL = lens tracerProviderOptionsSpanLimits
  $ \x y -> x { tracerProviderOptionsSpanLimits = y }

propagatorL
  :: Lens'
       TracerProviderOptions
       (Propagator Context RequestHeaders ResponseHeaders)
propagatorL = lens tracerProviderOptionsPropagators
  $ \x y -> x { tracerProviderOptionsPropagators = y }

loggerL :: Lens' TracerProviderOptions (Log Text -> IO ())
loggerL = lens tracerProviderOptionsLogger
  $ \x y -> x { tracerProviderOptionsLogger = y }