diff --git a/ddtrace/internal/writer/writer.py b/ddtrace/internal/writer/writer.py index ca3ef232b5b..f43a68b2788 100644 --- a/ddtrace/internal/writer/writer.py +++ b/ddtrace/internal/writer/writer.py @@ -539,6 +539,7 @@ def recreate(self): dogstatsd=self.dogstatsd, sync_mode=self._sync_mode, api_version=self._api_version, + headers=self._headers, ) @property diff --git a/tests/tracer/test_writer.py b/tests/tracer/test_writer.py index 3e5504d765a..0114d248696 100644 --- a/tests/tracer/test_writer.py +++ b/tests/tracer/test_writer.py @@ -706,6 +706,16 @@ def test_writer_recreate_api_version(init_api_version, api_version, endpoint, en assert isinstance(writer._encoder, encoder_cls) +def test_writer_recreate_keeps_headers(): + writer = AgentWriter("http://dne:1234", headers={"Datadog-Client-Computed-Stats": "yes"}) + assert "Datadog-Client-Computed-Stats" in writer._headers + assert writer._headers["Datadog-Client-Computed-Stats"] == "yes" + + writer = writer.recreate() + assert "Datadog-Client-Computed-Stats" in writer._headers + assert writer._headers["Datadog-Client-Computed-Stats"] == "yes" + + @pytest.mark.parametrize( "sys_platform, api_version, ddtrace_api_version, priority_sampling, raises_error, expected", [