change colliding bits metric to gauge

This commit is contained in:
Victor Shyba 2021-12-16 16:50:14 -03:00
parent b44e2c0b38
commit beb8583436

View file

@ -4,7 +4,7 @@ import logging
import typing import typing
import itertools import itertools
from prometheus_client import Gauge, Counter from prometheus_client import Gauge
from lbry.dht import constants from lbry.dht import constants
from lbry.dht.protocol.distance import Distance from lbry.dht.protocol.distance import Distance
@ -22,7 +22,7 @@ class KBucket:
"peers_in_routing_table", "Number of peers on routing table", namespace="dht_node", "peers_in_routing_table", "Number of peers on routing table", namespace="dht_node",
labelnames=("scope",) labelnames=("scope",)
) )
peer_with_x_bit_colliding_metric = Counter( peer_with_x_bit_colliding_metric = Gauge(
"peer_x_bit_colliding", "Number of peers with at least X bits colliding with this node id", "peer_x_bit_colliding", "Number of peers with at least X bits colliding with this node id",
namespace="dht_node", labelnames=("amount",) namespace="dht_node", labelnames=("amount",)
) )
@ -140,6 +140,9 @@ class KBucket:
def remove_peer(self, peer: 'KademliaPeer') -> None: def remove_peer(self, peer: 'KademliaPeer') -> None:
self.peers.remove(peer) self.peers.remove(peer)
self.peer_in_routing_table_metric.labels("global").dec() self.peer_in_routing_table_metric.labels("global").dec()
if peer.node_id[0] == self._node_id[0]:
bits_colliding = 8 - (peer.node_id[1] ^ self._node_id[1]).bit_length()
self.peer_with_x_bit_colliding_metric.labels(amount=(bits_colliding + 8)).dec()
def key_in_range(self, key: bytes) -> bool: def key_in_range(self, key: bytes) -> bool:
""" Tests whether the specified key (i.e. node ID) is in the range """ Tests whether the specified key (i.e. node ID) is in the range