From 538ee12a25ba2e6d961472a9cbf21e98dc89de42 Mon Sep 17 00:00:00 2001 From: Lorenzo Delgado Date: Sun, 17 Jul 2022 17:16:57 +0200 Subject: [PATCH] refactor(wakunode2): Split wankunode2 metrics setup to its own file --- waku/v2/node/waku_setup.nim | 30 --------------- waku/v2/node/wakunode2.nim | 4 ++ waku/v2/node/wakunode2_setup_metrics.nim | 47 ++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 30 deletions(-) create mode 100644 waku/v2/node/wakunode2_setup_metrics.nim diff --git a/waku/v2/node/waku_setup.nim b/waku/v2/node/waku_setup.nim index e512231b6..29037f76d 100644 --- a/waku/v2/node/waku_setup.nim +++ b/waku/v2/node/waku_setup.nim @@ -65,36 +65,6 @@ proc startRpc*(node: WakuNode, rpcIp: ValidIpAddress, rpcPort: Port, conf: WakuN rpcServer.start() info "RPC Server started", ta -proc startMetricsServer*(serverIp: ValidIpAddress, serverPort: Port) = - info "Starting metrics HTTP server", serverIp, serverPort - - try: - startMetricsHttpServer($serverIp, serverPort) - except Exception as e: - raiseAssert("Exception while starting metrics HTTP server: " & e.msg) - - info "Metrics HTTP server started", serverIp, serverPort - -proc startMetricsLog*() = - # https://github.com/nim-lang/Nim/issues/17369 - var logMetrics: proc(udata: pointer) {.gcsafe, raises: [Defect].} - logMetrics = proc(udata: pointer) = - {.gcsafe.}: - # TODO: libp2p_pubsub_peers is not public, so we need to make this either - # public in libp2p or do our own peer counting after all. - var - totalMessages = 0.float64 - - for key in waku_node_messages.metrics.keys(): - try: - totalMessages = totalMessages + waku_node_messages.value(key) - except KeyError: - discard - - info "Node metrics", totalMessages - discard setTimer(Moment.fromNow(2.seconds), logMetrics) - discard setTimer(Moment.fromNow(2.seconds), logMetrics) - proc runMigrations*(sqliteDatabase: SqliteDatabase, conf: WakuNodeConf) = # Run migration scripts on persistent storage diff --git a/waku/v2/node/wakunode2.nim b/waku/v2/node/wakunode2.nim index 7be90cc86..ab4af75bb 100644 --- a/waku/v2/node/wakunode2.nim +++ b/waku/v2/node/wakunode2.nim @@ -791,7 +791,11 @@ when isMainModule: ../../common/utils/nat, ./config, ./waku_setup, +<<<<<<< HEAD ./wakunode2_setup_rest, +======= + ./wakunode2_setup_metrics, +>>>>>>> 37a9c0c1 (refactor(wakunode2): Split wankunode2 metrics setup to its own file) ./storage/message/waku_message_store, ./storage/peer/waku_peer_storage diff --git a/waku/v2/node/wakunode2_setup_metrics.nim b/waku/v2/node/wakunode2_setup_metrics.nim new file mode 100644 index 000000000..7b5dd970a --- /dev/null +++ b/waku/v2/node/wakunode2_setup_metrics.nim @@ -0,0 +1,47 @@ +{.push raises: [Defect].} + +import + stew/results, + stew/shims/net, + chronicles, + chronos, + metrics, + metrics/chronos_httpserver, + ./config, + ./wakunode2 + +logScope: + topics = "wakunode.setup.metrics" + + +proc startMetricsServer*(serverIp: ValidIpAddress, serverPort: Port) = + info "Starting metrics HTTP server", serverIp, serverPort + + try: + startMetricsHttpServer($serverIp, serverPort) + except Exception as e: + raiseAssert("Exception while starting metrics HTTP server: " & e.msg) + + info "Metrics HTTP server started", serverIp, serverPort + + +proc startMetricsLog*() = + # https://github.com/nim-lang/Nim/issues/17369 + var logMetrics: proc(udata: pointer) {.gcsafe, raises: [Defect].} + + logMetrics = proc(udata: pointer) = + {.gcsafe.}: + # TODO: libp2p_pubsub_peers is not public, so we need to make this either + # public in libp2p or do our own peer counting after all. + var totalMessages = 0.float64 + for key in waku_node_messages.metrics.keys(): + try: + totalMessages = totalMessages + waku_node_messages.value(key) + except KeyError: + discard + + info "Node metrics", totalMessages + discard setTimer(Moment.fromNow(2.seconds), logMetrics) + + discard setTimer(Moment.fromNow(2.seconds), logMetrics) + \ No newline at end of file