diff --git a/src/instana/instrumentation/tornado/server.py b/src/instana/instrumentation/tornado/server.py index dd902998..800eab46 100644 --- a/src/instana/instrumentation/tornado/server.py +++ b/src/instana/instrumentation/tornado/server.py @@ -29,12 +29,9 @@ def execute_with_instana( try: span_context = None tracer = get_tracer() - if ( - hasattr(instance.request.headers, "__dict__") - and "_dict" in instance.request.headers.__dict__ - ): + if instance.request.headers: span_context = tracer.extract( - Format.HTTP_HEADERS, instance.request.headers.__dict__["_dict"] + Format.HTTP_HEADERS, dict(instance.request.headers.items()) ) span = tracer.start_span("tornado-server", span_context=span_context) diff --git a/tests/frameworks/test_tornado_client.py b/tests/frameworks/test_tornado_client.py index a038728f..65166b7d 100644 --- a/tests/frameworks/test_tornado_client.py +++ b/tests/frameworks/test_tornado_client.py @@ -83,13 +83,13 @@ async def test(): assert type(client_span.stack) is list assert len(client_span.stack) > 1 - assert "X-INSTANA-T" in response.headers + assert response.headers.get("X-INSTANA-T") assert response.headers["X-INSTANA-T"] == hex_id(traceId) - assert "X-INSTANA-S" in response.headers + assert response.headers.get("X-INSTANA-S") assert response.headers["X-INSTANA-S"] == hex_id(server_span.s) - assert "X-INSTANA-L" in response.headers + assert response.headers.get("X-INSTANA-L") assert response.headers["X-INSTANA-L"] == "1" - assert "Server-Timing" in response.headers + assert response.headers.get("Server-Timing") assert response.headers["Server-Timing"] == f"intid;desc={hex_id(traceId)}" def test_post(self) -> None: @@ -140,13 +140,13 @@ async def test(): assert type(client_span.stack) is list assert len(client_span.stack) > 1 - assert "X-INSTANA-T" in response.headers + assert response.headers.get("X-INSTANA-T") assert response.headers["X-INSTANA-T"] == hex_id(traceId) - assert "X-INSTANA-S" in response.headers + assert response.headers.get("X-INSTANA-S") assert response.headers["X-INSTANA-S"] == hex_id(server_span.s) - assert "X-INSTANA-L" in response.headers + assert response.headers.get("X-INSTANA-L") assert response.headers["X-INSTANA-L"] == "1" - assert "Server-Timing" in response.headers + assert response.headers.get("Server-Timing") assert response.headers["Server-Timing"] == f"intid;desc={hex_id(traceId)}" def test_get_301(self) -> None: @@ -242,13 +242,13 @@ def filter(span): assert type(client301_span.stack) is list assert len(client301_span.stack) > 1 - assert "X-INSTANA-T" in response.headers + assert response.headers.get("X-INSTANA-T") assert response.headers["X-INSTANA-T"] == hex_id(traceId) - assert "X-INSTANA-S" in response.headers + assert response.headers.get("X-INSTANA-S") assert response.headers["X-INSTANA-S"] == hex_id(server_span.s) - assert "X-INSTANA-L" in response.headers + assert response.headers.get("X-INSTANA-L") assert response.headers["X-INSTANA-L"] == "1" - assert "Server-Timing" in response.headers + assert response.headers.get("Server-Timing") assert response.headers["Server-Timing"] == f"intid;desc={hex_id(traceId)}" def test_get_405(self) -> None: @@ -302,13 +302,13 @@ async def test(): assert type(client_span.stack) is list assert len(client_span.stack) > 1 - assert "X-INSTANA-T" in response.headers + assert response.headers.get("X-INSTANA-T") assert response.headers["X-INSTANA-T"] == hex_id(traceId) - assert "X-INSTANA-S" in response.headers + assert response.headers.get("X-INSTANA-S") assert response.headers["X-INSTANA-S"] == hex_id(server_span.s) - assert "X-INSTANA-L" in response.headers + assert response.headers.get("X-INSTANA-L") assert response.headers["X-INSTANA-L"] == "1" - assert "Server-Timing" in response.headers + assert response.headers.get("Server-Timing") assert response.headers["Server-Timing"] == f"intid;desc={hex_id(traceId)}" def test_get_500(self) -> None: @@ -362,13 +362,13 @@ async def test(): assert type(client_span.stack) is list assert len(client_span.stack) > 1 - assert "X-INSTANA-T" in response.headers + assert response.headers.get("X-INSTANA-T") assert response.headers["X-INSTANA-T"] == hex_id(traceId) - assert "X-INSTANA-S" in response.headers + assert response.headers.get("X-INSTANA-S") assert response.headers["X-INSTANA-S"] == hex_id(server_span.s) - assert "X-INSTANA-L" in response.headers + assert response.headers.get("X-INSTANA-L") assert response.headers["X-INSTANA-L"] == "1" - assert "Server-Timing" in response.headers + assert response.headers.get("Server-Timing") assert response.headers["Server-Timing"] == f"intid;desc={hex_id(traceId)}" def test_get_504(self) -> None: @@ -422,13 +422,13 @@ async def test(): assert type(client_span.stack) is list assert len(client_span.stack) > 1 - assert "X-INSTANA-T" in response.headers + assert response.headers.get("X-INSTANA-T") assert response.headers["X-INSTANA-T"] == hex_id(traceId) - assert "X-INSTANA-S" in response.headers + assert response.headers.get("X-INSTANA-S") assert response.headers["X-INSTANA-S"] == hex_id(server_span.s) - assert "X-INSTANA-L" in response.headers + assert response.headers.get("X-INSTANA-L") assert response.headers["X-INSTANA-L"] == "1" - assert "Server-Timing" in response.headers + assert response.headers.get("Server-Timing") assert response.headers["Server-Timing"] == f"intid;desc={hex_id(traceId)}" def test_get_with_params_to_scrub(self) -> None: @@ -480,13 +480,13 @@ async def test(): assert type(client_span.stack) is list assert len(client_span.stack) > 1 - assert "X-INSTANA-T" in response.headers + assert response.headers.get("X-INSTANA-T") assert response.headers["X-INSTANA-T"] == hex_id(traceId) - assert "X-INSTANA-S" in response.headers + assert response.headers.get("X-INSTANA-S") assert response.headers["X-INSTANA-S"] == hex_id(server_span.s) - assert "X-INSTANA-L" in response.headers + assert response.headers.get("X-INSTANA-L") assert response.headers["X-INSTANA-L"] == "1" - assert "Server-Timing" in response.headers + assert response.headers.get("Server-Timing") assert response.headers["Server-Timing"] == f"intid;desc={hex_id(traceId)}" def test_request_header_capture(self) -> None: @@ -547,13 +547,13 @@ async def test(): assert type(client_span.stack) is list assert len(client_span.stack) > 1 - assert "X-INSTANA-T" in response.headers + assert response.headers.get("X-INSTANA-T") assert response.headers["X-INSTANA-T"] == hex_id(traceId) - assert "X-INSTANA-S" in response.headers + assert response.headers.get("X-INSTANA-S") assert response.headers["X-INSTANA-S"] == hex_id(server_span.s) - assert "X-INSTANA-L" in response.headers + assert response.headers.get("X-INSTANA-L") assert response.headers["X-INSTANA-L"] == "1" - assert "Server-Timing" in response.headers + assert response.headers.get("Server-Timing") assert response.headers["Server-Timing"] == f"intid;desc={hex_id(traceId)}" assert "X-Capture-This" in client_span.data["http"]["header"] @@ -622,13 +622,13 @@ async def test(): assert type(client_span.stack) is list assert len(client_span.stack) > 1 - assert "X-INSTANA-T" in response.headers + assert response.headers.get("X-INSTANA-T") assert response.headers["X-INSTANA-T"] == hex_id(traceId) - assert "X-INSTANA-S" in response.headers + assert response.headers.get("X-INSTANA-S") assert response.headers["X-INSTANA-S"] == hex_id(server_span.s) - assert "X-INSTANA-L" in response.headers + assert response.headers.get("X-INSTANA-L") assert response.headers["X-INSTANA-L"] == "1" - assert "Server-Timing" in response.headers + assert response.headers.get("Server-Timing") assert response.headers["Server-Timing"] == f"intid;desc={hex_id(traceId)}" assert "X-Capture-This-Too" in client_span.data["http"]["header"]