Skip to content

Commit d828b0d

Browse files
committed
.
1 parent 71d13c3 commit d828b0d

35 files changed

+573
-358
lines changed

cardano-tracer/bench/cardano-tracer-bench.hs

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -56,27 +56,30 @@ main = do
5656
tr <- mkTracerTracer $ SeverityF $ Just Warning
5757

5858
let te :: TracerConfig -> HandleRegistry -> TracerEnv
59-
te c r =
60-
TracerEnv
61-
{ teConfig = c
62-
, teConnectedNodes = connectedNodes
63-
, teConnectedNodesNames = connectedNodesNames
64-
, teAcceptedMetrics = acceptedMetrics
65-
, teSavedTO = savedTO
66-
, teBlockchainHistory = chainHistory
67-
, teResourcesHistory = resourcesHistory
68-
, teTxHistory = txHistory
69-
, teCurrentLogLock = currentLogLock
70-
, teCurrentDPLock = currentDPLock
71-
, teEventsQueues = eventsQueues
72-
, teDPRequestors = dpRequestors
73-
, teProtocolsBrake = protocolsBrake
74-
, teRTViewPageOpened = rtViewPageOpened
75-
, teRTViewStateDir = Nothing
76-
, teTracer = tr
77-
, teReforwardTraceObjects = \_-> pure ()
78-
, teRegistry = r
79-
}
59+
te c r = TracerEnv
60+
{ teConfig = c
61+
, teConnectedNodes = connectedNodes
62+
, teConnectedNodesNames = connectedNodesNames
63+
, teAcceptedMetrics = acceptedMetrics
64+
, teCurrentLogLock = currentLogLock
65+
, teCurrentDPLock = currentDPLock
66+
, teDPRequestors = dpRequestors
67+
, teProtocolsBrake = protocolsBrake
68+
, teTracer = tr
69+
, teReforwardTraceObjects = \_-> pure ()
70+
, teRegistry = r
71+
}
72+
73+
tracerEnvRTView :: TracerEnvRTView
74+
tracerEnvRTView = TracerEnvRTView
75+
{ teSavedTO = savedTO
76+
, teBlockchainHistory = chainHistory
77+
, teResourcesHistory = resourcesHistory
78+
, teTxHistory = txHistory
79+
, teEventsQueues = eventsQueues
80+
, teRTViewPageOpened = rtViewPageOpened
81+
, teRTViewStateDir = Nothing
82+
}
8083

8184
removePathForcibly root
8285

@@ -129,7 +132,9 @@ main = do
129132
, ekgRequestFreq = Nothing
130133
, hasEKG = Nothing
131134
, hasPrometheus = Nothing
135+
#if RTVIEW
132136
, hasRTView = Nothing
137+
#endif
133138
, logging = NE.fromList [LoggingParams root FileMode format]
134139
, rotation = Nothing
135140
, verbosity = Nothing

cardano-tracer/cardano-tracer.cabal

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ build-type: Simple
1616
extra-doc-files: README.md
1717
CHANGELOG.md
1818

19-
flag has_rtview
19+
flag rtview
2020
Description: Enable RTView
2121
Manual: True
2222
Default: True
@@ -32,9 +32,10 @@ common project-config
3232
, ImportQualifiedPost
3333
, InstanceSigs
3434
, ScopedTypeVariables
35+
, StandaloneKindSignatures
3536
, TypeApplications
3637

37-
if flag(has_rtview)
38+
if flag(rtview)
3839
CPP-Options: -DRTVIEW=1
3940
else
4041
CPP-Options: -DRTVIEW=0
@@ -55,7 +56,7 @@ library
5556

5657
hs-source-dirs: src
5758

58-
if flag(has_rtview)
59+
if flag(rtview)
5960
exposed-modules:
6061

6162
Cardano.Tracer.Handlers.Metrics.Monitoring
@@ -117,7 +118,7 @@ library
117118
Cardano.Tracer.Handlers.RTView.Update.Reload
118119
Cardano.Tracer.Handlers.RTView.Update.Resources
119120
Cardano.Tracer.Handlers.RTView.Update.Transactions
120-
Cardano.Tracer.Handlers.RTView.Update.Utils
121+
-- Cardano.Tracer.Handlers.RTView.Update.Utils
121122

122123
Cardano.Tracer.Handlers.RTView.Utils
123124

@@ -147,6 +148,8 @@ library
147148
Cardano.Tracer.Types
148149
Cardano.Tracer.Utils
149150

151+
Cardano.Tracer.Handlers.RTView.Update.Utils
152+
150153
other-modules: Paths_cardano_tracer
151154
autogen-modules: Paths_cardano_tracer
152155

