@@ -85,16 +85,19 @@ import qualified Data.Aeson.Key as Aeson
8585import qualified Data.Aeson.KeyMap as Aeson
8686import Data.Bifunctor (bimap )
8787import qualified Data.Default.Class as DefaultClass
88+ import Data.IORef
8889import Data.Proxy
8990import Data.Ratio
9091import Data.Scientific
92+ import Data.String
9193import Data.Text (Text )
9294import qualified Data.Text as Text
9395import Data.Time (UTCTime )
9496import Data.Word (Word64 )
9597import Lens.Micro
9698import Numeric.Natural
9799import System.FilePath ((</>) )
100+ import System.IO.Unsafe
98101
99102import Test.Cardano.Ledger.Core.Rational
100103import Testnet.Start.Types
@@ -174,6 +177,11 @@ defaultConwayGenesis = do
174177 , cgInitialDReps = mempty
175178 }
176179
180+ -- TODO REMOVE
181+ nCounter :: IORef Int
182+ nCounter = unsafePerformIO $ newIORef 0
183+ {-# NOINLINE nCounter #-}
184+
177185-- | The only era supported by cardano-testnet for the moment.
178186-- It's important to keep the era parameterization everywhere, for ease of development
179187-- when new eras roll out.
@@ -186,7 +194,7 @@ defaultYamlHardforkViaConfig :: ShelleyBasedEra era -> Aeson.KeyMap Aeson.Value
186194defaultYamlHardforkViaConfig sbe =
187195 defaultYamlConfig
188196 <> tracers
189- <> [(" TraceOptions" , Aeson. Object mempty )]
197+ <> [(" TraceOptions" , traceOptions )]
190198 <> protocolVersions sbe
191199 <> hardforkViaConfig sbe
192200 where
@@ -300,6 +308,19 @@ defaultYamlHardforkViaConfig sbe =
300308 , (proxyName (Proxy @ TraceTxSubmissionProtocol ), False )
301309 ]
302310
311+ traceOptions = do
312+ let n = unsafePerformIO . atomicModifyIORef nCounter $ \ n' -> (n'+ 1 , n')
313+ Aeson. object
314+ [ " " .= Aeson. object
315+ [ " backends" .= Aeson. Array
316+ [ " EKGBackend"
317+ , " Forwarder"
318+ , fromString $ " PrometheusSimple suffix 0.0.0.0 " <> show (12798 + n - 1 )
319+ , " Stdout HumanFormatColoured"
320+ ]
321+ ]
322+ ]
323+
303324defaultYamlConfig :: Aeson. KeyMap Aeson. Value
304325defaultYamlConfig =
305326 Aeson. fromList
0 commit comments