Add metrics server for wakunode

This commit is contained in:
kdeme 2019-12-18 00:26:53 +01:00 committed by zah
parent 0f121927b5
commit b761d1b7e4
2 changed files with 32 additions and 10 deletions

View File

@ -62,6 +62,16 @@ type
defaultValue: false
name: "whisper-bridge" }: bool
wakuMode* {.
desc: "Select the Waku mode.",
defaultValue: WakuSan
name: "waku-mode" }: WakuMode
wakuPow* {.
desc: "PoW requirement of Waku node.",
defaultValue: 0.002
name: "waku-pow" }: float64
nodekey* {.
desc: "P2P node private key as hex.",
defaultValue: newKeyPair()
@ -88,19 +98,23 @@ type
defaultValue: 8545
name: "rpc-port" }: uint16
wakuMode* {.
desc: "Select the Waku mode.",
defaultValue: WakuSan
name: "waku-mode" }: WakuMode
metricsServer* {.
desc: "Enable the metrics server."
defaultValue: false
name: "metrics-server" }: bool
wakuPow* {.
desc: "PoW requirement of Waku node.",
defaultValue: 0.002
name: "waku-pow" }: float64
metricsServerAddress* {.
desc: "Listening address of the metrics server."
defaultValue: parseIpAddress("127.0.0.1")
name: "metrics-server-address" }: IpAddress
metricsServerPort* {.
desc: "Listening HTTP port of the metrics server."
defaultValue: 8008
name: "metrics-server-port" }: uint16
# TODO:
# - nat
# - metrics
# - discv5 + topic register
# - mailserver functionality

View File

@ -1,5 +1,5 @@
import
confutils, config, chronos, json_rpc/rpcserver,
confutils, config, chronos, json_rpc/rpcserver, metrics,
chronicles/topics_registry, # TODO: What? Need this for setLoglevel, weird.
eth/[keys, p2p, async_utils],
eth/p2p/[discovery, enode, peer_pool, bootnodes, whispernodes],
@ -73,6 +73,14 @@ proc run(config: WakuNodeConf) =
setupWakuRPC(node, keys, rpcServer)
rpcServer.start()
when defined(insecure):
if config.metricsServer:
let
address = config.metricsServerAddress
port = config.metricsServerPort + config.portsShift
info "Starting metrics HTTP server", address, port
metrics.startHttpServer($address, Port(port))
runForever()
when isMainModule: