From 33d78555a5c7bf0658f27ca0e2e35af116178b6d Mon Sep 17 00:00:00 2001 From: Eric Weaver Date: Wed, 1 Jul 2026 16:32:13 -0400 Subject: [PATCH 1/2] Add DBMS class attribute --- .../datadog_checks/base/checks/db.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/datadog_checks_base/datadog_checks/base/checks/db.py b/datadog_checks_base/datadog_checks/base/checks/db.py index ba3cf5c306649..6c87ad9113ee9 100644 --- a/datadog_checks_base/datadog_checks/base/checks/db.py +++ b/datadog_checks_base/datadog_checks/base/checks/db.py @@ -12,10 +12,16 @@ class DatabaseCheck(AgentCheck): + #: Authoritative DBM platform identifier for this integration. + #: Subclasses should set this explicitly; it is the value surfaced by + #: :attr:`dbms` and used across DBM payloads, metric name prefixes and async jobs. + DBMS: str | None = None + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._agent_hostname = None self._database_identifier = None + self._dbms_fallback_warning_logged = False self.tag_manager = TagManager() def database_monitoring_query_sample(self, raw_event: str): @@ -110,6 +116,22 @@ def agent_hostname(self) -> str: @property def dbms(self) -> str: + """ + The DBM platform identifier for this integration. + + Returns the :attr:`DBMS` class attribute when set. Integrations that have not yet declared + ``DBMS`` fall back to a deprecated derivation from the class name; that fallback is + unreliable (it only matches for some integrations) and will be removed in a future version. + """ + if self.DBMS is not None: + return self.DBMS + if not self._dbms_fallback_warning_logged: + self.log.warning( + "%s does not set the `DBMS` class attribute; falling back to a name-derived value. " + "This fallback is deprecated and will be removed; set `DBMS` explicitly.", + type(self).__name__, + ) + self._dbms_fallback_warning_logged = True return self.__class__.__name__.lower() @property From 02712fa7585db9e82601cfd085a64f3904331cab Mon Sep 17 00:00:00 2001 From: Eric Weaver Date: Wed, 1 Jul 2026 16:43:58 -0400 Subject: [PATCH 2/2] Add changelog --- datadog_checks_base/changelog.d/24297.added | 1 + 1 file changed, 1 insertion(+) create mode 100644 datadog_checks_base/changelog.d/24297.added diff --git a/datadog_checks_base/changelog.d/24297.added b/datadog_checks_base/changelog.d/24297.added new file mode 100644 index 0000000000000..b6fa6d61d04ea --- /dev/null +++ b/datadog_checks_base/changelog.d/24297.added @@ -0,0 +1 @@ +Add a `DBMS` class attribute to `DatabaseCheck` so integrations can declare their DBM platform identifier explicitly. The `dbms` property now returns `DBMS` when set and only falls back to the deprecated class-name derivation (with a warning) when it is not.