Skip to content

Bug: DD_FLUSH_TO_LOG = False flushes to log #6255

Closed
@manzkel

Description

@manzkel

Expected Behaviour

DD_FLUSH_TO_LOG is a boolean environment variable and as such should be converted based on it's content rather than used as a string.

Current Behaviour

As long as the variable is set by the user, DD_FLUSH_TO_LOG is used as string and therefore evaluates to true (when used in boolean operations further down), irrespective of the value passed to the environment variable.

Code snippet

DD_FLUSH_TO_LOG=False 


import os
from aws_lambda_powertools.metrics.provider.datadog import DatadogMetrics

os.environ["DD_FLUSH_TO_LOG"] = "False"
metrics = DatadogMetrics()

print(metrics.provider.flush_to_log)
>'False'

Possible Solution

Use resolve_truthy_env_var_choice instead of resolve_env_var_choice here

self.flush_to_log = resolve_env_var_choice(choice=flush_to_log, env=os.getenv(constants.DATADOG_FLUSH_TO_LOG))

Steps to Reproduce

Powertools for AWS Lambda (Python) version

latest

AWS Lambda function runtime

3.9

Packaging format used

PyPi

Debugging logs

Metadata

Metadata

Labels

bugSomething isn't workingmetrics

Type

Projects

Status

Shipped

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions