{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Cardano.RTView.NodeState.Types
( NodeError (..)
, NodesState
, NodeState (..)
, NodeInfo (..)
, NodeMetrics (..)
, PeerInfo (..)
, defaultNodesState
) where
import Cardano.Prelude
import Control.DeepSeq (NFData (..))
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as Map
import Data.Time.Calendar (Day (..))
import Data.Time.Clock (UTCTime (..))
import Prelude (String)
import Cardano.BM.Configuration (Configuration)
import qualified Cardano.BM.Configuration.Model as CM
import Cardano.BM.Data.Configuration (RemoteAddrNamed (..))
import Cardano.BM.Data.Severity (Severity)
type NodesState = Map Text NodeState
data NodeState
= NodeState
{ NodeState -> NodeInfo
nsInfo :: !NodeInfo
, NodeState -> NodeMetrics
nsMetrics :: !NodeMetrics
}
deriving ((forall x. NodeState -> Rep NodeState x)
-> (forall x. Rep NodeState x -> NodeState) -> Generic NodeState
forall x. Rep NodeState x -> NodeState
forall x. NodeState -> Rep NodeState x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NodeState x -> NodeState
$cfrom :: forall x. NodeState -> Rep NodeState x
Generic, NodeState -> ()
(NodeState -> ()) -> NFData NodeState
forall a. (a -> ()) -> NFData a
rnf :: NodeState -> ()
$crnf :: NodeState -> ()
NFData, Int -> NodeState -> ShowS
[NodeState] -> ShowS
NodeState -> String
(Int -> NodeState -> ShowS)
-> (NodeState -> String)
-> ([NodeState] -> ShowS)
-> Show NodeState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NodeState] -> ShowS
$cshowList :: [NodeState] -> ShowS
show :: NodeState -> String
$cshow :: NodeState -> String
showsPrec :: Int -> NodeState -> ShowS
$cshowsPrec :: Int -> NodeState -> ShowS
Show)
data PeerInfo
= PeerInfo
{ PeerInfo -> String
piEndpoint :: !String
, PeerInfo -> String
piBytesInF :: !String
, PeerInfo -> String
piReqsInF :: !String
, PeerInfo -> String
piBlocksInF :: !String
, PeerInfo -> String
piSlotNumber :: !String
, PeerInfo -> String
piStatus :: !String
}
deriving (PeerInfo -> PeerInfo -> Bool
(PeerInfo -> PeerInfo -> Bool)
-> (PeerInfo -> PeerInfo -> Bool) -> Eq PeerInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PeerInfo -> PeerInfo -> Bool
$c/= :: PeerInfo -> PeerInfo -> Bool
== :: PeerInfo -> PeerInfo -> Bool
$c== :: PeerInfo -> PeerInfo -> Bool
Eq, (forall x. PeerInfo -> Rep PeerInfo x)
-> (forall x. Rep PeerInfo x -> PeerInfo) -> Generic PeerInfo
forall x. Rep PeerInfo x -> PeerInfo
forall x. PeerInfo -> Rep PeerInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PeerInfo x -> PeerInfo
$cfrom :: forall x. PeerInfo -> Rep PeerInfo x
Generic, PeerInfo -> ()
(PeerInfo -> ()) -> NFData PeerInfo
forall a. (a -> ()) -> NFData a
rnf :: PeerInfo -> ()
$crnf :: PeerInfo -> ()
NFData, Int -> PeerInfo -> ShowS
[PeerInfo] -> ShowS
PeerInfo -> String
(Int -> PeerInfo -> ShowS)
-> (PeerInfo -> String) -> ([PeerInfo] -> ShowS) -> Show PeerInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PeerInfo] -> ShowS
$cshowList :: [PeerInfo] -> ShowS
show :: PeerInfo -> String
$cshow :: PeerInfo -> String
showsPrec :: Int -> PeerInfo -> ShowS
$cshowsPrec :: Int -> PeerInfo -> ShowS
Show)
instance NFData Severity
data NodeError
= NodeError
{ NodeError -> UTCTime
eTimestamp :: !UTCTime
, NodeError -> Severity
eSeverity :: !Severity
, NodeError -> String
eMessage :: !String
}
deriving ((forall x. NodeError -> Rep NodeError x)
-> (forall x. Rep NodeError x -> NodeError) -> Generic NodeError
forall x. Rep NodeError x -> NodeError
forall x. NodeError -> Rep NodeError x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NodeError x -> NodeError
$cfrom :: forall x. NodeError -> Rep NodeError x
Generic, NodeError -> ()
(NodeError -> ()) -> NFData NodeError
forall a. (a -> ()) -> NFData a
rnf :: NodeError -> ()
$crnf :: NodeError -> ()
NFData, Int -> NodeError -> ShowS
[NodeError] -> ShowS
NodeError -> String
(Int -> NodeError -> ShowS)
-> (NodeError -> String)
-> ([NodeError] -> ShowS)
-> Show NodeError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NodeError] -> ShowS
$cshowList :: [NodeError] -> ShowS
show :: NodeError -> String
$cshow :: NodeError -> String
showsPrec :: Int -> NodeError -> ShowS
$cshowsPrec :: Int -> NodeError -> ShowS
Show)
data NodeInfo
= NodeInfo
{ NodeInfo -> String
niNodeProtocol :: !String
, NodeInfo -> String
niNodeVersion :: !String
, NodeInfo -> String
niNodeCommit :: !String
, NodeInfo -> String
niNodeShortCommit :: !String
, NodeInfo -> String
niNodePlatform :: !String
, NodeInfo -> Word64
niUpTime :: !Word64
, NodeInfo -> Word64
niUpTimeLastUpdate :: !Word64
, NodeInfo -> Integer
niEpoch :: !Integer
, NodeInfo -> Word64
niEpochLastUpdate :: !Word64
, NodeInfo -> Integer
niSlot :: !Integer
, NodeInfo -> Word64
niSlotLastUpdate :: !Word64
, NodeInfo -> Integer
niNodeIsLeaderNum :: !Integer
, NodeInfo -> Word64
niNodeIsLeaderNumLastUpdate :: !Word64
, NodeInfo -> Integer
niSlotsMissedNumber :: !Integer
, NodeInfo -> Word64
niSlotsMissedNumberLastUpdate :: !Word64
, NodeInfo -> Integer
niBlocksNumber :: !Integer
, NodeInfo -> Word64
niBlocksNumberLastUpdate :: !Word64
, NodeInfo -> Integer
niBlocksForgedNumber :: !Integer
, NodeInfo -> Word64
niBlocksForgedNumberLastUpdate :: !Word64
, NodeInfo -> Integer
niNodeCannotForge :: !Integer
, NodeInfo -> Double
niChainDensity :: !Double
, NodeInfo -> Word64
niChainDensityLastUpdate :: !Word64
, NodeInfo -> Integer
niTxsProcessed :: !Integer
, NodeInfo -> [PeerInfo]
niPeersInfo :: ![PeerInfo]
, NodeInfo -> String
niTraceAcceptorHost :: !String
, NodeInfo -> String
niTraceAcceptorPort :: !String
, NodeInfo -> Integer
niRemainingKESPeriods :: !Integer
, NodeInfo -> Word64
niRemainingKESPeriodsLastUpdate :: !Word64
, NodeInfo -> Integer
niOpCertStartKESPeriod :: !Integer
, NodeInfo -> Word64
niOpCertStartKESPeriodLastUpdate :: !Word64
, NodeInfo -> Integer
niCurrentKESPeriod :: !Integer
, NodeInfo -> Word64
niCurrentKESPeriodLastUpdate :: !Word64
, NodeInfo -> [NodeError]
niNodeErrors :: ![NodeError]
}
deriving ((forall x. NodeInfo -> Rep NodeInfo x)
-> (forall x. Rep NodeInfo x -> NodeInfo) -> Generic NodeInfo
forall x. Rep NodeInfo x -> NodeInfo
forall x. NodeInfo -> Rep NodeInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NodeInfo x -> NodeInfo
$cfrom :: forall x. NodeInfo -> Rep NodeInfo x
Generic, NodeInfo -> ()
(NodeInfo -> ()) -> NFData NodeInfo
forall a. (a -> ()) -> NFData a
rnf :: NodeInfo -> ()
$crnf :: NodeInfo -> ()
NFData, Int -> NodeInfo -> ShowS
[NodeInfo] -> ShowS
NodeInfo -> String
(Int -> NodeInfo -> ShowS)
-> (NodeInfo -> String) -> ([NodeInfo] -> ShowS) -> Show NodeInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NodeInfo] -> ShowS
$cshowList :: [NodeInfo] -> ShowS
show :: NodeInfo -> String
$cshow :: NodeInfo -> String
showsPrec :: Int -> NodeInfo -> ShowS
$cshowsPrec :: Int -> NodeInfo -> ShowS
Show)
data NodeMetrics
= NodeMetrics
{ NodeMetrics -> Word64
nmMempoolTxsNumber :: !Word64
, NodeMetrics -> Double
nmMempoolTxsPercent :: !Double
, NodeMetrics -> Word64
nmMempoolBytes :: !Word64
, NodeMetrics -> Double
nmMempoolBytesPercent :: !Double
, NodeMetrics -> Integer
nmMempoolMaxTxs :: !Integer
, NodeMetrics -> Integer
nmMempoolMaxBytes :: !Integer
, NodeMetrics -> Double
nmMemory :: !Double
, NodeMetrics -> Double
nmMemoryMax :: !Double
, NodeMetrics -> Double
nmMemoryMaxTotal :: !Double
, NodeMetrics -> Double
nmMemoryPercent :: !Double
, NodeMetrics -> Word64
nmMemoryLastUpdate :: !Word64
, NodeMetrics -> Double
nmCPUPercent :: !Double
, NodeMetrics -> Integer
nmCPULast :: !Integer
, NodeMetrics -> Word64
nmCPUNs :: !Word64
, NodeMetrics -> Word64
nmCPULastUpdate :: !Word64
, NodeMetrics -> Double
nmDiskUsageR :: !Double
, NodeMetrics -> Double
nmDiskUsageRMax :: !Double
, NodeMetrics -> Double
nmDiskUsageRMaxTotal :: !Double
, NodeMetrics -> Double
nmDiskUsageRPercent :: !Double
, NodeMetrics -> Word64
nmDiskUsageRLast :: !Word64
, NodeMetrics -> Word64
nmDiskUsageRNs :: !Word64
, NodeMetrics -> UTCTime
nmDiskUsageRAdaptTime :: !UTCTime
, NodeMetrics -> Word64
nmDiskUsageRLastUpdate :: !Word64
, NodeMetrics -> Double
nmDiskUsageW :: !Double
, NodeMetrics -> Double
nmDiskUsageWMax :: !Double
, NodeMetrics -> Double
nmDiskUsageWMaxTotal :: !Double
, NodeMetrics -> Double
nmDiskUsageWPercent :: !Double
, NodeMetrics -> Word64
nmDiskUsageWLast :: !Word64
, NodeMetrics -> Word64
nmDiskUsageWNs :: !Word64
, NodeMetrics -> UTCTime
nmDiskUsageWAdaptTime :: !UTCTime
, NodeMetrics -> Word64
nmDiskUsageWLastUpdate :: !Word64
, NodeMetrics -> Double
nmNetworkUsageIn :: !Double
, NodeMetrics -> Double
nmNetworkUsageInPercent :: !Double
, NodeMetrics -> Double
nmNetworkUsageInMax :: !Double
, NodeMetrics -> Double
nmNetworkUsageInMaxTotal :: !Double
, NodeMetrics -> Word64
nmNetworkUsageInLast :: !Word64
, NodeMetrics -> Word64
nmNetworkUsageInNs :: !Word64
, NodeMetrics -> Word64
nmNetworkUsageInLastUpdate :: !Word64
, NodeMetrics -> Double
nmNetworkUsageOut :: !Double
, NodeMetrics -> Double
nmNetworkUsageOutPercent :: !Double
, NodeMetrics -> Double
nmNetworkUsageOutMax :: !Double
, NodeMetrics -> Double
nmNetworkUsageOutMaxTotal :: !Double
, NodeMetrics -> Word64
nmNetworkUsageOutLast :: !Word64
, NodeMetrics -> Word64
nmNetworkUsageOutNs :: !Word64
, NodeMetrics -> Word64
nmNetworkUsageOutLastUpdate :: !Word64
, NodeMetrics -> Double
nmRTSMemoryAllocated :: !Double
, NodeMetrics -> Double
nmRTSMemoryUsed :: !Double
, NodeMetrics -> Double
nmRTSMemoryUsedPercent :: !Double
, NodeMetrics -> Word64
nmRTSMemoryLastUpdate :: !Word64
, NodeMetrics -> Double
nmRTSGcCpu :: !Double
, NodeMetrics -> Word64
nmRTSGcCpuLastUpdate :: !Word64
, NodeMetrics -> Double
nmRTSGcElapsed :: !Double
, NodeMetrics -> Word64
nmRTSGcElapsedLastUpdate :: !Word64
, NodeMetrics -> Integer
nmRTSGcNum :: !Integer
, NodeMetrics -> Word64
nmRTSGcNumLastUpdate :: !Word64
, NodeMetrics -> Integer
nmRTSGcMajorNum :: !Integer
, NodeMetrics -> Word64
nmRTSGcMajorNumLastUpdate :: !Word64
}
deriving ((forall x. NodeMetrics -> Rep NodeMetrics x)
-> (forall x. Rep NodeMetrics x -> NodeMetrics)
-> Generic NodeMetrics
forall x. Rep NodeMetrics x -> NodeMetrics
forall x. NodeMetrics -> Rep NodeMetrics x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NodeMetrics x -> NodeMetrics
$cfrom :: forall x. NodeMetrics -> Rep NodeMetrics x
Generic, NodeMetrics -> ()
(NodeMetrics -> ()) -> NFData NodeMetrics
forall a. (a -> ()) -> NFData a
rnf :: NodeMetrics -> ()
$crnf :: NodeMetrics -> ()
NFData, Int -> NodeMetrics -> ShowS
[NodeMetrics] -> ShowS
NodeMetrics -> String
(Int -> NodeMetrics -> ShowS)
-> (NodeMetrics -> String)
-> ([NodeMetrics] -> ShowS)
-> Show NodeMetrics
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NodeMetrics] -> ShowS
$cshowList :: [NodeMetrics] -> ShowS
show :: NodeMetrics -> String
$cshow :: NodeMetrics -> String
showsPrec :: Int -> NodeMetrics -> ShowS
$cshowsPrec :: Int -> NodeMetrics -> ShowS
Show)
defaultNodesState
:: Configuration
-> IO NodesState
defaultNodesState :: Configuration -> IO NodesState
defaultNodesState Configuration
config =
Configuration -> IO (Maybe [RemoteAddrNamed])
CM.getAcceptAt Configuration
config IO (Maybe [RemoteAddrNamed])
-> (Maybe [RemoteAddrNamed] -> IO NodesState) -> IO NodesState
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \case
Just [RemoteAddrNamed]
remoteAddresses -> do
NodesState -> IO NodesState
forall (m :: * -> *) a. Monad m => a -> m a
return (NodesState -> IO NodesState) -> NodesState -> IO NodesState
forall a b. (a -> b) -> a -> b
$ [(Text, NodeState)] -> NodesState
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList [(Text
name, NodeState
defaultNodeState) | (RemoteAddrNamed Text
name RemoteAddr
_) <- [RemoteAddrNamed]
remoteAddresses]
Maybe [RemoteAddrNamed]
Nothing ->
NodesState -> IO NodesState
forall (m :: * -> *) a. Monad m => a -> m a
return NodesState
forall k a. Map k a
Map.empty
defaultNodeState :: NodeState
defaultNodeState :: NodeState
defaultNodeState = NodeState :: NodeInfo -> NodeMetrics -> NodeState
NodeState
{ nsInfo :: NodeInfo
nsInfo = NodeInfo
defaultNodeInfo
, nsMetrics :: NodeMetrics
nsMetrics = NodeMetrics
defaultNodeMetrics
}
defaultNodeInfo :: NodeInfo
defaultNodeInfo :: NodeInfo
defaultNodeInfo = NodeInfo :: String
-> String
-> String
-> String
-> String
-> Word64
-> Word64
-> Integer
-> Word64
-> Integer
-> Word64
-> Integer
-> Word64
-> Integer
-> Word64
-> Integer
-> Word64
-> Integer
-> Word64
-> Integer
-> Double
-> Word64
-> Integer
-> [PeerInfo]
-> String
-> String
-> Integer
-> Word64
-> Integer
-> Word64
-> Integer
-> Word64
-> [NodeError]
-> NodeInfo
NodeInfo
{ niNodeProtocol :: String
niNodeProtocol = String
"—"
, niNodeVersion :: String
niNodeVersion = String
"—"
, niNodeCommit :: String
niNodeCommit = String
"—"
, niNodeShortCommit :: String
niNodeShortCommit = String
"—"
, niNodePlatform :: String
niNodePlatform = String
"—"
, niUpTime :: Word64
niUpTime = Word64
0
, niUpTimeLastUpdate :: Word64
niUpTimeLastUpdate = Word64
0
, niEpoch :: Integer
niEpoch = Integer
0
, niEpochLastUpdate :: Word64
niEpochLastUpdate = Word64
0
, niSlot :: Integer
niSlot = Integer
0
, niSlotLastUpdate :: Word64
niSlotLastUpdate = Word64
0
, niNodeIsLeaderNum :: Integer
niNodeIsLeaderNum = Integer
0
, niNodeIsLeaderNumLastUpdate :: Word64
niNodeIsLeaderNumLastUpdate = Word64
0
, niSlotsMissedNumber :: Integer
niSlotsMissedNumber = Integer
0
, niSlotsMissedNumberLastUpdate :: Word64
niSlotsMissedNumberLastUpdate = Word64
0
, niBlocksNumber :: Integer
niBlocksNumber = Integer
0
, niBlocksNumberLastUpdate :: Word64
niBlocksNumberLastUpdate = Word64
0
, niBlocksForgedNumber :: Integer
niBlocksForgedNumber = Integer
0
, niBlocksForgedNumberLastUpdate :: Word64
niBlocksForgedNumberLastUpdate = Word64
0
, niNodeCannotForge :: Integer
niNodeCannotForge = Integer
0
, niChainDensity :: Double
niChainDensity = Double
0.0
, niChainDensityLastUpdate :: Word64
niChainDensityLastUpdate = Word64
0
, niTxsProcessed :: Integer
niTxsProcessed = Integer
0
, niPeersInfo :: [PeerInfo]
niPeersInfo = []
, niTraceAcceptorHost :: String
niTraceAcceptorHost = String
"-"
, niTraceAcceptorPort :: String
niTraceAcceptorPort = String
"-"
, niRemainingKESPeriods :: Integer
niRemainingKESPeriods = Integer
9999999999
, niRemainingKESPeriodsLastUpdate :: Word64
niRemainingKESPeriodsLastUpdate = Word64
0
, niOpCertStartKESPeriod :: Integer
niOpCertStartKESPeriod = Integer
9999999999
, niOpCertStartKESPeriodLastUpdate :: Word64
niOpCertStartKESPeriodLastUpdate = Word64
0
, niCurrentKESPeriod :: Integer
niCurrentKESPeriod = Integer
9999999999
, niCurrentKESPeriodLastUpdate :: Word64
niCurrentKESPeriodLastUpdate = Word64
0
, niNodeErrors :: [NodeError]
niNodeErrors = []
}
defaultNodeMetrics :: NodeMetrics
defaultNodeMetrics :: NodeMetrics
defaultNodeMetrics = NodeMetrics :: Word64
-> Double
-> Word64
-> Double
-> Integer
-> Integer
-> Double
-> Double
-> Double
-> Double
-> Word64
-> Double
-> Integer
-> Word64
-> Word64
-> Double
-> Double
-> Double
-> Double
-> Word64
-> Word64
-> UTCTime
-> Word64
-> Double
-> Double
-> Double
-> Double
-> Word64
-> Word64
-> UTCTime
-> Word64
-> Double
-> Double
-> Double
-> Double
-> Word64
-> Word64
-> Word64
-> Double
-> Double
-> Double
-> Double
-> Word64
-> Word64
-> Word64
-> Double
-> Double
-> Double
-> Word64
-> Double
-> Word64
-> Double
-> Word64
-> Integer
-> Word64
-> Integer
-> Word64
-> NodeMetrics
NodeMetrics
{ nmMempoolTxsNumber :: Word64
nmMempoolTxsNumber = Word64
0
, nmMempoolTxsPercent :: Double
nmMempoolTxsPercent = Double
0.0
, nmMempoolBytes :: Word64
nmMempoolBytes = Word64
0
, nmMempoolBytesPercent :: Double
nmMempoolBytesPercent = Double
0.0
, nmMempoolMaxTxs :: Integer
nmMempoolMaxTxs = Integer
1
, nmMempoolMaxBytes :: Integer
nmMempoolMaxBytes = Integer
1
, nmMemory :: Double
nmMemory = Double
0.0
, nmMemoryMax :: Double
nmMemoryMax = Double
0.1
, nmMemoryMaxTotal :: Double
nmMemoryMaxTotal = Double
200.0
, nmMemoryPercent :: Double
nmMemoryPercent = Double
0.0
, nmMemoryLastUpdate :: Word64
nmMemoryLastUpdate = Word64
0
, nmCPUPercent :: Double
nmCPUPercent = Double
0.5
, nmCPULast :: Integer
nmCPULast = Integer
0
, nmCPUNs :: Word64
nmCPUNs = Word64
10000
, nmCPULastUpdate :: Word64
nmCPULastUpdate = Word64
0
, nmDiskUsageR :: Double
nmDiskUsageR = Double
0.0
, nmDiskUsageRMax :: Double
nmDiskUsageRMax = Double
0.0
, nmDiskUsageRMaxTotal :: Double
nmDiskUsageRMaxTotal = Double
0.0
, nmDiskUsageRPercent :: Double
nmDiskUsageRPercent = Double
0.0
, nmDiskUsageRLast :: Word64
nmDiskUsageRLast = Word64
0
, nmDiskUsageRNs :: Word64
nmDiskUsageRNs = Word64
10000
, nmDiskUsageRAdaptTime :: UTCTime
nmDiskUsageRAdaptTime = Day -> DiffTime -> UTCTime
UTCTime (Integer -> Day
ModifiedJulianDay Integer
0) DiffTime
0
, nmDiskUsageRLastUpdate :: Word64
nmDiskUsageRLastUpdate = Word64
0
, nmDiskUsageW :: Double
nmDiskUsageW = Double
0.0
, nmDiskUsageWMax :: Double
nmDiskUsageWMax = Double
0.0
, nmDiskUsageWMaxTotal :: Double
nmDiskUsageWMaxTotal = Double
0.0
, nmDiskUsageWPercent :: Double
nmDiskUsageWPercent = Double
0.0
, nmDiskUsageWLast :: Word64
nmDiskUsageWLast = Word64
0
, nmDiskUsageWNs :: Word64
nmDiskUsageWNs = Word64
10000
, nmDiskUsageWAdaptTime :: UTCTime
nmDiskUsageWAdaptTime = Day -> DiffTime -> UTCTime
UTCTime (Integer -> Day
ModifiedJulianDay Integer
0) DiffTime
0
, nmDiskUsageWLastUpdate :: Word64
nmDiskUsageWLastUpdate = Word64
0
, nmNetworkUsageIn :: Double
nmNetworkUsageIn = Double
0.0
, nmNetworkUsageInPercent :: Double
nmNetworkUsageInPercent = Double
0.0
, nmNetworkUsageInMax :: Double
nmNetworkUsageInMax = Double
0.0
, nmNetworkUsageInMaxTotal :: Double
nmNetworkUsageInMaxTotal = Double
0.0
, nmNetworkUsageInLast :: Word64
nmNetworkUsageInLast = Word64
0
, nmNetworkUsageInNs :: Word64
nmNetworkUsageInNs = Word64
10000
, nmNetworkUsageInLastUpdate :: Word64
nmNetworkUsageInLastUpdate = Word64
0
, nmNetworkUsageOut :: Double
nmNetworkUsageOut = Double
0.0
, nmNetworkUsageOutPercent :: Double
nmNetworkUsageOutPercent = Double
0.0
, nmNetworkUsageOutMax :: Double
nmNetworkUsageOutMax = Double
0.0
, nmNetworkUsageOutMaxTotal :: Double
nmNetworkUsageOutMaxTotal = Double
0.0
, nmNetworkUsageOutLast :: Word64
nmNetworkUsageOutLast = Word64
0
, nmNetworkUsageOutNs :: Word64
nmNetworkUsageOutNs = Word64
10000
, nmNetworkUsageOutLastUpdate :: Word64
nmNetworkUsageOutLastUpdate = Word64
0
, nmRTSMemoryAllocated :: Double
nmRTSMemoryAllocated = Double
1.0
, nmRTSMemoryUsed :: Double
nmRTSMemoryUsed = Double
0.1
, nmRTSMemoryUsedPercent :: Double
nmRTSMemoryUsedPercent = Double
1.0
, nmRTSMemoryLastUpdate :: Word64
nmRTSMemoryLastUpdate = Word64
0
, nmRTSGcCpu :: Double
nmRTSGcCpu = Double
0.1
, nmRTSGcCpuLastUpdate :: Word64
nmRTSGcCpuLastUpdate = Word64
0
, nmRTSGcElapsed :: Double
nmRTSGcElapsed = Double
0.1
, nmRTSGcElapsedLastUpdate :: Word64
nmRTSGcElapsedLastUpdate = Word64
0
, nmRTSGcNum :: Integer
nmRTSGcNum = Integer
0
, nmRTSGcNumLastUpdate :: Word64
nmRTSGcNumLastUpdate = Word64
0
, nmRTSGcMajorNum :: Integer
nmRTSGcMajorNum = Integer
0
, nmRTSGcMajorNumLastUpdate :: Word64
nmRTSGcMajorNumLastUpdate = Word64
0
}