Skip to content

Commit 1954583

Browse files
committed
flatten metrics
1 parent 5649296 commit 1954583

File tree

5 files changed

+140
-161
lines changed

5 files changed

+140
-161
lines changed

beacon_chain/conf.nim

Lines changed: 6 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,10 @@ export
4545
declareGauge network_name, "network name", ["name"]
4646

4747
const
48-
# TODO: How should we select between IPv4 and IPv6
49-
# Maybe there should be a config option for this.
50-
defaultAdminListenAddress* = (static parseIpAddress("127.0.0.1"))
5148
defaultSigningNodeRequestTimeout* = 60
5249
defaultBeaconNode* = "http://127.0.0.1:" & $defaultEth2RestPort
5350
defaultBeaconNodeUri* = parseUri(defaultBeaconNode)
5451
defaultGasLimit* = 60_000_000
55-
defaultAdminListenAddressDesc* = $defaultAdminListenAddress
5652
defaultBeaconNodeDesc = $defaultBeaconNode
5753

5854
when defined(windows):
@@ -403,21 +399,7 @@ type
403399
defaultValue: 0
404400
name: "stop-at-synced-epoch" .}: uint64
405401

406-
metricsEnabled* {.
407-
desc: "Enable the metrics server"
408-
defaultValue: false
409-
name: "metrics" .}: bool
410-
411-
metricsAddress* {.
412-
desc: "Listening address of the metrics server"
413-
defaultValue: defaultAdminListenAddress
414-
defaultValueDesc: $defaultAdminListenAddressDesc
415-
name: "metrics-address" .}: IpAddress
416-
417-
metricsPort* {.
418-
desc: "Listening HTTP port of the metrics server"
419-
defaultValue: 8008
420-
name: "metrics-port" .}: Port
402+
metrics* {.flatten.}: MetricsConf
421403

422404
statusBarEnabled* {.
423405
posixOnly
@@ -489,51 +471,9 @@ type
489471
desc: "The number of seconds to keep recently accessed states in memory"
490472
name: "rest-statecache-ttl" .}: Natural
491473

492-
restRequestTimeout* {.
493-
defaultValue: 0
494-
defaultValueDesc: "infinite"
495-
desc: "The number of seconds to wait until complete REST request " &
496-
"will be received"
497-
name: "rest-request-timeout" .}: Natural
498-
499-
restMaxRequestBodySize* {.
500-
defaultValue: 16_384
501-
desc: "Maximum size of REST request body (kilobytes)"
502-
name: "rest-max-body-size" .}: Natural
503-
504-
restMaxRequestHeadersSize* {.
505-
defaultValue: 128
506-
desc: "Maximum size of REST request headers (kilobytes)"
507-
name: "rest-max-headers-size" .}: Natural
508-
## NOTE: If you going to adjust this value please check value
509-
## ``ClientMaximumValidatorIds`` and comments in
510-
## `spec/eth2_apis/rest_types.nim`. This values depend on each other.
511-
512-
keymanagerEnabled* {.
513-
desc: "Enable the REST keymanager API"
514-
defaultValue: false
515-
name: "keymanager" .}: bool
516-
517-
keymanagerPort* {.
518-
desc: "Listening port for the REST keymanager API"
519-
defaultValue: defaultEth2RestPort
520-
defaultValueDesc: $defaultEth2RestPortDesc
521-
name: "keymanager-port" .}: Port
522-
523-
keymanagerAddress* {.
524-
desc: "Listening port for the REST keymanager API"
525-
defaultValue: defaultAdminListenAddress
526-
defaultValueDesc: $defaultAdminListenAddressDesc
527-
name: "keymanager-address" .}: IpAddress
528-
529-
keymanagerAllowedOrigin* {.
530-
desc: "Limit the access to the Keymanager API to a particular hostname " &
531-
"(for CORS-enabled clients such as browsers)"
532-
name: "keymanager-allow-origin" .}: Option[string]
474+
request* {.flatten.}: RequestConf
533475

534-
keymanagerTokenFile* {.
535-
desc: "A file specifying the authorization token required for accessing the keymanager API"
536-
name: "keymanager-token-file" .}: Option[InputFile]
476+
keymanager* {.flatten.}: KeymanagerConf
537477

538478
lightClientDataServe* {.
539479
desc: "Serve data for enabling light clients to stay in sync with the network"
@@ -952,23 +892,6 @@ type
952892
desc: "A directory containing validator keystore passwords"
953893
name: "secrets-dir" .}: Option[InputDir]
954894

