8000 Support DD_LOG_LEVEL · DataDog/datadog-lambda-python@cac126e · GitHub
[go: up one dir, main page]

Skip to content

Commit cac126e

Browse files
committed
Support DD_LOG_LEVEL
1 parent 1e00b11 commit cac126e

File tree

4 files changed

+27
-3
lines changed

4 files changed

+27
-3
lines changed

datadog_lambda/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
11
# The minor version corresponds to the Lambda layer version.
22
# E.g.,, version 0.5.0 gets packaged into layer version 5.
33
__version__ = '0.5.0'
4+
5+
6+
import os
7+
import logging
8+
logger = logging.getLogger(__name__)
9+
logger.setLevel(logging.getLevelName(os.environ.get('DD_LOG_LEVEL', 'INFO').upper()))

datadog_lambda/metric.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@
88
import json
99
import time
1010
import base64
11+
import logging
1112

1213
import boto3
1314
from datadog import api
1415
from datadog.threadstats import ThreadStats
1516
from datadog_lambda import __version__
1617

18+
logger = logging.getLogger(__name__)
19+
1720
lambda_stats = ThreadStats()
1821
lambda_stats.start()
1922

@@ -52,32 +55,38 @@ def lambda_metric(metric_name, value, timestamp=None, tags=None):
5255
"""
5356
tags = _tag_dd_lambda_layer(tags)
5457
if os.environ.get('DD_FLUSH_TO_LOG', '').lower() == 'true':
58+
logger.debug('Sending metric %s to Datadog via log forwarder', metric_name)
5559
print(json.dumps({
5660
'm': metric_name,
5761
'v': value,
5862
'e': timestamp or int(time.time()),
5963
't': tags
6064
}))
6165
else:
66+
logger.debug('Sending metric %s to Datadog via lambda layer', metric_name)
6267
lambda_stats.distribution(
6368
metric_name, value, timestamp=timestamp, tags=tags
6469
)
6570

6671

6772
# Decrypt code should run once and variables stored outside of the function
6873
# handler so that these are decrypted once per container
69-
DD_KMS_API_KEY = os.environ.get("DD_KMS_API_KEY")
74+
DD_KMS_API_KEY = os.environ.get('DD_KMS_API_KEY', '')
7075
if DD_KMS_API_KEY:
71-
DD_KMS_API_KEY = boto3.client("kms").decrypt(
76+
DD_KMS_API_KEY = boto3.client('kms').decrypt(
7277
CiphertextBlob=base64.b64decode(DD_KMS_API_KEY)
73-
)["Plaintext"]
78+
)['Plaintext']
7479

7580
# Set API Key and Host in the module, so they only set once per container
7681
api._api_key = os.environ.get(
7782
'DATADOG_API_KEY',
7883
os.environ.get('DD_API_KEY', DD_KMS_API_KEY),
7984
)
85+
logger.debug('Setting DATADOG_API_KEY of length %d', len(api._api_key))
86+
87+
# Set DATADOG_HOST, to send data to a non-default Datadog datacenter
8088
api._api_host = os.environ.get(
8189
'DATADOG_HOST',
8290
'https://api.' + os.environ.get('DD_SITE', 'datadoghq.com')
8391
)
92+
logger.debug('Setting DATADOG_HOST to %s', api._api_host)

datadog_lambda/tracing.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
# This product includes software developed at Datadog (https://www.datadoghq.com/).
44
# Copyright 2019 Datadog, Inc.
55

6+
import logging
7+
68
from aws_xray_sdk.core import xray_recorder
79

810
from datadog_lambda.constants import (
@@ -11,6 +13,8 @@
1113
XraySubsegment,
1214
)
1315

16+
logger = logging.getLogger(__name__)
17+
1418
dd_trace_context = {}
1519

1620

@@ -33,6 +37,7 @@ def extract_dd_trace_context(event):
3337
parent_id = lowercase_headers.get(TraceHeader.PARENT_ID)
3438
sampling_priority = lowercase_headers.get(TraceHeader.SAMPLING_PRIORITY)
3539
if trace_id and parent_id and sampling_priority:
40+
logger.debug('Extracted Datadog trace context from headers')
3641
dd_trace_context = {
3742
'trace-id': trace_id,
3843
'parent-id': parent_id,

datadog_lambda/wrapper.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@
44
# Copyright 2019 Datadog, Inc.
55

66
import os
7+
import logging
78
import traceback
89

910
from datadog_lambda.metric import lambda_stats
1011
from datadog_lambda.tracing import extract_dd_trace_context
1112
from datadog_lambda.patch import patch_all
1213

14+
logger = logging.getLogger(__name__)
15+
1316

1417
"""
1518
Usage:
@@ -34,6 +37,7 @@ class _LambdaDecorator(object):
3437
def __init__(self, func):
3538
self.func = func
3639
self.flush_to_log = os.environ.get('DD_FLUSH_TO_LOG', '').lower() == 'true'
40+
logger.debug('datadog_lambda_wrapper initialized')
3741

3842
def _before(self, event, context):
3943
try:

0 commit comments

Comments
 (0)
0