Skip to content
Closed
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,15 @@ RUN rm ./python/lib/$runtime/site-packages/ddtrace/internal/datadog/profiling/dd
RUN rm ./python/lib/$runtime/site-packages/ddtrace/internal/datadog/profiling/stack_v2/_stack_v2.*.so
RUN find . -name "*.dist-info" -type d | xargs rm -rf

# The requests package is available in the lambda runtime already as
# pip._vendor.requests. Before importing requests, `/path/to/pip/_vendor` must
# be added to `sys.path`.
RUN rm -rf \
./python/lib/$runtime/site-packages/requests* \
./python/lib/$runtime/site-packages/certifi* \
./python/lib/$runtime/site-packages/idna* \
./python/lib/$runtime/site-packages/charset_normalizer*

# Precompile all .pyc files and remove .py files. This speeds up load time.
# Compile with optimization level 2 (-OO) and PYTHONNODEBUGRANGES=1 to redtce
# size of .pyc files.
Expand Down
12 changes: 11 additions & 1 deletion datadog_lambda/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
from datadog_lambda.cold_start import initialize_cold_start_tracing
import os
import sys


# The requests package is no longer included in the lambda layer, instead use
# the vendored version of requests included in the pip package. Appending to
# sys.path will make the vendered requests package discoverable.
for i in range(len(sys.path)):
path = sys.path[i]
sys.path.append(f"{path}/pip/_vendor")

from datadog_lambda.cold_start import initialize_cold_start_tracing # noqa: E402


if os.environ.get("DD_INSTRUMENTATION_TELEMETRY_ENABLED") is None:
Expand Down
2 changes: 1 addition & 1 deletion scripts/check_layer_size.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

set -e
MAX_LAYER_COMPRESSED_SIZE_KB=$(expr 5 \* 1024)
MAX_LAYER_UNCOMPRESSED_SIZE_KB=$(expr 13 \* 1024)
MAX_LAYER_UNCOMPRESSED_SIZE_KB=$(expr 12 \* 1024)


LAYER_FILES_PREFIX="datadog_lambda_py"
Expand Down
9 changes: 7 additions & 2 deletions tests/integration/handle.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import requests

from datadog_lambda.metric import lambda_metric
from datadog_lambda.wrapper import datadog_lambda_wrapper

import requests
import time


@datadog_lambda_wrapper
def handle(event, context):
Expand All @@ -20,7 +21,11 @@ def handle(event, context):
record_ids.append(record["Sns"]["MessageId"])

# Generate custom metrics
timestamp = time.time() - 60
lambda_metric("hello.dog", 1, tags=["team:serverless", "role:hello"])
lambda_metric(
"hello.cat", 1, tags=["team:serverless", "role:hello"], timestamp=timestamp
)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Creating a custom metric with a timestamp forces our instrumentation to use the datadog api package instead of sending the metric to the extension.

lambda_metric(
"tests.integration.count", 21, tags=["test:integration", "role:hello"]
)
Expand Down
90 changes: 90 additions & 0 deletions tests/integration/snapshots/logs/async-metrics_python310.log
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,16 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -198,6 +208,16 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -396,6 +416,16 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -555,6 +585,16 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -730,6 +770,16 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -896,6 +946,16 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -1071,6 +1131,16 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -1235,6 +1305,16 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -1398,6 +1478,16 @@ START
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python310_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down
90 changes: 90 additions & 0 deletions tests/integration/snapshots/logs/async-metrics_python311.log
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,16 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -198,6 +208,16 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -396,6 +416,16 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -555,6 +585,16 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -730,6 +770,16 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -896,6 +946,16 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -1071,6 +1131,16 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -1235,6 +1305,16 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down Expand Up @@ -1398,6 +1478,16 @@ START
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "hello.cat",
"v": 1,
"e": XXXX,
"t": [
"team:serverless",
"role:hello",
"dd_lambda_layer:datadog-python311_X.X.X"
]
}
{
"m": "tests.integration.count",
"v": 21,
Expand Down
Loading