{-# LANGUAGE DeriveGeneric #-}
module Instana.SDK.Span.EntrySpan
( EntrySpan(..)
, addData
, addToErrorCount
, correlationId
, correlationType
, errorCount
, parentId
, serviceName
, setCorrelationId
, setCorrelationType
, setServiceName
, setSynthetic
, setTpFlag
, setW3cTraceContext
, spanData
, spanId
, spanName
, synthetic
, tpFlag
, timestamp
, traceId
, w3cTraceContext
) where
import Data.Aeson (Value)
import Data.Text (Text)
import GHC.Generics
import Instana.SDK.Internal.Id (Id)
import Instana.SDK.Internal.W3CTraceContext (W3CTraceContext)
import Instana.SDK.Span.NonRootEntry (NonRootEntry)
import qualified Instana.SDK.Span.NonRootEntry as NonRootEntry
import Instana.SDK.Span.RootEntry (RootEntry)
import qualified Instana.SDK.Span.RootEntry as RootEntry
data EntrySpan =
RootEntrySpan RootEntry
| NonRootEntrySpan NonRootEntry
deriving (EntrySpan -> EntrySpan -> Bool
(EntrySpan -> EntrySpan -> Bool)
-> (EntrySpan -> EntrySpan -> Bool) -> Eq EntrySpan
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EntrySpan -> EntrySpan -> Bool
$c/= :: EntrySpan -> EntrySpan -> Bool
== :: EntrySpan -> EntrySpan -> Bool
$c== :: EntrySpan -> EntrySpan -> Bool
Eq, (forall x. EntrySpan -> Rep EntrySpan x)
-> (forall x. Rep EntrySpan x -> EntrySpan) -> Generic EntrySpan
forall x. Rep EntrySpan x -> EntrySpan
forall x. EntrySpan -> Rep EntrySpan x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep EntrySpan x -> EntrySpan
$cfrom :: forall x. EntrySpan -> Rep EntrySpan x
Generic, Int -> EntrySpan -> ShowS
[EntrySpan] -> ShowS
EntrySpan -> String
(Int -> EntrySpan -> ShowS)
-> (EntrySpan -> String)
-> ([EntrySpan] -> ShowS)
-> Show EntrySpan
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EntrySpan] -> ShowS
$cshowList :: [EntrySpan] -> ShowS
show :: EntrySpan -> String
$cshow :: EntrySpan -> String
showsPrec :: Int -> EntrySpan -> ShowS
$cshowsPrec :: Int -> EntrySpan -> ShowS
Show)
traceId :: EntrySpan -> Id
traceId :: EntrySpan -> Id
traceId entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Id
RootEntry.spanAndTraceId RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry -> NonRootEntry -> Id
NonRootEntry.traceId NonRootEntry
entry
spanId :: EntrySpan -> Id
spanId :: EntrySpan -> Id
spanId entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Id
RootEntry.spanAndTraceId RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry -> NonRootEntry -> Id
NonRootEntry.spanId NonRootEntry
entry
parentId :: EntrySpan -> Maybe Id
parentId :: EntrySpan -> Maybe Id
parentId entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan _ -> Maybe Id
forall a. Maybe a
Nothing
NonRootEntrySpan entry :: NonRootEntry
entry -> Id -> Maybe Id
forall a. a -> Maybe a
Just (Id -> Maybe Id) -> Id -> Maybe Id
forall a b. (a -> b) -> a -> b
$ NonRootEntry -> Id
NonRootEntry.parentId NonRootEntry
entry
spanName :: EntrySpan -> Text
spanName :: EntrySpan -> Text
spanName entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Text
RootEntry.spanName RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry -> NonRootEntry -> Text
NonRootEntry.spanName NonRootEntry
entry
timestamp :: EntrySpan -> Int
timestamp :: EntrySpan -> Int
timestamp entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Int
RootEntry.timestamp RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry -> NonRootEntry -> Int
NonRootEntry.timestamp NonRootEntry
entry
errorCount :: EntrySpan -> Int
errorCount :: EntrySpan -> Int
errorCount entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Int
RootEntry.errorCount RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry -> NonRootEntry -> Int
NonRootEntry.errorCount NonRootEntry
entry
addToErrorCount :: Int -> EntrySpan -> EntrySpan
addToErrorCount :: Int -> EntrySpan -> EntrySpan
addToErrorCount increment :: Int
increment entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry ->
RootEntry -> EntrySpan
RootEntrySpan (RootEntry -> EntrySpan) -> RootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ Int -> RootEntry -> RootEntry
RootEntry.addToErrorCount Int
increment RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry ->
NonRootEntry -> EntrySpan
NonRootEntrySpan (NonRootEntry -> EntrySpan) -> NonRootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ Int -> NonRootEntry -> NonRootEntry
NonRootEntry.addToErrorCount Int
increment NonRootEntry
entry
serviceName :: EntrySpan -> Maybe Text
serviceName :: EntrySpan -> Maybe Text
serviceName entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Maybe Text
RootEntry.serviceName RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry -> NonRootEntry -> Maybe Text
NonRootEntry.serviceName NonRootEntry
entry
setServiceName :: Text -> EntrySpan -> EntrySpan
setServiceName :: Text -> EntrySpan -> EntrySpan
setServiceName serviceName_ :: Text
serviceName_ entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry ->
RootEntry -> EntrySpan
RootEntrySpan (RootEntry -> EntrySpan) -> RootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ Text -> RootEntry -> RootEntry
RootEntry.setServiceName Text
serviceName_ RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry ->
NonRootEntry -> EntrySpan
NonRootEntrySpan (NonRootEntry -> EntrySpan) -> NonRootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ Text -> NonRootEntry -> NonRootEntry
NonRootEntry.setServiceName Text
serviceName_ NonRootEntry
entry
correlationType :: EntrySpan -> Maybe Text
correlationType :: EntrySpan -> Maybe Text
correlationType entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Maybe Text
RootEntry.correlationType RootEntry
entry
NonRootEntrySpan _ -> Maybe Text
forall a. Maybe a
Nothing
setCorrelationType :: Text -> EntrySpan -> EntrySpan
setCorrelationType :: Text -> EntrySpan -> EntrySpan
setCorrelationType correlationType_ :: Text
correlationType_ entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry ->
RootEntry -> EntrySpan
RootEntrySpan (RootEntry -> EntrySpan) -> RootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ Text -> RootEntry -> RootEntry
RootEntry.setCorrelationType Text
correlationType_ RootEntry
entry
NonRootEntrySpan _ ->
EntrySpan
entrySpan
correlationId :: EntrySpan -> Maybe Text
correlationId :: EntrySpan -> Maybe Text
correlationId entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Maybe Text
RootEntry.correlationId RootEntry
entry
NonRootEntrySpan _ -> Maybe Text
forall a. Maybe a
Nothing
setCorrelationId :: Text -> EntrySpan -> EntrySpan
setCorrelationId :: Text -> EntrySpan -> EntrySpan
setCorrelationId correlationId_ :: Text
correlationId_ entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry ->
RootEntry -> EntrySpan
RootEntrySpan (RootEntry -> EntrySpan) -> RootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ Text -> RootEntry -> RootEntry
RootEntry.setCorrelationId Text
correlationId_ RootEntry
entry
NonRootEntrySpan _ ->
EntrySpan
entrySpan
synthetic :: EntrySpan -> Bool
synthetic :: EntrySpan -> Bool
synthetic entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Bool
RootEntry.synthetic RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry -> NonRootEntry -> Bool
NonRootEntry.synthetic NonRootEntry
entry
w3cTraceContext :: EntrySpan -> Maybe W3CTraceContext
w3cTraceContext :: EntrySpan -> Maybe W3CTraceContext
w3cTraceContext entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Maybe W3CTraceContext
RootEntry.w3cTraceContext RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry -> NonRootEntry -> Maybe W3CTraceContext
NonRootEntry.w3cTraceContext NonRootEntry
entry
setW3cTraceContext :: W3CTraceContext -> EntrySpan -> EntrySpan
setW3cTraceContext :: W3CTraceContext -> EntrySpan -> EntrySpan
setW3cTraceContext w3cTraceContext_ :: W3CTraceContext
w3cTraceContext_ entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry ->
RootEntry -> EntrySpan
RootEntrySpan (RootEntry -> EntrySpan) -> RootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ W3CTraceContext -> RootEntry -> RootEntry
RootEntry.setW3cTraceContext W3CTraceContext
w3cTraceContext_ RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry ->
NonRootEntry -> EntrySpan
NonRootEntrySpan (NonRootEntry -> EntrySpan) -> NonRootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ W3CTraceContext -> NonRootEntry -> NonRootEntry
NonRootEntry.setW3cTraceContext W3CTraceContext
w3cTraceContext_ NonRootEntry
entry
tpFlag :: EntrySpan -> Bool
tpFlag :: EntrySpan -> Bool
tpFlag entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan _ -> Bool
False
NonRootEntrySpan entry :: NonRootEntry
entry -> NonRootEntry -> Bool
NonRootEntry.tpFlag NonRootEntry
entry
setTpFlag :: EntrySpan -> EntrySpan
setTpFlag :: EntrySpan -> EntrySpan
setTpFlag entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan _ ->
EntrySpan
entrySpan
NonRootEntrySpan entry :: NonRootEntry
entry ->
NonRootEntry -> EntrySpan
NonRootEntrySpan (NonRootEntry -> EntrySpan) -> NonRootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ NonRootEntry -> NonRootEntry
NonRootEntry.setTpFlag NonRootEntry
entry
setSynthetic :: Bool -> EntrySpan -> EntrySpan
setSynthetic :: Bool -> EntrySpan -> EntrySpan
setSynthetic synthetic_ :: Bool
synthetic_ entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry ->
RootEntry -> EntrySpan
RootEntrySpan (RootEntry -> EntrySpan) -> RootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ Bool -> RootEntry -> RootEntry
RootEntry.setSynthetic Bool
synthetic_ RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry ->
NonRootEntry -> EntrySpan
NonRootEntrySpan (NonRootEntry -> EntrySpan) -> NonRootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ Bool -> NonRootEntry -> NonRootEntry
NonRootEntry.setSynthetic Bool
synthetic_ NonRootEntry
entry
spanData :: EntrySpan -> Value
spanData :: EntrySpan -> Value
spanData entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry -> RootEntry -> Value
RootEntry.spanData RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry -> NonRootEntry -> Value
NonRootEntry.spanData NonRootEntry
entry
addData :: Value -> EntrySpan -> EntrySpan
addData :: Value -> EntrySpan -> EntrySpan
addData value :: Value
value entrySpan :: EntrySpan
entrySpan =
case EntrySpan
entrySpan of
RootEntrySpan entry :: RootEntry
entry ->
RootEntry -> EntrySpan
RootEntrySpan (RootEntry -> EntrySpan) -> RootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ Value -> RootEntry -> RootEntry
RootEntry.addData Value
value RootEntry
entry
NonRootEntrySpan entry :: NonRootEntry
entry ->
NonRootEntry -> EntrySpan
NonRootEntrySpan (NonRootEntry -> EntrySpan) -> NonRootEntry -> EntrySpan
forall a b. (a -> b) -> a -> b
$ Value -> NonRootEntry -> NonRootEntry
NonRootEntry.addData Value
value NonRootEntry
entry