cardano-tracer/src/Cardano/Tracer/Acceptors/Client.hs

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,25 @@ module Cardano.Tracer.Acceptors.Client
44
( runAcceptorsClient
55
) where
66

7+
#if RTVIEW
78
import Cardano.Logging (TraceObject)
9+
#endif
810
import Cardano.Logging.Version (ForwardingVersion (..), ForwardingVersionData (..),
911
forwardingCodecCBORTerm, forwardingVersionCodec)
12+
#if RTVIEW
1013
import Cardano.Tracer.Acceptors.Utils (notifyAboutNodeDisconnected,
1114
prepareDataPointRequestor, prepareMetricsStores, removeDisconnectedNode)
15+
#else
16+
import Cardano.Tracer.Acceptors.Utils (
17+
prepareDataPointRequestor, prepareMetricsStores, removeDisconnectedNode)
18+
#endif
1219
import qualified Cardano.Tracer.Configuration as TC
1320
import Cardano.Tracer.Environment
21+
#if RTVIEW
1422
import Cardano.Tracer.Handlers.Logs.TraceObjects (deregisterNodeId, traceObjectsHandler)
23+
#else
24+
import Cardano.Tracer.Handlers.Logs.TraceObjects (deregisterNodeId)
25+
#endif
1526
import Cardano.Tracer.MetaTrace
1627
import Cardano.Tracer.Utils (connIdToNodeId)
1728
import Ouroboros.Network.Context (MinimalInitiatorContext (..), ResponderContext (..))
@@ -39,19 +50,32 @@ import qualified System.Metrics.Configuration as EKGF
3950
import System.Metrics.Network.Acceptor (acceptEKGMetricsInit)
4051

4152
import qualified Trace.Forward.Configuration.DataPoint as DPF
53+
#if RTVIEW
4254
import qualified Trace.Forward.Configuration.TraceObject as TF
55+
#endif
4356
import Trace.Forward.Run.DataPoint.Acceptor (acceptDataPointsInit)
57+
#if RTVIEW
4458
import Trace.Forward.Run.TraceObject.Acceptor (acceptTraceObjectsInit)
59+
#endif
4560

4661
runAcceptorsClient
4762
:: TracerEnv
63+
#if RTVIEW
64+
-> TracerEnvRTView
65+
#endif
4866
-> FilePath
4967
-> ( EKGF.AcceptorConfiguration
68+
#if RTVIEW
5069
, TF.AcceptorConfiguration TraceObject
70+
#endif
5171
, DPF.AcceptorConfiguration
5272
)
5373
-> IO ()
54-
runAcceptorsClient tracerEnv p (ekgConfig, tfConfig, dpfConfig) = withIOManager $ \iocp -> do
74+
#if RTVIEW
75+
runAcceptorsClient tracerEnv tracerEnvRTView p (ekgConfig, tfConfig, dpfConfig) = withIOManager \iocp -> do
76+
#else
77+
runAcceptorsClient tracerEnv p (ekgConfig, dpfConfig) = withIOManager \iocp -> do
78+
#endif
5579
traceWith (teTracer tracerEnv) $ TracerSockConnecting p
5680
doConnectToForwarder
5781
(localSnocket iocp)
@@ -62,7 +86,9 @@ runAcceptorsClient tracerEnv p (ekgConfig, tfConfig, dpfConfig) = withIOManager
6286
-- there is no mechanism to disable some of them.
6387
appInitiator
6488
[ (runEKGAcceptorInit tracerEnv ekgConfig errorHandler, 1)
65-
, (runTraceObjectsAcceptorInit tracerEnv tfConfig errorHandler, 2)
89+
#if RTVIEW
90+
, (runTraceObjectsAcceptorInit tracerEnv tracerEnvRTView tfConfig errorHandler, 2)
91+
#endif
6692
, (runDataPointsAcceptorInit tracerEnv dpfConfig errorHandler, 3)
6793
]
6894
where
@@ -78,7 +104,9 @@ runAcceptorsClient tracerEnv p (ekgConfig, tfConfig, dpfConfig) = withIOManager
78104
errorHandler connId = do
79105
deregisterNodeId tracerEnv (connIdToNodeId connId)
80106
removeDisconnectedNode tracerEnv connId
81-
notifyAboutNodeDisconnected tracerEnv connId
107+
#if RTVIEW
108+
notifyAboutNodeDisconnected tracerEnvRTView connId
109+
#endif
82110

83111
doConnectToForwarder
84112
:: Snocket IO LocalSocket LocalAddress
@@ -122,19 +150,22 @@ runEKGAcceptorInit tracerEnv ekgConfig errorHandler =
122150
(prepareMetricsStores tracerEnv . micConnectionId)
123151
(errorHandler . micConnectionId)
124152

