Skip to content

Commit 1c316a2

Browse files
authored
Handle Server-Timing headers manually (#143)
1 parent f5a1846 commit 1c316a2

File tree

5 files changed

+5
-12
lines changed

5 files changed

+5
-12
lines changed

instana/http_propagator.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,16 @@ class HTTPPropagator():
2525
HEADER_KEY_T = 'X-Instana-T'
2626
HEADER_KEY_S = 'X-Instana-S'
2727
HEADER_KEY_L = 'X-Instana-L'
28-
HEADER_KEY_ST = 'Server-Timing'
2928
LC_HEADER_KEY_T = 'x-instana-t'
3029
LC_HEADER_KEY_S = 'x-instana-s'
3130
LC_HEADER_KEY_L = 'x-instana-l'
32-
LC_HEADER_KEY_ST = 'server-timing'
3331

3432
ALT_HEADER_KEY_T = 'HTTP_X_INSTANA_T'
3533
ALT_HEADER_KEY_S = 'HTTP_X_INSTANA_S'
3634
ALT_HEADER_KEY_L = 'HTTP_X_INSTANA_L'
37-
ATL_HEADER_KEY_ST = 'HTTP_SERVER_TIMING'
3835
ALT_LC_HEADER_KEY_T = 'http_x_instana_t'
3936
ALT_LC_HEADER_KEY_S = 'http_x_instana_s'
4037
ALT_LC_HEADER_KEY_L = 'http_x_instana_l'
41-
ATL_LC_HEADER_KEY_ST = 'http_server_timing'
4238

4339
def inject(self, span_context, carrier):
4440
try:
@@ -49,17 +45,14 @@ def inject(self, span_context, carrier):
4945
carrier[self.HEADER_KEY_T] = trace_id
5046
carrier[self.HEADER_KEY_S] = span_id
5147
carrier[self.HEADER_KEY_L] = "1"
52-
carrier[self.HEADER_KEY_ST] = "intid;desc=%s" % trace_id
5348
elif type(carrier) is list:
5449
carrier.append((self.HEADER_KEY_T, trace_id))
5550
carrier.append((self.HEADER_KEY_S, span_id))
5651
carrier.append((self.HEADER_KEY_L, "1"))
57-
carrier.append((self.HEADER_KEY_ST, "intid;desc=%s" % trace_id))
5852
elif hasattr(carrier, '__setitem__'):
5953
carrier.__setitem__(self.HEADER_KEY_T, trace_id)
6054
carrier.__setitem__(self.HEADER_KEY_S, span_id)
6155
carrier.__setitem__(self.HEADER_KEY_L, "1")
62-
carrier.__setitem__(self.HEADER_KEY_ST, "intid;desc=%s" % trace_id)
6356
else:
6457
raise Exception("Unsupported carrier type", type(carrier))
6558

instana/instrumentation/aiohttp/server.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ async def stan_middleware(request, handler):
4949

5050
scope.span.set_tag("http.status_code", response.status)
5151
async_tracer.inject(scope.span.context, opentracing.Format.HTTP_HEADERS, response.headers)
52+
response.headers['Server-Timing'] = "intid;desc=%s" % scope.span.context.trace_id
5253

5354
return response
5455
except:

instana/instrumentation/django/middleware.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ def process_response(self, request, response):
6060

6161
request.iscope.span.set_tag(ext.HTTP_STATUS_CODE, response.status_code)
6262
tracer.inject(request.iscope.span.context, ot.Format.HTTP_HEADERS, response)
63+
response['Server-Timing'] = "intid;desc=%s" % request.iscope.span.context.trace_id
64+
6365
except Exception:
6466
logger.debug("Instana middleware @ process_response", exc_info=True)
6567
finally:

instana/wsgi.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ def __call__(self, environ, start_response):
2020
def new_start_response(status, headers, exc_info=None):
2121
"""Modified start response with additional headers."""
2222
tracer.inject(self.scope.span.context, ot.Format.HTTP_HEADERS, headers)
23+
headers.append(('Server-Timing', "intid;desc=%s" % self.scope.span.context.trace_id))
24+
2325
res = start_response(status, headers, exc_info)
2426

2527
sc = status.split(' ')[0]

tests/test_ot_propagators.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@ def test_inject_with_dict():
3535
assert_equals(carrier['X-Instana-S'], span.context.span_id)
3636
assert 'X-Instana-L' in carrier
3737
assert_equals(carrier['X-Instana-L'], "1")
38-
assert 'Server-Timing' in carrier
39-
server_timing_value = "intid;desc=%s" % span.context.trace_id
40-
assert_equals(carrier['Server-Timing'], server_timing_value)
4138

4239

4340
def test_inject_with_list():
@@ -51,8 +48,6 @@ def test_inject_with_list():
5148
assert ('X-Instana-T', span.context.trace_id) in carrier
5249
assert ('X-Instana-S', span.context.span_id) in carrier
5350
assert ('X-Instana-L', "1") in carrier
54-
server_timing_value = "intid;desc=%s" % span.context.trace_id
55-
assert ('Server-Timing', server_timing_value) in carrier
5651

5752

5853
def test_basic_extract():

0 commit comments

Comments
 (0)