Skip to content

Commit a2846fd

Browse files
committed
flatten metrics
1 parent 8b2923a commit a2846fd

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):
@@ -408,21 +404,7 @@ type
408404
defaultValue: 0
409405
name: "stop-at-synced-epoch" .}: uint64
410406

411-
metricsEnabled* {.
412-
desc: "Enable the metrics server"
413-
defaultValue: false
414-
name: "metrics" .}: bool
415-
416-
metricsAddress* {.
417-
desc: "Listening address of the metrics server"
418-
defaultValue: defaultAdminListenAddress
419-
defaultValueDesc: $defaultAdminListenAddressDesc
420-
name: "metrics-address" .}: IpAddress
421-
422-
metricsPort* {.
423-
desc: "Listening HTTP port of the metrics server"
424-
defaultValue: 8008
425-
name: "metrics-port" .}: Port
407+
metrics* {.flatten.}: MetricsConf
426408

427409
statusBarEnabled* {.
428410
posixOnly
@@ -494,51 +476,9 @@ type
494476
desc: "The number of seconds to keep recently accessed states in memory"
495477
name: "rest-statecache-ttl" .}: Natural
496478

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

539-
keymanagerTokenFile* {.
540-
desc: "A file specifying the authorization token required for accessing the keymanager API"
541-
name: "keymanager-token-file" .}: Option[InputFile]
481+
keymanager* {.flatten.}: KeymanagerConf
542482

543483
lightClientDataServe* {.
544484
desc: "Serve data for enabling light clients to stay in sync with the network"
@@ -957,23 +897,6 @@ type
957897
desc: "A directory containing validator keystore passwords"
958898
name: "secrets-dir" .}: Option[InputDir]
959899

960-
restRequestTimeout* {.
961-
defaultValue: 0
962-
defaultValueDesc: "infinite"
963-
desc: "The number of seconds to wait until complete REST request " &
964-
"will be received"
965-
name: "rest-request-timeout" .}: Natural
966-
967-
restMaxRequestBodySize* {.
968-
defaultValue: 16_384
969-
desc: "Maximum size of REST request body (kilobytes)"
970-
name: "rest-max-body-size" .}: Natural
971-
972-
restMaxRequestHeadersSize* {.
973-
defaultValue: 64
974-
desc: "Maximum size of REST request headers (kilobytes)"
975-
name: "rest-max-headers-size" .}: Natural
976-
977900
# Same option as appears in Lighthouse and Prysm
978901
# https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html
979902
# https://github.com/prysmaticlabs/prysm/pull/10312
@@ -986,47 +909,11 @@ type
986909
defaultValue: defaultGasLimit
987910
name: "suggested-gas-limit" .}: uint64
988911

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

1015-
metricsEnabled* {.
1016-
desc: "Enable the metrics server (BETA)"
1017-
defaultValue: false
1018-
name: "metrics" .}: bool
1019-
1020-
metricsAddress* {.
1021-
desc: "Listening address of the metrics server (BETA)"
1022-
defaultValue: defaultAdminListenAddress
1023-
defaultValueDesc: $defaultAdminListenAddressDesc
1024-
name: "metrics-address" .}: IpAddress
914+
keymanager* {.flatten.}: KeymanagerConf
1025915

1026-
metricsPort* {.
1027-
desc: "Listening HTTP port of the metrics server (BETA)"
1028-
defaultValue: 8108
1029-
name: "metrics-port" .}: Port
916+
metrics* {.flatten.}: MetricsBetaConf
1030917

1031918
graffiti* {.
1032919
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
@@ -994,7 +994,7 @@ proc init*(
994994
config.restAllowedOrigin,
995995
validateBeaconApiQueries,
996996
nimbusAgentStr,
997-
config)
997+
config.request)
998998
else:
999999
nil
10001000

@@ -1051,7 +1051,7 @@ proc init*(
10511051
validatorPool = newClone(ValidatorPool.init(
10521052
slashingProtectionDB, config.doppelgangerDetection))
10531053

1054-
keymanagerInitResult = initKeymanagerServer(config, restServer)
1054+
keymanagerInitResult = initKeymanagerServer(config.keymanager, config.request, restServer)
10551055
keymanagerHost = if keymanagerInitResult.server != nil:
10561056
newClone KeymanagerHost.init(
10571057
validatorPool,
@@ -2876,7 +2876,7 @@ proc doRunBeaconNode(
28762876
# we disable piggy-backing on other metrics here.
28772877
setSystemMetricsAutomaticUpdate(false)
28782878

2879-
node.metricsServer = waitFor(config.initMetricsServer()).valueOr:
2879+
node.metricsServer = waitFor(initMetricsServer(config.metrics)).valueOr:
28802880
return
28812881

28822882
when not defined(windows):

0 commit comments

Comments
 (0)