153+
#if RTVIEW
125154
runTraceObjectsAcceptorInit
126155
:: TracerEnv
156+
-> TracerEnvRTView
127157
-> TF.AcceptorConfiguration TraceObject
128158
-> (ConnectionId LocalAddress -> IO ())
129159
-> RunMiniProtocol 'InitiatorMode
130160
(MinimalInitiatorContext LocalAddress)
131161
responderCtx
132162
LBS.ByteString IO () Void
133-
runTraceObjectsAcceptorInit tracerEnv tfConfig errorHandler =
163+
runTraceObjectsAcceptorInit tracerEnv tracerEnvRTView tfConfig errorHandler =
134164
acceptTraceObjectsInit
135165
tfConfig
136-
(traceObjectsHandler tracerEnv . connIdToNodeId . micConnectionId)
166+
(traceObjectsHandler tracerEnv tracerEnvRTView . connIdToNodeId . micConnectionId)
137167
(errorHandler . micConnectionId)
168+
#endif
138169

139170
runDataPointsAcceptorInit
140171
:: TracerEnv

cardano-tracer/src/Cardano/Tracer/Acceptors/Run.hs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,31 +21,50 @@ import qualified System.Metrics.Configuration as EKGF
2121
import qualified System.Metrics.ReqResp as EKGF
2222

2323
import qualified Trace.Forward.Configuration.DataPoint as DPF
24+
#if RTVIEW
2425
import qualified Trace.Forward.Configuration.TraceObject as TOF
2526
import qualified Trace.Forward.Protocol.TraceObject.Type as TOF
27+
#endif
2628

2729
-- | Run acceptors for all supported protocols.
2830
--
2931
-- There are two "network modes" for acceptors:
3032
-- 1. Server mode, when the tracer accepts connections from any number of nodes.
3133
-- 2. Client mode, when the tracer initiates connections to specified number of nodes.
34+
#if RTVIEW
35+
runAcceptors :: TracerEnv -> TracerEnvRTView -> IO ()
36+
runAcceptors tracerEnv@TracerEnv{teTracer} tracerEnvRTView = do
37+
#else
3238
runAcceptors :: TracerEnv -> IO ()
3339
runAcceptors tracerEnv@TracerEnv{teTracer} = do
40+
#endif
3441
traceWith teTracer $ TracerStartedAcceptors network
3542
case network of
3643
AcceptAt (LocalSocket p) ->
3744
-- Run one server that accepts connections from the nodes.
3845
runInLoop
46+
#if RTVIEW
47+
(runAcceptorsServer tracerEnv tracerEnvRTView p $ acceptorsConfigs p)
48+
#else
3949
(runAcceptorsServer tracerEnv p $ acceptorsConfigs p)
50+
#endif
4051
verbosity p initialPauseInSec
4152
ConnectTo localSocks ->
4253
-- Run N clients that initiate connections to the nodes.
4354
forConcurrently_ (NE.nub localSocks) $ \(LocalSocket p) ->
4455
runInLoop
56+
#if RTVIEW
57+
(runAcceptorsClient tracerEnv tracerEnvRTView p $ acceptorsConfigs p)
58+
#else
4559
(runAcceptorsClient tracerEnv p $ acceptorsConfigs p)
60+
#endif
4661
verbosity p initialPauseInSec
4762
where
63+
#if RTVIEW
4864
TracerConfig{network, ekgRequestFreq, loRequestNum, verbosity} = teConfig tracerEnv
65+
#else
66+
TracerConfig{network, ekgRequestFreq, verbosity} = teConfig tracerEnv
67+
#endif
4968

5069
acceptorsConfigs p =
5170
( EKGF.AcceptorConfiguration
@@ -55,12 +74,14 @@ runAcceptors tracerEnv@TracerEnv{teTracer} = do
5574
, EKGF.whatToRequest = EKGF.GetAllMetrics
5675
, EKGF.shouldWeStop = teProtocolsBrake tracerEnv
5776
}
77+
#if RTVIEW
5878
, TOF.AcceptorConfiguration
5979
{ TOF.acceptorTracer = mkVerbosity verbosity
6080
, TOF.forwarderEndpoint = p
6181
, TOF.whatToRequest = TOF.NumberOfTraceObjects $ fromMaybe 100 loRequestNum
6282
, TOF.shouldWeStop = teProtocolsBrake tracerEnv
6383
}
84+
#endif
6485
, DPF.AcceptorConfiguration
6586
{ DPF.acceptorTracer = mkVerbosity verbosity
6687
, DPF.forwarderEndpoint = p

0 commit comments

Comments
 (0)