Skip to content

Commit

Permalink
Merge #3941
Browse files Browse the repository at this point in the history
3941: tx-generator: zero config legacy tracing r=MarcFontaine a=MarcFontaine

This is a fallback until the tx-generator has been ported to the new tracing infrastructure.
The fallback kicks in, if the tx-generator is started with a node configuration that uses the tracing infrastructure.

Co-authored-by: MarcFontaine <MarcFontaine@users.noreply.github.com>
  • Loading branch information
iohk-bors[bot] and MarcFontaine authored May 30, 2022
2 parents d3abcae + eb5d966 commit b51e705
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 11 deletions.
50 changes: 42 additions & 8 deletions bench/tx-generator/src/Cardano/Benchmarking/Script/NodeConfig.hs
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}

module Cardano.Benchmarking.Script.NodeConfig
( startProtocol
, shutDownLogging
Expand All @@ -6,17 +10,24 @@ module Cardano.Benchmarking.Script.NodeConfig
import Paths_tx_generator (version)
import Prelude

import Data.Bifunctor (second)
import Data.Monoid
import Data.Text (pack)
import Data.Text as Text
import Data.Version (showVersion)

import Control.Concurrent (threadDelay)
import Control.Monad (forM_)
import Control.Monad.IO.Class
import Control.Monad.Trans.Except

import Cardano.Tracing.Config (TraceOptions(..))
import Cardano.BM.Data.Backend
import Cardano.BM.Tracing
import qualified Cardano.BM.Configuration.Model as CM
import Cardano.BM.Setup (setupTrace_)
import Cardano.BM.Data.LogItem (mapLogObject)

import Cardano.Tracing.Config (TraceOptions(..))
import Cardano.BM.Data.Output
import Cardano.Node.Configuration.Logging (LoggingLayer, createLoggingLayer, shutdownLoggingLayer)
import Cardano.Node.Configuration.POM
import Cardano.Node.Handlers.Shutdown
Expand Down Expand Up @@ -50,6 +61,33 @@ makeLegacyLoggingLayer nc ptcl = liftToAction $ withExceptT NodeConfigError $
nc {ncTraceConfig=TracingOff}
ptcl

initLegacyTracer :: ActionM ()
initLegacyTracer = do
baseTracer <- liftIO $ do
c <- defaultConfigStdout
CM.setDefaultBackends c [KatipBK ]
CM.setSetupBackends c [KatipBK ]
CM.setDefaultBackends c [KatipBK ]
CM.setSetupScribes c [ ScribeDefinition {
scName = "cli"
, scFormat = ScJson
, scKind = StdoutSK
, scPrivacy = ScPublic
, scMinSev = minBound
, scMaxSev = maxBound
, scRotation = Nothing
}
]
CM.setScribes c "cardano.cli" (Just ["StdoutSK::cli"])
(tr :: Trace IO String, _switchboard) <- setupTrace_ c "cardano"

let tr' = appendName "cli" tr
return tr'

let
(bt :: Trace IO Text.Text) = contramap (second $ mapLogObject Text.unpack) baseTracer
set Store.BenchTracers $ initTracers bt bt

makeNodeConfig :: FilePath -> ActionM NodeConfiguration
makeNodeConfig logConfig = liftToAction $ ExceptT $ do
let configFp = ConfigYamlFilePath logConfig
Expand Down Expand Up @@ -80,16 +118,12 @@ startProtocol filePath = do
set Genesis $ Core.getGenesis protocol
set (User TNetworkId) $ protocolToNetworkId protocol
case ncTraceConfig nodeConfig of
TraceDispatcher _ -> do
set Store.LoggingLayer Nothing
set Store.BenchTracers createDebugTracers
TraceDispatcher _ -> initLegacyTracer
TracingOnLegacy _ -> do
loggingLayer <- makeLegacyLoggingLayer nodeConfig protocol
set Store.LoggingLayer $ Just loggingLayer
set Store.BenchTracers $ createLoggingLayerTracers loggingLayer
TracingOff -> do
set Store.LoggingLayer Nothing
set Store.BenchTracers createDebugTracers
TracingOff -> initLegacyTracer

shutDownLogging :: ActionM ()
shutDownLogging = do
Expand Down
11 changes: 8 additions & 3 deletions bench/tx-generator/src/Cardano/Benchmarking/Tracer.hs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ module Cardano.Benchmarking.Tracer
, TraceBenchTxSubmit(..)
, TraceLowLevelSubmit(..)
, createLoggingLayerTracers
, createTracers
, createDebugTracers
, initTracers
) where


Expand Down Expand Up @@ -73,10 +75,13 @@ data BenchTracers =
, btN2N_ :: Tracer IO NodeToNodeSubmissionTrace
}

createDebugTracers :: BenchTracers
createDebugTracers = initTracers tr tr
createTracers :: Tracer IO String -> BenchTracers
createTracers baseTr = initTracers tr tr
where
tr = contramap (\(_,t) -> BSL.unpack $ encode t) debugTracer
tr = contramap (\(_,t) -> BSL.unpack $ encode t) baseTr

createDebugTracers :: BenchTracers
createDebugTracers = createTracers debugTracer

createLoggingLayerTracers :: LoggingLayer -> BenchTracers
createLoggingLayerTracers loggingLayer
Expand Down

0 comments on commit b51e705

Please sign in to comment.