{-# LANGUAGE DeriveGeneric #-}
module Instana.SDK.Span.EntrySpan
( EntrySpan(..)
, addData
, addToErrorCount
, correlationId
, correlationType
, errorCount
, parentId
, serviceName
, setCorrelationId
, setCorrelationType
, setServiceName
, spanData
, spanId
, spanName
, timestamp
, traceId
) where
import Data.Aeson (Value)
import Data.Text (Text)
import GHC.Generics
import Instana.SDK.Internal.Id (Id)
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
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