@@ -84,16 +84,19 @@ import qualified Data.Aeson.Key as Aeson
8484import qualified Data.Aeson.KeyMap as Aeson
8585import Data.Bifunctor (bimap )
8686import qualified Data.Default.Class as DefaultClass
87+ import Data.IORef
8788import Data.Proxy
8889import Data.Ratio
8990import Data.Scientific
91+ import Data.String
9092import Data.Text (Text )
9193import qualified Data.Text as Text
9294import Data.Time (UTCTime )
9395import Data.Word (Word64 )
9496import Lens.Micro
9597import Numeric.Natural
9698import System.FilePath ((</>) )
99+ import System.IO.Unsafe
97100
98101import Test.Cardano.Ledger.Core.Rational
99102import Testnet.Start.Types
@@ -169,6 +172,11 @@ defaultConwayGenesis = do
169172 , cgInitialDReps = mempty
170173 }
171174
175+ -- TODO REMOVE
176+ nCounter :: IORef Int
177+ nCounter = unsafePerformIO $ newIORef 0
178+ {-# NOINLINE nCounter #-}
179+
172180-- | The only era supported by cardano-testnet for the moment.
173181-- It's important to keep the era parameterization everywhere, for ease of development
174182-- when new eras roll out.
@@ -181,7 +189,7 @@ defaultYamlHardforkViaConfig :: ShelleyBasedEra era -> Aeson.KeyMap Aeson.Value
181189defaultYamlHardforkViaConfig sbe =
182190 defaultYamlConfig
183191 <> tracers
184- <> [(" TraceOptions" , Aeson. Object mempty )]
192+ <> [(" TraceOptions" , traceOptions )]
185193 <> protocolVersions sbe
186194 <> hardforkViaConfig sbe
187195 where
@@ -295,6 +303,19 @@ defaultYamlHardforkViaConfig sbe =
295303 , (proxyName (Proxy @ TraceTxSubmissionProtocol ), False )
296304 ]
297305
306+ traceOptions = do
307+ let n = unsafePerformIO . atomicModifyIORef nCounter $ \ n' -> (n'+ 1 , n')
308+ Aeson. object
309+ [ " " .= Aeson. object
310+ [ " backends" .= Aeson. Array
311+ [ " EKGBackend"
312+ , " Forwarder"
313+ , fromString $ " PrometheusSimple suffix 0.0.0.0 " <> show (12798 + n - 1 )
314+ , " Stdout HumanFormatColoured"
315+ ]
316+ ]
317+ ]
318+
298319defaultYamlConfig :: Aeson. KeyMap Aeson. Value
299320defaultYamlConfig =
300321 Aeson. fromList
0 commit comments