From 416530bc65cebe40cf0baa1eb2cfd405c38e6478 Mon Sep 17 00:00:00 2001 From: Nicholas Hulston Date: Fri, 9 May 2025 12:51:42 -0400 Subject: [PATCH 1/2] import exception replay from tracer and enable if `DD_EXCEPTION_REPLAY_ENABLED=true` --- datadog_lambda/wrapper.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index e81b1baa..43377349 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -53,6 +53,10 @@ if llmobs_env_var: from ddtrace.llmobs import LLMObs +exception_replay_env_var = os.environ.get("DD_EXCEPTION_REPLAY_ENABLED", "false").lower() in ("true", "1") +if exception_replay_env_var: + from ddtrace.debugging._exception.replay import SpanExceptionHandler + logger = logging.getLogger(__name__) DD_FLUSH_TO_LOG = "DD_FLUSH_TO_LOG" @@ -224,6 +228,11 @@ def __init__(self, func): if llmobs_env_var: LLMObs.enable() + # Enable Exception Replay + if exception_replay_env_var: + logger.debug("Enabling exception replay") + SpanExceptionHandler.enable() + logger.debug("datadog_lambda_wrapper initialized") except Exception as e: logger.error(format_err_with_traceback(e)) From 5851fba4bf10ffac5e8ac4b2a939d76baff7c9a3 Mon Sep 17 00:00:00 2001 From: Nicholas Hulston Date: Fri, 9 May 2025 13:09:31 -0400 Subject: [PATCH 2/2] lint --- datadog_lambda/wrapper.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index 43377349..e5460118 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -53,7 +53,9 @@ if llmobs_env_var: from ddtrace.llmobs import LLMObs -exception_replay_env_var = os.environ.get("DD_EXCEPTION_REPLAY_ENABLED", "false").lower() in ("true", "1") +exception_replay_env_var = os.environ.get( + "DD_EXCEPTION_REPLAY_ENABLED", "false" +).lower() in ("true", "1") if exception_replay_env_var: from ddtrace.debugging._exception.replay import SpanExceptionHandler