diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index 3fc1eec55..88d429af4 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -27,7 +27,7 @@ EventTypes, EventSubtypes, ) -from datetime import datetime +from datetime import datetime, timezone logger = logging.getLogger(__name__) @@ -547,7 +547,7 @@ def create_inferred_span_from_sns_event(event, context): } sns_dt_format = "%Y-%m-%dT%H:%M:%S.%fZ" timestamp = event_record["Sns"]["Timestamp"] - request_time_epoch = datetime.strptime(timestamp, sns_dt_format) + dt = datetime.strptime(timestamp, sns_dt_format) args = { "resource": topic_name, @@ -557,7 +557,7 @@ def create_inferred_span_from_sns_event(event, context): span = tracer.trace("aws.sns", **args) if span: span.set_tags(tags) - span.start = int(request_time_epoch.strftime("%s")) + span.start = dt.replace(tzinfo=timezone.utc).timestamp() return span @@ -618,7 +618,7 @@ def create_inferred_span_from_s3_event(event, context): } dt_format = "%Y-%m-%dT%H:%M:%S.%fZ" timestamp = event_record["eventTime"] - request_time_epoch = datetime.strptime(timestamp, dt_format) + dt = datetime.strptime(timestamp, dt_format) args = { "resource": bucket_name, @@ -628,7 +628,7 @@ def create_inferred_span_from_s3_event(event, context): span = tracer.trace("aws.s3", **args) if span: span.set_tags(tags) - span.start = int(request_time_epoch.strftime("%s")) + span.start = dt.replace(tzinfo=timezone.utc).timestamp() return span @@ -642,7 +642,7 @@ def create_inferred_span_from_eventbridge_event(event, context): } dt_format = "%Y-%m-%dT%H:%M:%SZ" timestamp = event["time"] - request_time_epoch = datetime.strptime(timestamp, dt_format) + dt = datetime.strptime(timestamp, dt_format) args = { "resource": source, @@ -652,7 +652,7 @@ def create_inferred_span_from_eventbridge_event(event, context): span = tracer.trace("aws.eventbridge", **args) if span: span.set_tags(tags) - span.start = int(request_time_epoch.strftime("%s")) + span.start = dt.replace(tzinfo=timezone.utc).timestamp() return span diff --git a/tests/test_tracing.py b/tests/test_tracing.py index 4890adb40..07314b06d 100644 --- a/tests/test_tracing.py +++ b/tests/test_tracing.py @@ -769,8 +769,7 @@ def test_create_inferred_span_from_sns_event(self): ) self.assertEqual(span.get_tag("request_id"), None) self.assertEqual(span.get_tag("span_type"), "inferred") - # TODO FIXME: investigate why this is flaky - # self.assertEqual(span.start, 18000.0) + self.assertEqual(span.start, 0.0) self.assertEqual(span.span_type, "web") def test_create_inferred_span_from_kinesis_event(self): @@ -854,8 +853,7 @@ def test_create_inferred_span_from_s3_event(self): ) self.assertEqual(span.get_tag("request_id"), None) self.assertEqual(span.get_tag("span_type"), "inferred") - # TODO FIXME: investigate why this is flaky - # self.assertEqual(span.start, 18000.0) + self.assertEqual(span.start, 0.0) self.assertEqual(span.span_type, "web") def test_create_inferred_span_from_eventbridge_event(self): @@ -883,6 +881,5 @@ def test_create_inferred_span_from_eventbridge_event(self): ) self.assertEqual(span.get_tag("request_id"), None) self.assertEqual(span.get_tag("span_type"), "inferred") - # TODO FIXME: investigate why this is flaky - # self.assertEqual(span.start, 1636004265.0) + self.assertEqual(span.start, 1635989865.0) self.assertEqual(span.span_type, "web")