diff --git a/datadog_checks_base/changelog.d/20355.fixed b/datadog_checks_base/changelog.d/20355.fixed new file mode 100644 index 0000000000000..03e3300041ea4 --- /dev/null +++ b/datadog_checks_base/changelog.d/20355.fixed @@ -0,0 +1 @@ +Fix tracemalloc usage error diff --git a/datadog_checks_base/datadog_checks/base/checks/base.py b/datadog_checks_base/datadog_checks/base/checks/base.py index 6994a39d24524..3216a656abe27 100644 --- a/datadog_checks_base/datadog_checks/base/checks/base.py +++ b/datadog_checks_base/datadog_checks/base/checks/base.py @@ -1305,10 +1305,10 @@ def run(self): enter_pdb(self.check, line=self.init_config['set_breakpoint'], args=(instance,)) elif self.should_profile_memory(): - # self.init_config['profile_memory'] could be `/tmp/datadog-agent-memory-profiler*` + # self.init_config.get('profile_memory') could be `/tmp/datadog-agent-memory-profiler*` # that is generated by Datadog Agent. # If we use `--m-dir` for `agent check` command, a hidden flag, it should be same as a given value. - namespaces = [self.init_config['profile_memory']] + namespaces = [self.init_config.get('profile_memory')] for id in self.check_id.split(":"): namespaces.append(id) self.profile_memory(func=self.check, namespaces=namespaces, args=(instance,)) diff --git a/datadog_checks_base/tests/base/checks/test_agent_check.py b/datadog_checks_base/tests/base/checks/test_agent_check.py index 25ca45772a025..e2ff797f293c2 100644 --- a/datadog_checks_base/tests/base/checks/test_agent_check.py +++ b/datadog_checks_base/tests/base/checks/test_agent_check.py @@ -1316,3 +1316,24 @@ def test_env_var_logic_preset(): AgentCheck() assert os.getenv('OPENSSL_CONF', None) == preset_conf assert os.getenv('OPENSSL_MODULES', None) == preset_modules + + +@pytest.mark.parametrize( + "should_profile_value, expected_calls", + [ + (True, 1), + (False, 0), + ], +) +def test_profile_memory(should_profile_value, expected_calls): + """ + Test that profile_memory is called when should_profile_memory is True + """ + check = AgentCheck('test', {}, [{}]) + check.should_profile_memory = mock.MagicMock(return_value=should_profile_value) + check.profile_memory = mock.MagicMock() + + check.run() + + assert check.should_profile_memory.call_count == 1 + assert check.profile_memory.call_count == expected_calls