mirror of
https://github.com/codex-storage/nim-libp2p.git
synced 2025-01-13 04:24:09 +00:00
b902c030a0
* add metrics into chronosstream to identify peers agents * avoid too many agent strings * use gauge instead of counter for stream metrics * filter identity on / * also track bytes traffic * fix identity tracking closeimpl call * add gossip rpc metrics * fix missing metrics inclusions * metrics fixes and additions * add a KnownLibP2PAgents strdefine * enforse toLowerAscii to agent names (metrics) * incoming rpc metrics * fix silly mistake in rpc metrics * fix agent metrics logic * libp2p_gossipsub_failed_publish metric * message ids metrics * libp2p_pubsub_broadcast_ihave metric improvement * refactor expensive gossip metrics * more detailed metrics * metrics improvements * remove generic metrics for `set` users * small fixes, add debug counters * fix counter and add missing subs metrics! * agent metrics behind -d:libp2p_agents_metrics * remove testing related code from this PR * small rebroadcast metric fix * fix small mistake * add some guide to the readme in order to use new metrics * add libp2p_gossipsub_peers_scores metric * add protobuf metrics to understand bytes traffic precisely * refactor gossipsub metrics * remove unused variable * add more metrics, refactor rebalance metrics * avoid bad metric concurrent states * use a stack structure for gossip mesh metrics * refine sub metrics * add received subs metrics fixes * measure handlers of known topics * sub/unsub counter * unsubscribeAll log unknown topics * expose a way to specify known topics at runtime
44 lines
1.2 KiB
Nim
44 lines
1.2 KiB
Nim
## Nim-LibP2P
|
|
## Copyright (c) 2020 Status Research & Development GmbH
|
|
## Licensed under either of
|
|
## * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE))
|
|
## * MIT license ([LICENSE-MIT](LICENSE-MIT))
|
|
## at your option.
|
|
## This file may not be copied, modified, or distributed except according to
|
|
## those terms.
|
|
|
|
import stew/byteutils
|
|
import strutils
|
|
|
|
const
|
|
ShortDumpMax = 12
|
|
|
|
func shortLog*(item: openarray[byte]): string =
|
|
if item.len <= ShortDumpMax:
|
|
result = item.toHex()
|
|
else:
|
|
const
|
|
split = ShortDumpMax div 2
|
|
dumpLen = (ShortDumpMax * 2) + 3
|
|
result = newStringOfCap(dumpLen)
|
|
result &= item.toOpenArray(0, split - 1).toHex()
|
|
result &= "..."
|
|
result &= item.toOpenArray(item.len - split, item.high).toHex()
|
|
|
|
func shortLog*(item: string): string =
|
|
if item.len <= ShortDumpMax:
|
|
result = item
|
|
else:
|
|
const
|
|
split = ShortDumpMax div 2
|
|
dumpLen = ShortDumpMax + 3
|
|
result = newStringOfCap(dumpLen)
|
|
result &= item[0..<split]
|
|
result &= "..."
|
|
result &= item[(item.len - split)..item.high]
|
|
|
|
when defined(libp2p_agents_metrics):
|
|
const
|
|
KnownLibP2PAgents* {.strdefine.} = ""
|
|
KnownLibP2PAgentsSeq* = KnownLibP2PAgents.toLowerAscii().split(",")
|