datadog_lambda 6.100.0__tar.gz → 6.101.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/PKG-INFO +2 -2
  2. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/span_pointers.py +20 -10
  3. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/tracing.py +4 -1
  4. datadog_lambda-6.101.0/datadog_lambda/version.py +1 -0
  5. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/pyproject.toml +2 -2
  6. datadog_lambda-6.100.0/datadog_lambda/version.py +0 -1
  7. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/LICENSE +0 -0
  8. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/LICENSE-3rdparty.csv +0 -0
  9. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/NOTICE +0 -0
  10. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/README.md +0 -0
  11. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/__init__.py +0 -0
  12. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/api.py +0 -0
  13. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/cold_start.py +0 -0
  14. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/constants.py +0 -0
  15. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/dogstatsd.py +0 -0
  16. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/extension.py +0 -0
  17. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/handler.py +0 -0
  18. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/logger.py +0 -0
  19. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/metric.py +0 -0
  20. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/module_name.py +0 -0
  21. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/patch.py +0 -0
  22. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/stats_writer.py +0 -0
  23. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/statsd_writer.py +0 -0
  24. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/tag_object.py +0 -0
  25. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/tags.py +0 -0
  26. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/thread_stats_writer.py +0 -0
  27. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/trigger.py +0 -0
  28. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/wrapper.py +0 -0
  29. {datadog_lambda-6.100.0 → datadog_lambda-6.101.0}/datadog_lambda/xray.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datadog_lambda
3
- Version: 6.100.0
3
+ Version: 6.101.0
4
4
  Summary: The Datadog AWS Lambda Library
5
5
  Home-page: https://github.com/DataDog/datadog-lambda-python
6
6
  License: Apache-2.0
@@ -19,7 +19,7 @@ Classifier: Programming Language :: Python :: 3.13
19
19
  Provides-Extra: dev
20
20
  Requires-Dist: boto3 (>=1.34.0,<2.0.0) ; extra == "dev"
21
21
  Requires-Dist: datadog (>=0.41.0,<1.0.0)
22
- Requires-Dist: ddtrace (>=2.15.0)
22
+ Requires-Dist: ddtrace (>=2.16.0)
23
23
  Requires-Dist: flake8 (>=5.0.4,<6.0.0) ; extra == "dev"
24
24
  Requires-Dist: pytest (>=8.0.0,<9.0.0) ; extra == "dev"
25
25
  Requires-Dist: pytest-benchmark (>=4.0,<5.0) ; extra == "dev"
@@ -1,13 +1,8 @@
1
1
  from itertools import chain
2
2
  import logging
3
+ import os
3
4
  from typing import List
4
5
 
5
- from ddtrace._trace.utils_botocore.span_pointers.dynamodb import (
6
- _aws_dynamodb_item_span_pointer_description,
7
- )
8
- from ddtrace._trace.utils_botocore.span_pointers.s3 import (
9
- _aws_s3_object_span_pointer_description,
10
- )
11
6
  from ddtrace._trace._span_pointer import _SpanPointerDirection
12
7
  from ddtrace._trace._span_pointer import _SpanPointerDescription
13
8
  from datadog_lambda.trigger import EventTypes
@@ -16,16 +11,23 @@ from datadog_lambda.trigger import EventTypes
16
11
  logger = logging.getLogger(__name__)
17
12
 
18
13
 
14
+ dd_botocore_add_span_pointers = os.environ.get(
15
+ "DD_BOTOCORE_ADD_SPAN_POINTERS", "true"
16
+ ).lower() in ("true", "1")
17
+
18
+
19
19
  def calculate_span_pointers(
20
20
  event_source,
21
21
  event,
22
+ botocore_add_span_pointers=dd_botocore_add_span_pointers,
22
23
  ) -> List[_SpanPointerDescription]:
23
24
  try:
24
- if event_source.equals(EventTypes.S3):
25
- 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)
26
28
 
27
- elif event_source.equals(EventTypes.DYNAMODB):
28
- return _calculate_dynamodb_span_pointers_for_event(event)
29
+ elif event_source.equals(EventTypes.DYNAMODB):
30
+ return _calculate_dynamodb_span_pointers_for_event(event)
29
31
 
30
32
  except Exception as e:
31
33
  logger.warning(
@@ -80,6 +82,10 @@ def _calculate_s3_span_pointers_for_object_created_s3_information(
80
82
  return []
81
83
 
82
84
  try:
85
+ from ddtrace._trace.utils_botocore.span_pointers.s3 import (
86
+ _aws_s3_object_span_pointer_description,
87
+ )
88
+
83
89
  return [
84
90
  _aws_s3_object_span_pointer_description(
85
91
  pointer_direction=_SpanPointerDirection.UPSTREAM,
@@ -124,6 +130,10 @@ def _calculate_dynamodb_span_pointers_for_event_record(
124
130
  return []
125
131
 
126
132
  try:
133
+ from ddtrace._trace.utils_botocore.span_pointers.dynamodb import (
134
+ _aws_dynamodb_item_span_pointer_description,
135
+ )
136
+
127
137
  return [
128
138
  _aws_dynamodb_item_span_pointer_description(
129
139
  pointer_direction=_SpanPointerDirection.UPSTREAM,
@@ -411,7 +411,10 @@ def is_legacy_lambda_step_function(event):
411
411
  """
412
412
  Check if the event is a step function that called a legacy lambda
413
413
  """
414
- event = event.get("Payload", {})
414
+ if not isinstance(event, dict) or "Payload" not in event:
415
+ return False
416
+
417
+ event = event.get("Payload")
415
418
  return "Execution" in event and "StateMachine" in event and "State" in event
416
419
 
417
420
 
@@ -0,0 +1 @@
1
+ __version__ = "6.101.0"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "datadog_lambda"
3
- version = "6.100.0"
3
+ version = "6.101.0"
4
4
  description = "The Datadog AWS Lambda Library"
5
5
  authors = ["Datadog, Inc. <dev@datadoghq.com>"]
6
6
  license = "Apache-2.0"
@@ -27,7 +27,7 @@ classifiers = [
27
27
  python = ">=3.8.0,<4"
28
28
  datadog = ">=0.41.0,<1.0.0"
29
29
  wrapt = "^1.11.2"
30
- ddtrace = ">=2.15.0"
30
+ ddtrace = ">=2.16.0"
31
31
  ujson = ">=5.9.0"
32
32
  boto3 = { version = "^1.34.0", optional = true }
33
33
  requests = { version ="^2.22.0", optional = true }
@@ -1 +0,0 @@
1
- __version__ = "6.100.0"