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
     )
Exemple #2
0
 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',
         })
Exemple #3
0
    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()
Exemple #5
0
 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",
         },
     )
Exemple #10
0
    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()