{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-| Module : Instana.SDK.TracingHeaders Description : A set of tracing headers -} module Instana.SDK.TracingHeaders ( TracingHeaders(..) , TracingLevel(..) , levelHeaderName , maybeStringToTracingLevel , spanIdHeaderName , stringToTracingLevel , traceIdHeaderName , tracingLevelToString ) where import GHC.Generics import qualified Network.HTTP.Types.Header as HTTPHeader traceIdHeaderName :: HTTPHeader.HeaderName traceIdHeaderName = "X-INSTANA-T" spanIdHeaderName :: HTTPHeader.HeaderName spanIdHeaderName = "X-INSTANA-S" levelHeaderName :: HTTPHeader.HeaderName levelHeaderName = "X-INSTANA-L" data TracingLevel = -- |Record calls. Trace -- |Don't record calls. | Suppress deriving (Eq, Generic, Show) stringToTracingLevel :: String -> TracingLevel stringToTracingLevel s = if s == "0" then Suppress else Trace maybeStringToTracingLevel :: Maybe String -> TracingLevel maybeStringToTracingLevel s = if s == Just "0" then Suppress else Trace tracingLevelToString :: TracingLevel -> String tracingLevelToString l = case l of Trace -> "1" Suppress -> "0" -- |A set of tracing headers. data TracingHeaders = TracingHeaders { -- |the trace ID traceId :: Maybe String -- |the span ID , spanId :: Maybe String -- |the tracing level (on/off) , level :: TracingLevel } deriving (Eq, Generic, Show)