yam-0.5.6: src/Data/Opentracing/Types.hs
module Data.Opentracing.Types where
import Data.ByteString (ByteString)
import qualified Data.HashMap.Lazy as HM
import Data.Scientific
import Data.Text (Text)
data SpanTag
= TagString Text
| TagBool Bool
| TagNum Scientific
deriving (Eq, Show)
data SpanContext = SpanContext
{ traceId :: ByteString
, baggage :: HM.HashMap Text (Maybe Text)
} deriving (Eq, Show)
data SpanReferenceType
= FollowsFrom
| ChildOf
deriving (Eq, Show)
data SpanReference = SpanReference
{ referenceType :: SpanReferenceType
, parentId :: ByteString
} deriving (Eq, Show)
data Span = Span
{ spanId :: ByteString
, name :: Text
, startTime :: Int
, finishTime :: Maybe Int
, tags :: HM.HashMap Text SpanTag
, logs :: HM.HashMap Text Text
, context :: SpanContext
, references :: [SpanReference]
} deriving (Eq, Show)