From 5573b1b985389cc926c4a10127e802b478383857 Mon Sep 17 00:00:00 2001
From: Antoine Lambert <anlambert@softwareheritage.org>
Date: Thu, 11 Apr 2024 12:19:30 +0200
Subject: [PATCH] base_checker: Set statsd constant tags in base checker
 classes

---
 swh/scrubber/base_checker.py       | 25 ++++++++++++-------------
 swh/scrubber/journal_checker.py    |  8 +-------
 swh/scrubber/objstorage_checker.py |  1 -
 3 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/swh/scrubber/base_checker.py b/swh/scrubber/base_checker.py
index 5cf7fc3..bd6f28b 100644
--- a/swh/scrubber/base_checker.py
+++ b/swh/scrubber/base_checker.py
@@ -29,10 +29,14 @@ class BaseChecker(ABC):
     ):
         self.db = db
         self.config_id = config_id
-        self.statsd_constant_tags: Dict[str, Any] = {}
-
         self._config: Optional[ConfigEntry] = None
         self._statsd: Optional[Statsd] = None
+        self.statsd_constant_tags: Dict[str, Any] = {
+            "object_type": self.object_type.name.lower(),
+            "datastore_package": self.datastore.package,
+            "datastore_cls": self.datastore.cls,
+            "datastore_instance": self.datastore.instance,
+        }
 
     @property
     def config(self) -> ConfigEntry:
@@ -59,6 +63,11 @@ class BaseChecker(ABC):
             )
         return self._statsd
 
+    @property
+    def object_type(self) -> swhids.ObjectType:
+        """Returns the type of object being checked."""
+        return self.config.object_type
+
     @property
     def check_hashes(self) -> bool:
         return self.config.check_hashes
@@ -84,17 +93,7 @@ class BasePartitionChecker(BaseChecker):
     ):
         super().__init__(db=db, config_id=config_id)
         self.limit = limit
-        self.statsd_constant_tags = {
-            "object_type": self.object_type,
-            "nb_partitions": self.nb_partitions,
-            "datastore_package": self.datastore.package,
-            "datastore_cls": self.datastore.cls,
-        }
-
-    @property
-    def object_type(self) -> swhids.ObjectType:
-        """Returns the type of object being checked."""
-        return self.config.object_type
+        self.statsd_constant_tags["nb_partitions"] = self.nb_partitions
 
     @property
     def nb_partitions(self) -> int:
diff --git a/swh/scrubber/journal_checker.py b/swh/scrubber/journal_checker.py
index dae1aae..d05cbcb 100644
--- a/swh/scrubber/journal_checker.py
+++ b/swh/scrubber/journal_checker.py
@@ -49,10 +49,6 @@ class JournalChecker(BaseChecker):
         self, db: ScrubberDb, config_id: int, journal_client_config: Dict[str, Any]
     ):
         super().__init__(db=db, config_id=config_id)
-        self.statsd_constant_tags = {
-            "datastore_package": self.datastore.package,
-            "datastore_cls": self.datastore.cls,
-        }
 
         if self.config.check_references:
             raise ValueError(
@@ -66,9 +62,7 @@ class JournalChecker(BaseChecker):
                 "The journal_client configuration entry should not define the "
                 "object_types field; this is handled by the scrubber configuration entry"
             )
-        self.journal_client_config["object_types"] = [
-            self.config.object_type.name.lower()
-        ]
+        self.journal_client_config["object_types"] = [self.object_type.name.lower()]
         self.journal_client = get_journal_client(
             **self.journal_client_config,
             # Remove default deserializer; so process_kafka_values() gets the message
diff --git a/swh/scrubber/objstorage_checker.py b/swh/scrubber/objstorage_checker.py
index de08a88..45d013b 100644
--- a/swh/scrubber/objstorage_checker.py
+++ b/swh/scrubber/objstorage_checker.py
@@ -49,7 +49,6 @@ class ObjectStorageChecker(BasePartitionChecker):
         self.objstorage = (
             objstorage if objstorage is not None else getattr(storage, "objstorage")
         )
-        self.statsd_constant_tags["datastore_instance"] = self.datastore.instance
 
     def check_partition(self, object_type: ObjectType, partition_id: int) -> None:
         if object_type != ObjectType.CONTENT:
-- 
GitLab