mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-02 14:03:06 +00:00
feat: retrieve metrics from libwaku (#3452)
This commit is contained in:
parent
17c842a542
commit
25a3f4192c
@ -305,10 +305,10 @@ int main(int argc, char** argv) {
|
|||||||
\"storeMessageDbUrl\": \"%s\", \
|
\"storeMessageDbUrl\": \"%s\", \
|
||||||
\"storeMessageRetentionPolicy\": \"%s\", \
|
\"storeMessageRetentionPolicy\": \"%s\", \
|
||||||
\"storeMaxNumDbConnections\": %d , \
|
\"storeMaxNumDbConnections\": %d , \
|
||||||
\"logLevel\": \"FATAL\", \
|
\"logLevel\": \"DEBUG\", \
|
||||||
\"discv5Discovery\": true, \
|
\"discv5Discovery\": true, \
|
||||||
\"discv5BootstrapNodes\": \
|
\"discv5BootstrapNodes\": \
|
||||||
[\"enr:-QESuEB4Dchgjn7gfAvwB00CxTA-nGiyk-aALI-H4dYSZD3rUk7bZHmP8d2U6xDiQ2vZffpo45Jp7zKNdnwDUx6g4o6XAYJpZIJ2NIJpcIRA4VDAim11bHRpYWRkcnO4XAArNiZub2RlLTAxLmRvLWFtczMud2FrdS5zYW5kYm94LnN0YXR1cy5pbQZ2XwAtNiZub2RlLTAxLmRvLWFtczMud2FrdS5zYW5kYm94LnN0YXR1cy5pbQYfQN4DgnJzkwABCAAAAAEAAgADAAQABQAGAAeJc2VjcDI1NmsxoQOvD3S3jUNICsrOILlmhENiWAMmMVlAl6-Q8wRB7hidY4N0Y3CCdl-DdWRwgiMohXdha3UyDw\", \"enr:-QEkuEBIkb8q8_mrorHndoXH9t5N6ZfD-jehQCrYeoJDPHqT0l0wyaONa2-piRQsi3oVKAzDShDVeoQhy0uwN1xbZfPZAYJpZIJ2NIJpcIQiQlleim11bHRpYWRkcnO4bgA0Ni9ub2RlLTAxLmdjLXVzLWNlbnRyYWwxLWEud2FrdS5zYW5kYm94LnN0YXR1cy5pbQZ2XwA2Ni9ub2RlLTAxLmdjLXVzLWNlbnRyYWwxLWEud2FrdS5zYW5kYm94LnN0YXR1cy5pbQYfQN4DgnJzkwABCAAAAAEAAgADAAQABQAGAAeJc2VjcDI1NmsxoQKnGt-GSgqPSf3IAPM7bFgTlpczpMZZLF3geeoNNsxzSoN0Y3CCdl-DdWRwgiMohXdha3UyDw\"], \
|
[\"enr:-QEKuED9AJm2HGgrRpVaJY2nj68ao_QiPeUT43sK-aRM7sMJ6R4G11OSDOwnvVacgN1sTw-K7soC5dzHDFZgZkHU0u-XAYJpZIJ2NIJpcISnYxMvim11bHRpYWRkcnO4WgAqNiVib290LTAxLmRvLWFtczMuc3RhdHVzLnByb2Quc3RhdHVzLmltBnZfACw2JWJvb3QtMDEuZG8tYW1zMy5zdGF0dXMucHJvZC5zdGF0dXMuaW0GAbveA4Jyc40AEAUAAQAgAEAAgAEAiXNlY3AyNTZrMaEC3rRtFQSgc24uWewzXaxTY8hDAHB8sgnxr9k8Rjb5GeSDdGNwgnZfg3VkcIIjKIV3YWt1Mg0\", \"enr:-QEcuED7ww5vo2rKc1pyBp7fubBUH-8STHEZHo7InjVjLblEVyDGkjdTI9VdqmYQOn95vuQH-Htku17WSTzEufx-Wg4mAYJpZIJ2NIJpcIQihw1Xim11bHRpYWRkcnO4bAAzNi5ib290LTAxLmdjLXVzLWNlbnRyYWwxLWEuc3RhdHVzLnByb2Quc3RhdHVzLmltBnZfADU2LmJvb3QtMDEuZ2MtdXMtY2VudHJhbDEtYS5zdGF0dXMucHJvZC5zdGF0dXMuaW0GAbveA4Jyc40AEAUAAQAgAEAAgAEAiXNlY3AyNTZrMaECxjqgDQ0WyRSOilYU32DA5k_XNlDis3m1VdXkK9xM6kODdGNwgnZfg3VkcIIjKIV3YWt1Mg0\", \"enr:-QEcuEAoShWGyN66wwusE3Ri8hXBaIkoHZHybUB8cCPv5v3ypEf9OCg4cfslJxZFANl90s-jmMOugLUyBx4EfOBNJ6_VAYJpZIJ2NIJpcIQI2hdMim11bHRpYWRkcnO4bAAzNi5ib290LTAxLmFjLWNuLWhvbmdrb25nLWMuc3RhdHVzLnByb2Quc3RhdHVzLmltBnZfADU2LmJvb3QtMDEuYWMtY24taG9uZ2tvbmctYy5zdGF0dXMucHJvZC5zdGF0dXMuaW0GAbveA4Jyc40AEAUAAQAgAEAAgAEAiXNlY3AyNTZrMaEDP7CbRk-YKJwOFFM4Z9ney0GPc7WPJaCwGkpNRyla7mCDdGNwgnZfg3VkcIIjKIV3YWt1Mg0\"], \
|
||||||
\"discv5UdpPort\": 9999, \
|
\"discv5UdpPort\": 9999, \
|
||||||
\"dnsDiscoveryUrl\": \"enrtree://AMOJVZX4V6EXP7NTJPMAYJYST2QP6AJXYW76IU6VGJS7UVSNDYZG4@boot.prod.status.nodes.status.im\", \
|
\"dnsDiscoveryUrl\": \"enrtree://AMOJVZX4V6EXP7NTJPMAYJYST2QP6AJXYW76IU6VGJS7UVSNDYZG4@boot.prod.status.nodes.status.im\", \
|
||||||
\"dnsDiscoveryNameServers\": [\"8.8.8.8\", \"1.0.0.1\"] \
|
\"dnsDiscoveryNameServers\": [\"8.8.8.8\", \"1.0.0.1\"] \
|
||||||
@ -353,6 +353,11 @@ int main(int argc, char** argv) {
|
|||||||
show_main_menu();
|
show_main_menu();
|
||||||
while(1) {
|
while(1) {
|
||||||
handle_user_input();
|
handle_user_input();
|
||||||
|
|
||||||
|
// Uncomment the following if need to test the metrics retrieval
|
||||||
|
// WAKU_CALL( waku_get_metrics(ctx,
|
||||||
|
// event_handler,
|
||||||
|
// userData) );
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_mutex_destroy(&mutex);
|
pthread_mutex_destroy(&mutex);
|
||||||
|
|||||||
@ -225,6 +225,10 @@ int waku_get_my_peerid(void* ctx,
|
|||||||
WakuCallBack callback,
|
WakuCallBack callback,
|
||||||
void* userData);
|
void* userData);
|
||||||
|
|
||||||
|
int waku_get_metrics(void* ctx,
|
||||||
|
WakuCallBack callback,
|
||||||
|
void* userData);
|
||||||
|
|
||||||
int waku_peer_exchange_request(void* ctx,
|
int waku_peer_exchange_request(void* ctx,
|
||||||
int numPeers,
|
int numPeers,
|
||||||
WakuCallBack callback,
|
WakuCallBack callback,
|
||||||
|
|||||||
@ -796,6 +796,20 @@ proc waku_get_my_peerid(
|
|||||||
userData,
|
userData,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
proc waku_get_metrics(
|
||||||
|
ctx: ptr WakuContext, callback: WakuCallBack, userData: pointer
|
||||||
|
): cint {.dynlib, exportc.} =
|
||||||
|
initializeLibrary()
|
||||||
|
checkLibwakuParams(ctx, callback, userData)
|
||||||
|
|
||||||
|
handleRequest(
|
||||||
|
ctx,
|
||||||
|
RequestType.DEBUG,
|
||||||
|
DebugNodeRequest.createShared(DebugNodeMsgType.RETRIEVE_METRICS),
|
||||||
|
callback,
|
||||||
|
userData,
|
||||||
|
)
|
||||||
|
|
||||||
proc waku_start_discv5(
|
proc waku_start_discv5(
|
||||||
ctx: ptr WakuContext, callback: WakuCallBack, userData: pointer
|
ctx: ptr WakuContext, callback: WakuCallBack, userData: pointer
|
||||||
): cint {.dynlib, exportc.} =
|
): cint {.dynlib, exportc.} =
|
||||||
|
|||||||
@ -1,11 +1,19 @@
|
|||||||
import std/json
|
import std/json
|
||||||
import chronicles, chronos, results, eth/p2p/discoveryv5/enr, strutils, libp2p/peerid
|
import
|
||||||
|
chronicles,
|
||||||
|
chronos,
|
||||||
|
results,
|
||||||
|
eth/p2p/discoveryv5/enr,
|
||||||
|
strutils,
|
||||||
|
libp2p/peerid,
|
||||||
|
metrics
|
||||||
import ../../../../waku/factory/waku, ../../../../waku/node/waku_node
|
import ../../../../waku/factory/waku, ../../../../waku/node/waku_node
|
||||||
|
|
||||||
type DebugNodeMsgType* = enum
|
type DebugNodeMsgType* = enum
|
||||||
RETRIEVE_LISTENING_ADDRESSES
|
RETRIEVE_LISTENING_ADDRESSES
|
||||||
RETRIEVE_MY_ENR
|
RETRIEVE_MY_ENR
|
||||||
RETRIEVE_MY_PEER_ID
|
RETRIEVE_MY_PEER_ID
|
||||||
|
RETRIEVE_METRICS
|
||||||
|
|
||||||
type DebugNodeRequest* = object
|
type DebugNodeRequest* = object
|
||||||
operation: DebugNodeMsgType
|
operation: DebugNodeMsgType
|
||||||
@ -21,6 +29,10 @@ proc destroyShared(self: ptr DebugNodeRequest) =
|
|||||||
proc getMultiaddresses(node: WakuNode): seq[string] =
|
proc getMultiaddresses(node: WakuNode): seq[string] =
|
||||||
return node.info().listenAddresses
|
return node.info().listenAddresses
|
||||||
|
|
||||||
|
proc getMetrics(): string =
|
||||||
|
{.gcsafe.}:
|
||||||
|
return defaultRegistry.toText() ## defaultRegistry is {.global.} in metrics module
|
||||||
|
|
||||||
proc process*(
|
proc process*(
|
||||||
self: ptr DebugNodeRequest, waku: Waku
|
self: ptr DebugNodeRequest, waku: Waku
|
||||||
): Future[Result[string, string]] {.async.} =
|
): Future[Result[string, string]] {.async.} =
|
||||||
@ -35,6 +47,8 @@ proc process*(
|
|||||||
return ok(waku.node.enr.toURI())
|
return ok(waku.node.enr.toURI())
|
||||||
of RETRIEVE_MY_PEER_ID:
|
of RETRIEVE_MY_PEER_ID:
|
||||||
return ok($waku.node.peerId())
|
return ok($waku.node.peerId())
|
||||||
|
of RETRIEVE_METRICS:
|
||||||
|
return ok(getMetrics())
|
||||||
|
|
||||||
error "unsupported operation in DebugNodeRequest"
|
error "unsupported operation in DebugNodeRequest"
|
||||||
return err("unsupported operation in DebugNodeRequest")
|
return err("unsupported operation in DebugNodeRequest")
|
||||||
|
|||||||
2
vendor/nim-metrics
vendored
2
vendor/nim-metrics
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 11d0cddfb0e711aa2a8c75d1892ae24a64c299fc
|
Subproject commit ecf64c6078d1276d3b7d9b3d931fbdb70004db11
|
||||||
@ -66,11 +66,11 @@ proc buildLibrary(name: string, srcDir = "./", params = "", `type` = "static") =
|
|||||||
extra_params &= " " & paramStr(i)
|
extra_params &= " " & paramStr(i)
|
||||||
if `type` == "static":
|
if `type` == "static":
|
||||||
exec "nim c" & " --out:build/" & name &
|
exec "nim c" & " --out:build/" & name &
|
||||||
".a --threads:on --app:staticlib --opt:size --noMain --mm:refc --header --undef:metrics --nimMainPrefix:libwaku --skipParentCfg:on -d:discv5_protocol_id=d5waku " &
|
".a --threads:on --app:staticlib --opt:size --noMain --mm:refc --header -d:metrics --nimMainPrefix:libwaku --skipParentCfg:on -d:discv5_protocol_id=d5waku " &
|
||||||
extra_params & " " & srcDir & name & ".nim"
|
extra_params & " " & srcDir & name & ".nim"
|
||||||
else:
|
else:
|
||||||
exec "nim c" & " --out:build/" & name &
|
exec "nim c" & " --out:build/" & name &
|
||||||
".so --threads:on --app:lib --opt:size --noMain --mm:refc --header --undef:metrics --nimMainPrefix:libwaku --skipParentCfg:on -d:discv5_protocol_id=d5waku " &
|
".so --threads:on --app:lib --opt:size --noMain --mm:refc --header -d:metrics --nimMainPrefix:libwaku --skipParentCfg:on -d:discv5_protocol_id=d5waku " &
|
||||||
extra_params & " " & srcDir & name & ".nim"
|
extra_params & " " & srcDir & name & ".nim"
|
||||||
|
|
||||||
proc buildMobileAndroid(srcDir = ".", params = "") =
|
proc buildMobileAndroid(srcDir = ".", params = "") =
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user