Skip to content

Commit 7cff451

Browse files
committed
add for datadog
1 parent e312a29 commit 7cff451

File tree

1 file changed

+14
-2
lines changed
  • aws_lambda_powertools/metrics/provider/datadog

1 file changed

+14
-2
lines changed

aws_lambda_powertools/metrics/provider/datadog/datadog.py

+14-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from aws_lambda_powertools.metrics.provider import BaseProvider
1414
from aws_lambda_powertools.metrics.provider.datadog.warnings import DatadogDataValidationWarning
1515
from aws_lambda_powertools.shared import constants
16-
from aws_lambda_powertools.shared.functions import resolve_env_var_choice
16+
from aws_lambda_powertools.shared.functions import resolve_env_var_choice, resolve_truthy_env_var_choice
1717

1818
if TYPE_CHECKING:
1919
from aws_lambda_powertools.shared.types import AnyCallableT
@@ -65,6 +65,15 @@ def __init__(
6565
)
6666
self.default_tags = default_tags or {}
6767
self.flush_to_log = resolve_env_var_choice(choice=flush_to_log, env=os.getenv(constants.DATADOG_FLUSH_TO_LOG))
68+
self.metrics_disabled = self.is_metrics_disabled()
69+
70+
@staticmethod
71+
def is_metrics_disabled() -> bool:
72+
"""Checks if metrics have been disabled via POWERTOOLS_METRICS_DISABLE"""
73+
is_disabled = resolve_truthy_env_var_choice(env=os.getenv(constants.METRICS_DISABLED_ENV, "false"))
74+
if is_disabled:
75+
logger.debug("Metrics have been disabled via env var POWERTOOLS_METRICS_DISABLED")
76+
return is_disabled
6877

6978
# adding name,value,timestamp,tags
7079
def add_metric(
@@ -99,7 +108,8 @@ def add_metric(
99108
>>> sales='sam'
100109
>>> )
101110
"""
102-
111+
if self.metrics_disabled:
112+
return
103113
# validating metric name
104114
if not self._validate_datadog_metric_name(name):
105115
docs = "https://docs.datadoghq.com/metrics/custom_metrics/#naming-custom-metrics"
@@ -180,6 +190,8 @@ def flush_metrics(self, raise_on_empty_metrics: bool = False) -> None:
180190
raise_on_empty_metrics : bool, optional
181191
raise exception if no metrics are emitted, by default False
182192
"""
193+
if self.metrics_disabled:
194+
return
183195
if not raise_on_empty_metrics and len(self.metric_set) == 0:
184196
warnings.warn(
185197
"No application metrics to publish. The cold-start metric may be published if enabled. "

0 commit comments

Comments
 (0)