def test_with_complete_datadog_trace_headers(self): extract_dd_trace_context({ 'headers': { TraceHeader.TRACE_ID: '123', TraceHeader.PARENT_ID: '321', TraceHeader.SAMPLING_PRIORITY: '1', } }) self.assertDictEqual( get_dd_trace_context(), { TraceHeader.TRACE_ID: '123', TraceHeader.PARENT_ID: '65535', TraceHeader.SAMPLING_PRIORITY: '1', } ) self.mock_xray_recorder.begin_subsegment.assert_called() self.mock_xray_recorder.end_subsegment.assert_called() self.mock_current_subsegment.put_metadata.assert_called_with( XraySubsegment.KEY, { 'trace-id': '123', 'parent-id': '321', 'sampling-priority': '1', }, XraySubsegment.NAMESPACE )
def test_without_datadog_trace_headers(self): extract_dd_trace_context({}) self.assertDictEqual( get_dd_trace_context(), { TraceHeader.TRACE_ID: '4369', TraceHeader.PARENT_ID: '65535', TraceHeader.SAMPLING_PRIORITY: '2', })
def _before(self, event, context): set_cold_start() try: submit_invocations_metric(context) # Extract Datadog trace context from incoming requests extract_dd_trace_context(event) # Set log correlation ids using extracted trace context set_correlation_ids() except Exception: traceback.print_exc()
def _before(self, event, context): try: set_cold_start() submit_invocations_metric(context) # Extract Datadog trace context from incoming requests extract_dd_trace_context(event) # Set log correlation ids using extracted trace context set_correlation_ids() logger.debug("datadog_lambda_wrapper _before() done") except Exception: traceback.print_exc()
def test_with_incomplete_datadog_trace_headers(self): extract_dd_trace_context({ 'headers': { TraceHeader.TRACE_ID: '123', TraceHeader.PARENT_ID: '321', } }) self.assertDictEqual( get_dd_trace_context(), { TraceHeader.TRACE_ID: '4369', TraceHeader.PARENT_ID: '65535', TraceHeader.SAMPLING_PRIORITY: '2', })
def test_with_complete_datadog_trace_headers(self): ctx = extract_dd_trace_context( { "headers": { TraceHeader.TRACE_ID: "123", TraceHeader.PARENT_ID: "321", TraceHeader.SAMPLING_PRIORITY: "1", } } ) self.assertDictEqual( ctx, { "trace-id": "123", "parent-id": "321", "sampling-priority": "1", "source": "event", }, ) self.assertDictEqual( get_dd_trace_context(), { TraceHeader.TRACE_ID: "123", TraceHeader.PARENT_ID: "65535", TraceHeader.SAMPLING_PRIORITY: "1", }, ) self.mock_xray_recorder.begin_subsegment.assert_called() self.mock_xray_recorder.end_subsegment.assert_called() self.mock_current_subsegment.put_metadata.assert_called_with( XraySubsegment.KEY, {"trace-id": "123", "parent-id": "321", "sampling-priority": "1"}, XraySubsegment.NAMESPACE, )
def test_with_complete_datadog_trace_headers_with_mixed_casing(self): extract_dd_trace_context({ 'headers': { 'X-Datadog-Trace-Id': '123', 'X-Datadog-Parent-Id': '321', 'X-Datadog-Sampling-Priority': '1', } }) self.assertDictEqual( get_dd_trace_context(), { TraceHeader.TRACE_ID: '123', TraceHeader.PARENT_ID: '65535', TraceHeader.SAMPLING_PRIORITY: '1', } )
def test_with_complete_datadog_trace_headers_with_mixed_casing(self): extract_dd_trace_context({ "headers": { "X-Datadog-Trace-Id": "123", "X-Datadog-Parent-Id": "321", "X-Datadog-Sampling-Priority": "1", } }) self.assertDictEqual( get_dd_trace_context(), { TraceHeader.TRACE_ID: "123", TraceHeader.PARENT_ID: "65535", TraceHeader.SAMPLING_PRIORITY: "1", }, )
def test_without_datadog_trace_headers(self): ctx = extract_dd_trace_context({}) self.assertDictEqual( ctx, { "trace-id": "4369", "parent-id": "65535", "sampling-priority": "2", "source": "xray", }, ) self.assertDictEqual( get_dd_trace_context(), { TraceHeader.TRACE_ID: "4369", TraceHeader.PARENT_ID: "65535", TraceHeader.SAMPLING_PRIORITY: "2", }, )
def _before(self, event, context): try: set_cold_start() submit_invocations_metric(context) # Extract Datadog trace context from incoming requests dd_context = extract_dd_trace_context(event) self.span = None if dd_tracing_enabled: set_dd_trace_py_root(dd_context, self.merge_xray_traces) self.span = create_function_execution_span( context, self.function_name, is_cold_start(), dd_context) else: set_correlation_ids() logger.debug("datadog_lambda_wrapper _before() done") except Exception: traceback.print_exc()