From 354a7146d719146f8d9a2cccf530c20698b36b9e Mon Sep 17 00:00:00 2001 From: Eric Weaver Date: Tue, 2 Sep 2025 10:43:13 -0400 Subject: [PATCH 1/2] [DBMON-5587] Always clear out state between schema collections (#21198) * Always clear out state between schema collections * run format * add changelog --- mysql/changelog.d/21198.fixed | 1 + mysql/datadog_checks/mysql/databases_data.py | 36 +++++++++++--------- mysql/datadog_checks/mysql/metadata.py | 2 +- 3 files changed, 22 insertions(+), 17 deletions(-) create mode 100644 mysql/changelog.d/21198.fixed diff --git a/mysql/changelog.d/21198.fixed b/mysql/changelog.d/21198.fixed new file mode 100644 index 0000000000000..e9f0d6342a66f --- /dev/null +++ b/mysql/changelog.d/21198.fixed @@ -0,0 +1 @@ +Properly cleanup schema metadata memory references after all collection cycles diff --git a/mysql/datadog_checks/mysql/databases_data.py b/mysql/datadog_checks/mysql/databases_data.py index 2890725e93e9b..1adc026422154 100644 --- a/mysql/datadog_checks/mysql/databases_data.py +++ b/mysql/datadog_checks/mysql/databases_data.py @@ -54,6 +54,7 @@ def reset(self): self._total_columns_sent = 0 self._columns_count = 0 self.db_info.clear() + self.db_to_tables.clear() self.any_tables_found = False def store_db_infos(self, db_infos): @@ -183,7 +184,7 @@ def _fetch_database_data(self, cursor, start_time, db_name): self._data_submitter.submit() @tracked_method(agent_check_getter=agent_check_getter) - def _collect_databases_data(self, tags): + def collect_databases_data(self, tags): """ Collects database information and schemas and submits them to the agent's queue as dictionaries. @@ -247,22 +248,25 @@ def _collect_databases_data(self, tags): - data_length (int): The data length of the partition in bytes. If partition has subpartitions, this is the sum of all subpartitions data_length. """ - self._data_submitter.reset() + self._data_submitter.reset() # Ensure we start fresh self._tags = tags - with closing(self._metadata.get_db_connection().cursor(CommenterDictCursor)) as cursor: - self._data_submitter.set_base_event_data( - self._check.reported_hostname, - self._check.database_identifier, - self._tags, - self._check._config.cloud_metadata, - self._check.version.version, - self._check.version.flavor, - ) - db_infos = self._query_db_information(cursor) - self._data_submitter.store_db_infos(db_infos) - self._fetch_for_databases(db_infos, cursor) - self._data_submitter.submit() - self._log.debug("Finished collect_schemas_data") + self._data_submitter.set_base_event_data( + self._check.reported_hostname, + self._check.database_identifier, + self._tags, + self._check._config.cloud_metadata, + self._check.version.version, + self._check.version.flavor, + ) + try: + with closing(self._metadata.get_db_connection().cursor(CommenterDictCursor)) as cursor: + db_infos = self._query_db_information(cursor) + self._data_submitter.store_db_infos(db_infos) + self._fetch_for_databases(db_infos, cursor) + self._data_submitter.submit() + finally: + self._data_submitter.reset() # Ensure we reset in case of errors + self._log.debug("Finished collect_databases_data") def _fetch_for_databases(self, db_infos, cursor): start_time = time.time() diff --git a/mysql/datadog_checks/mysql/metadata.py b/mysql/datadog_checks/mysql/metadata.py index ac4f004c7694c..339a2e6336c6c 100644 --- a/mysql/datadog_checks/mysql/metadata.py +++ b/mysql/datadog_checks/mysql/metadata.py @@ -145,7 +145,7 @@ def run_job(self): if self._databases_data_enabled and elapsed_time_databases >= self._databases_data_collection_interval: self._last_databases_collection_time = time.time() try: - self._databases_data._collect_databases_data(self._tags) + self._databases_data.collect_databases_data(self._tags) except Exception as e: self._log.error( """An error occurred while collecting schema data. From 6a1e3c8429b9658855265fbcfc550b78da3d8d8c Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Tue, 2 Sep 2025 13:33:34 -0400 Subject: [PATCH 2/2] Define openai dataflows. (#21212) --- openai/assets/dataflows.yaml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 openai/assets/dataflows.yaml diff --git a/openai/assets/dataflows.yaml b/openai/assets/dataflows.yaml new file mode 100644 index 0000000000000..32de4a364b3b7 --- /dev/null +++ b/openai/assets/dataflows.yaml @@ -0,0 +1,7 @@ +provides: + - id: openai-usage-metrics + always_on: true + - id: openai-cloud-cost-data + always_on: false + - id: openai-llm-completions + always_on: false