Skip to content

Commit ea0a09e

Browse files
feat: [SVLS-5765] use DD_BOTOCORE_ADD_SPAN_POINTERS (#531)
1 parent 2cda208 commit ea0a09e

File tree

2 files changed

+44
-5
lines changed

2 files changed

+44
-5
lines changed

datadog_lambda/span_pointers.py

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from itertools import chain
22
import logging
3+
import os
34
from typing import List
45

56
from ddtrace._trace._span_pointer import _SpanPointerDirection
@@ -10,16 +11,23 @@
1011
logger = logging.getLogger(__name__)
1112

1213

14+
dd_botocore_add_span_pointers = os.environ.get(
15+
"DD_BOTOCORE_ADD_SPAN_POINTERS", "true"
16+
).lower() in ("true", "1")
17+
18+
1319
def calculate_span_pointers(
1420
event_source,
1521
event,
22+
botocore_add_span_pointers=dd_botocore_add_span_pointers,
1623
) -> List[_SpanPointerDescription]:
1724
try:
18-
if event_source.equals(EventTypes.S3):
19-
return _calculate_s3_span_pointers_for_event(event)
25+
if botocore_add_span_pointers:
26+
if event_source.equals(EventTypes.S3):
27+
return _calculate_s3_span_pointers_for_event(event)
2028

21-
elif event_source.equals(EventTypes.DYNAMODB):
22-
return _calculate_dynamodb_span_pointers_for_event(event)
29+
elif event_source.equals(EventTypes.DYNAMODB):
30+
return _calculate_dynamodb_span_pointers_for_event(event)
2331

2432
except Exception as e:
2533
logger.warning(

tests/test_span_pointers.py

+32-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class SpanPointersCase(NamedTuple):
1414
name: str
1515
event_source: _EventSource
1616
event: dict
17+
dd_botocore_span_pointers: bool
1718
span_pointers: List[_SpanPointerDescription]
1819

1920
@pytest.mark.parametrize(
@@ -23,12 +24,14 @@ class SpanPointersCase(NamedTuple):
2324
name="some unsupported event",
2425
event_source=_EventSource(EventTypes.UNKNOWN),
2526
event={},
27+
dd_botocore_span_pointers=True,
2628
span_pointers=[],
2729
),
2830
SpanPointersCase(
2931
name="empty s3 event",
3032
event_source=_EventSource(EventTypes.S3),
3133
event={},
34+
dd_botocore_span_pointers=True,
3235
span_pointers=[],
3336
),
3437
SpanPointersCase(
@@ -50,6 +53,7 @@ class SpanPointersCase(NamedTuple):
5053
},
5154
],
5255
},
56+
dd_botocore_span_pointers=True,
5357
span_pointers=[
5458
_SpanPointerDescription(
5559
pointer_kind="aws.s3.object",
@@ -59,6 +63,28 @@ class SpanPointersCase(NamedTuple):
5963
),
6064
],
6165
),
66+
SpanPointersCase(
67+
name="sensible s3 event with dd_botocore_span_pointers disabled",
68+
event_source=_EventSource(EventTypes.S3),
69+
event={
70+
"Records": [
71+
{
72+
"eventName": "ObjectCreated:Put",
73+
"s3": {
74+
"bucket": {
75+
"name": "mybucket",
76+
},
77+
"object": {
78+
"key": "mykey",
79+
"eTag": "123abc",
80+
},
81+
},
82+
},
83+
],
84+
},
85+
dd_botocore_span_pointers=False,
86+
span_pointers=[],
87+
),
6288
SpanPointersCase(
6389
name="malformed s3 event",
6490
event_source=_EventSource(EventTypes.S3),
@@ -78,12 +104,14 @@ class SpanPointersCase(NamedTuple):
78104
},
79105
],
80106
},
107+
dd_botocore_span_pointers=True,
81108
span_pointers=[],
82109
),
83110
SpanPointersCase(
84111
name="empty dynamodb event",
85112
event_source=_EventSource(EventTypes.DYNAMODB),
86113
event={},
114+
dd_botocore_span_pointers=True,
87115
span_pointers=[],
88116
),
89117
SpanPointersCase(
@@ -109,6 +137,7 @@ class SpanPointersCase(NamedTuple):
109137
},
110138
],
111139
},
140+
dd_botocore_span_pointers=True,
112141
span_pointers=[
113142
_SpanPointerDescription(
114143
pointer_kind="aws.dynamodb.item",
@@ -139,16 +168,18 @@ class SpanPointersCase(NamedTuple):
139168
},
140169
],
141170
},
171+
dd_botocore_span_pointers=True,
142172
span_pointers=[],
143173
),
144174
],
145175
ids=lambda test_case: test_case.name,
146176
)
147-
def test_calculate_span_pointers(self, test_case: SpanPointersCase):
177+
def test_calculate_span_pointers(self, test_case: SpanPointersCase) -> None:
148178
assert (
149179
calculate_span_pointers(
150180
test_case.event_source,
151181
test_case.event,
182+
botocore_add_span_pointers=test_case.dd_botocore_span_pointers,
152183
)
153184
== test_case.span_pointers
154185
)

0 commit comments

Comments
 (0)