From 2520465fc16953030e34f11c657bc2798bb35c94 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Mon, 24 Jan 2022 10:54:19 -0300 Subject: [PATCH] count announcements and how many peers we were able to announce to --- lbry/dht/blob_announcer.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lbry/dht/blob_announcer.py b/lbry/dht/blob_announcer.py index 5d977aff4..df667bc6d 100644 --- a/lbry/dht/blob_announcer.py +++ b/lbry/dht/blob_announcer.py @@ -1,6 +1,9 @@ import asyncio import typing import logging + +from prometheus_client import Counter + if typing.TYPE_CHECKING: from lbry.dht.node import Node from lbry.extras.daemon.storage import SQLiteStorage @@ -9,6 +12,11 @@ log = logging.getLogger(__name__) class BlobAnnouncer: + announcements_sent_metric = Counter( + "announcements_sent", "Number of announcements sent and their respective status.", namespace="dht_node", + labelnames=("peers", "error"), + ) + def __init__(self, loop: asyncio.AbstractEventLoop, node: 'Node', storage: 'SQLiteStorage'): self.loop = loop self.node = node @@ -18,12 +26,15 @@ class BlobAnnouncer: async def _submit_announcement(self, blob_hash): try: + peers = len(await self.node.announce_blob(blob_hash)) + self.announcements_sent_metric.labels(peers=peers, error=False).inc() if peers > 4: return blob_hash else: log.debug("failed to announce %s, could only find %d peers, retrying soon.", blob_hash[:8], peers) except Exception as err: + self.announcements_sent_metric.labels(peers=0, error=True).inc() if isinstance(err, asyncio.CancelledError): # TODO: remove when updated to 3.8 raise err log.warning("error announcing %s: %s", blob_hash[:8], str(err))