Skip to content

Commit fda243b

Browse files
authored
Merge pull request #1 from streamfold/dd-layer
Add DD layer test
2 parents 54d1477 + 036ff3f commit fda243b

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

.github/workflows/benchmark.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ on:
1414
rotel-layer:
1515
description: 'Rotel Lambda Layer'
1616
required: true
17-
default: 'arn:aws:lambda:us-east-1:418653438961:layer:rotel-extension-amd64-alpha:12'
17+
default: 'arn:aws:lambda:us-east-1:418653438961:layer:rotel-extension-amd64-alpha:23'
18+
datadog-layer:
19+
description: 'Datadog Lambda Layer'
20+
required: true
21+
default: 'arn:aws:lambda:us-east-1:464622532012:layer:Datadog-Extension:53'
1822
python-version:
1923
description: 'Python version to use'
2024
required: true
@@ -56,6 +60,7 @@ jobs:
5660
- name: run
5761
env:
5862
AWS_ROLE_ARN: ${{ secrets.AWS_ROLE_ARN }}
63+
DD_API_KEY: ${{ secrets.DD_API_KEY }}
5964
AWS_REGION: ${{ github.event.inputs.aws-region }}
6065
OTEL_LAYER: ${{ github.event.inputs.otel-layer }}
6166
ROTEL_LAYER: ${{ github.event.inputs.rotel-layer }}

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Small repo to benchmark Lambda runtime execution across different layers and mem
55
Tests:
66
* [AWS OpenTelemetry Collector layer](https://github.com/open-telemetry/opentelemetry-lambda)
77
* [Rotel collector layer](https://github.com/streamfold/rotel-lambda-extension)
8+
* [Datadog Go Layer](https://docs.datadoghq.com/serverless/aws_lambda/opentelemetry/?tab=python): While there is a new [Rust DD layer](https://www.datadoghq.com/blog/datadog-next-gen-lambda-extension/), the Go version is still required for OpenTelemetry support.
89

910
## Usage
1011

scripts/benchmark-coldstart.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,23 @@ if [ -z "$ROTEL_LAYER" ]; then
3232
exit 1
3333
fi
3434

35+
if [ -z "$DATADOG_LAYER" ]; then
36+
echo "Must set DATADOG_LAYER"
37+
exit 1
38+
fi
39+
40+
if [ -z "$DD_API_KEY" ]; then
41+
echo "Must set DD_API_KEY"
42+
exit 1
43+
fi
44+
3545
cat <<EOF
3646
Running benchmark with the following:
3747
- Memory size: $MEMORY_SIZES
3848
- AWS Region: $AWS_REGION
3949
- OTEL Layer: $OTEL_LAYER
4050
- Rotel Layer: $ROTEL_LAYER
51+
- Datadog Layer: $DATADOG_LAYER
4152
EOF
4253

4354
set -e
@@ -72,3 +83,12 @@ for MEMORY_SIZE in ${MEMORY_SIZES}; do
7283
--role-arn "$AWS_ROLE_ARN" --region "$AWS_REGION" --layer "$ROTEL_LAYER" --output "$OUTPUT" \
7384
--memory "$MEMORY_SIZE"
7485
done
86+
87+
for MEMORY_SIZE in ${MEMORY_SIZES}; do
88+
echo "Testing Datadog layer at $MEMORY_SIZE MB"
89+
90+
uv run main.py --path ../function.zip --count $COUNT --function-name benchmark-coldstart-datadog \
91+
--environment DD_API_KEY=${DD_API_KEY},DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT=localhost:4318 \
92+
--role-arn "$AWS_ROLE_ARN" --region "$AWS_REGION" --layer "$DATADOG_LAYER" --output "$OUTPUT" \
93+
--memory "$MEMORY_SIZE"
94+
done

0 commit comments

Comments
 (0)