Skip to content

Commit 47247f6

Browse files
Merge #4281
4281: Configurable metrics port in submit-api r=newhoggy a=newhoggy Resolves #4280 Co-authored-by: John Ky <[email protected]>
2 parents 1d63ed5 + 2847e23 commit 47247f6

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed

cardano-submit-api/src/Cardano/TxSubmit.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ runTxSubmitWebapi :: TxSubmitNodeParams -> IO ()
3030
runTxSubmitWebapi tsnp = do
3131
tsnc <- readTxSubmitNodeConfig (unConfigFile $ tspConfigFile tsnp)
3232
trce <- mkTracer tsnc
33-
(metrics, metricsServer) <- registerMetricsServer
33+
(metrics, metricsServer) <- registerMetricsServer (tspMetricsPort tsnp)
3434
txSubmitServer <- Async.async $
3535
runTxSubmitServer trce metrics tspWebserverConfig tspProtocol tspNetworkId tspSocketPath
3636
void $ Async.waitAnyCancel

cardano-submit-api/src/Cardano/TxSubmit/CLI/Parsers.hs

+10
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import Cardano.TxSubmit.Rest.Parsers (pWebserverConfig)
1818
import Control.Applicative (Alternative (..), Applicative (..), (<**>))
1919
import Data.Function ((.))
2020
import Data.Functor (Functor (fmap), (<$>))
21+
import Data.Int
2122
import Data.Semigroup (Semigroup ((<>)))
2223
import Data.Word (Word64)
2324
import Options.Applicative (Parser, ParserInfo)
@@ -37,6 +38,7 @@ pTxSubmitNodeParams = TxSubmitNodeParams
3738
<*> pNetworkId
3839
<*> pSocketPath
3940
<*> pWebserverConfig 8090
41+
<*> pMetricsPort 8081
4042

4143
pConfigFile :: Parser ConfigFile
4244
pConfigFile = ConfigFile <$> Opt.strOption
@@ -122,3 +124,11 @@ pSocketPath = SocketPath <$> Opt.strOption
122124
<> Opt.completer (Opt.bashCompleter "file")
123125
<> Opt.metavar "FILEPATH"
124126
)
127+
128+
pMetricsPort :: Int -> Parser Int
129+
pMetricsPort defaultValue = Opt.option Opt.auto
130+
( Opt.long "metrics-port"
131+
<> Opt.help "Metrics port"
132+
<> Opt.metavar "PORT"
133+
<> Opt.value defaultValue
134+
)

cardano-submit-api/src/Cardano/TxSubmit/CLI/Types.hs

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module Cardano.TxSubmit.CLI.Types
77

88
import Cardano.Api (AnyConsensusModeParams, NetworkId (..))
99
import Cardano.TxSubmit.Rest.Types (WebserverConfig)
10+
import Data.Int
1011
import System.IO (FilePath)
1112

1213
-- | The product type of all command line arguments
@@ -16,6 +17,7 @@ data TxSubmitNodeParams = TxSubmitNodeParams
1617
, tspNetworkId :: !NetworkId
1718
, tspSocketPath :: !SocketPath
1819
, tspWebserverConfig :: !WebserverConfig
20+
, tspMetricsPort :: !Int
1921
}
2022

2123
newtype ConfigFile = ConfigFile

cardano-submit-api/src/Cardano/TxSubmit/Metrics.hs

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Control.Applicative (Applicative (pure), (<$>))
1111
import Control.Concurrent.Async (Async, async)
1212
import Control.Monad.Reader (MonadIO (liftIO), MonadReader (ask), ReaderT (runReaderT))
1313
import Data.Function (($), (.))
14+
import Data.Int
1415
import Data.Monoid (Monoid (mempty))
1516
import System.IO (IO)
1617
import System.Metrics.Prometheus.Concurrent.RegistryT (RegistryT (..), registerGauge,
@@ -22,12 +23,12 @@ newtype TxSubmitMetrics = TxSubmitMetrics
2223
{ tsmCount :: Gauge
2324
}
2425

25-
registerMetricsServer :: IO (TxSubmitMetrics, Async ())
26-
registerMetricsServer =
26+
registerMetricsServer :: Int -> IO (TxSubmitMetrics, Async ())
27+
registerMetricsServer metricsPort =
2728
runRegistryT $ do
2829
metrics <- makeMetrics
2930
registry <- RegistryT ask
30-
server <- liftIO . async $ runReaderT (unRegistryT $ serveMetricsT 8081 []) registry
31+
server <- liftIO . async $ runReaderT (unRegistryT $ serveMetricsT metricsPort []) registry
3132
pure (metrics, server)
3233

3334
makeMetrics :: RegistryT IO TxSubmitMetrics

0 commit comments

Comments
 (0)