From 48a5c24f27cb7af2345fa033171d373a1c6a324c Mon Sep 17 00:00:00 2001 From: Andreas Axelsson Date: Thu, 7 Oct 2021 22:03:04 +0800 Subject: [PATCH 1/2] [datadog] Support enabling DataDog profiling --- driftbase/flask/driftbaseapp.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/driftbase/flask/driftbaseapp.py b/driftbase/flask/driftbaseapp.py index 558bda3f..3acc400c 100644 --- a/driftbase/flask/driftbaseapp.py +++ b/driftbase/flask/driftbaseapp.py @@ -2,15 +2,34 @@ Flask app with gevent monkey patching. """ from gevent import monkey +from typing import Union + monkey.patch_all() from psycogreen.gevent import patch_psycopg + patch_psycopg() import os -if os.environ.get('ENABLE_DATADOG_APM', '0') == '1': - import ddtrace - ddtrace.patch_all(logging=True) + +def as_bool(value: Union[str, bool, None]) -> bool: + if value is None: + return False + + if isinstance(value, bool): + return value + + return value.lower() in ('true', '1') + + +if as_bool(os.environ.get('ENABLE_DATADOG_PROFILING', False)): + import ddtrace.profiling.auto # noqa: F401 + +if as_bool(os.environ.get('ENABLE_DATADOG_APM', False)): + from ddtrace import patch_all + + patch_all(logging=True) from drift.flaskfactory import drift_app + app = drift_app() From 531b5cdc8006a66036a86890e73074b0531c0da5 Mon Sep 17 00:00:00 2001 From: Andreas Axelsson Date: Thu, 7 Oct 2021 22:04:12 +0800 Subject: [PATCH 2/2] Clarify dd profling setup --- driftbase/flask/driftbaseapp.py | 1 + 1 file changed, 1 insertion(+) diff --git a/driftbase/flask/driftbaseapp.py b/driftbase/flask/driftbaseapp.py index 3acc400c..470b8cfc 100644 --- a/driftbase/flask/driftbaseapp.py +++ b/driftbase/flask/driftbaseapp.py @@ -23,6 +23,7 @@ def as_bool(value: Union[str, bool, None]) -> bool: if as_bool(os.environ.get('ENABLE_DATADOG_PROFILING', False)): + # importing this is all that's needed import ddtrace.profiling.auto # noqa: F401 if as_bool(os.environ.get('ENABLE_DATADOG_APM', False)):