955-
restRequestTimeout* {.
956-
defaultValue: 0
957-
defaultValueDesc: "infinite"
958-
desc: "The number of seconds to wait until complete REST request " &
959-
"will be received"
960-
name: "rest-request-timeout" .}: Natural
961-
962-
restMaxRequestBodySize* {.
963-
defaultValue: 16_384
964-
desc: "Maximum size of REST request body (kilobytes)"
965-
name: "rest-max-body-size" .}: Natural
966-
967-
restMaxRequestHeadersSize* {.
968-
defaultValue: 64
969-
desc: "Maximum size of REST request headers (kilobytes)"
970-
name: "rest-max-headers-size" .}: Natural
971-
972895
# Same option as appears in Lighthouse and Prysm
973896
# https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html
974897
# https://github.com/prysmaticlabs/prysm/pull/10312
@@ -981,47 +904,11 @@ type
981904
defaultValue: defaultGasLimit
982905
name: "suggested-gas-limit" .}: uint64
983906

984-
keymanagerEnabled* {.
985-
desc: "Enable the REST keymanager API"
986-
defaultValue: false
987-
name: "keymanager" .}: bool
988-
989-
keymanagerPort* {.
990-
desc: "Listening port for the REST keymanager API"
991-
defaultValue: defaultEth2RestPort
992-
defaultValueDesc: $defaultEth2RestPortDesc
993-
name: "keymanager-port" .}: Port
994-
995-
keymanagerAddress* {.
996-
desc: "Listening port for the REST keymanager API"
997-
defaultValue: defaultAdminListenAddress
998-
defaultValueDesc: $defaultAdminListenAddressDesc
999-
name: "keymanager-address" .}: IpAddress
1000-
1001-
keymanagerAllowedOrigin* {.
1002-
desc: "Limit the access to the Keymanager API to a particular hostname " &
1003-
"(for CORS-enabled clients such as browsers)"
1004-
name: "keymanager-allow-origin" .}: Option[string]
1005-
1006-
keymanagerTokenFile* {.
1007-
desc: "A file specifying the authorizition token required for accessing the keymanager API"
1008-
name: "keymanager-token-file" .}: Option[InputFile]
907+
request* {.flatten.}: RequestConf
1009908

1010-
metricsEnabled* {.
1011-
desc: "Enable the metrics server (BETA)"
1012-
defaultValue: false
1013-
name: "metrics" .}: bool
1014-
1015-
metricsAddress* {.
1016-
desc: "Listening address of the metrics server (BETA)"
1017-
defaultValue: defaultAdminListenAddress
1018-
defaultValueDesc: $defaultAdminListenAddressDesc
1019-
name: "metrics-address" .}: IpAddress
909+
keymanager* {.flatten.}: KeymanagerConf
1020910

1021-
metricsPort* {.
1022-
desc: "Listening HTTP port of the metrics server (BETA)"
1023-
defaultValue: 8108
1024-
name: "metrics-port" .}: Port
911+
metrics* {.flatten.}: MetricsBetaConf
1025912

1026913
graffiti* {.
1027914
desc: "The graffiti value that will appear in proposed blocks. " &

beacon_chain/nimbus_beacon_node.nim

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -984,7 +984,7 @@ proc init*(
984984
config.restAllowedOrigin,
985985
validateBeaconApiQueries,
986986
nimbusAgentStr,
987-
config)
987+
config.request)
988988
else:
989989
nil
990990

@@ -1041,7 +1041,7 @@ proc init*(
10411041
validatorPool = newClone(ValidatorPool.init(
10421042
slashingProtectionDB, config.doppelgangerDetection))
10431043

1044-
keymanagerInitResult = initKeymanagerServer(config, restServer)
1044+
keymanagerInitResult = initKeymanagerServer(config.keymanager, config.request, restServer)
10451045
keymanagerHost = if keymanagerInitResult.server != nil:
10461046
newClone KeymanagerHost.init(
10471047
validatorPool,
@@ -2845,7 +2845,7 @@ proc doRunBeaconNode(
28452845
# we disable piggy-backing on other metrics here.
28462846
setSystemMetricsAutomaticUpdate(false)
28472847

2848-
node.metricsServer = waitFor(config.initMetricsServer()).valueOr:
2848+
node.metricsServer = waitFor(initMetricsServer(config.metrics)).valueOr:
28492849
return
28502850

28512851
when not defined(windows):

0 commit comments

Comments
 (0)