From 23f02adbbb4c2ffa49f5880c1de47b1555f560bf Mon Sep 17 00:00:00 2001 From: liustve Date: Tue, 8 Apr 2025 22:15:25 +0000 Subject: [PATCH 1/4] test --- .../python-lambda-layer-perf-test.yml | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/python-lambda-layer-perf-test.yml diff --git a/.github/workflows/python-lambda-layer-perf-test.yml b/.github/workflows/python-lambda-layer-perf-test.yml new file mode 100644 index 000000000..da674d6ad --- /dev/null +++ b/.github/workflows/python-lambda-layer-perf-test.yml @@ -0,0 +1,37 @@ +## Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +## SPDX-License-Identifier: Apache-2.0 +name: Python Lambda Layer Performance Test +on: + push: + branches: [ "perf_testing_lambda_layer" ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout aws-otel-python-instrumentation + uses: actions/checkout@v4 + with: + repository: aws-observability/aws-otel-python-instrumentation + path: aws-otel-python-instrumentation + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.13' + + - name: Build Lambda Layer + run: | + cd aws-otel-python-instrumentation/lambda-layer + chmod +x build.sh + ./build.sh + + - name: Checkout current repository + uses: actions/checkout@v4 + with: + path: current-repo + + # Add your subsequent steps here + + From 4694bb321e3abcbbaffb5ea116bd20acec6d3dd0 Mon Sep 17 00:00:00 2001 From: liustve Date: Wed, 9 Apr 2025 21:51:07 +0000 Subject: [PATCH 2/4] add automated Lambda Layer performance testing for python --- .../python-lambda-layer-perf-test.yml | 87 ++++++++++++-- lambda-layer-perf-test/lambda-layer-run.sh | 110 ++++++++++++++++++ terraform/dotnet/lambda/lambda/layer_arns.tf | 56 ++++----- terraform/java/lambda/lambda/layer_arns.tf | 56 ++++----- terraform/node/lambda/lambda/layer_arns.tf | 56 ++++----- terraform/python/lambda/lambda/layer_arns.tf | 56 ++++----- 6 files changed, 301 insertions(+), 120 deletions(-) create mode 100755 lambda-layer-perf-test/lambda-layer-run.sh diff --git a/.github/workflows/python-lambda-layer-perf-test.yml b/.github/workflows/python-lambda-layer-perf-test.yml index da674d6ad..152fd42a8 100644 --- a/.github/workflows/python-lambda-layer-perf-test.yml +++ b/.github/workflows/python-lambda-layer-perf-test.yml @@ -2,14 +2,30 @@ ## SPDX-License-Identifier: Apache-2.0 name: Python Lambda Layer Performance Test on: - push: - branches: [ "perf_testing_lambda_layer" ] - + workflow_dispatch: + inputs: + test_runs: + description: 'Number of test runs to perform' + required: true + default: 23 + type: number jobs: - build: - runs-on: ubuntu-latest - + python-lambda-layer-performance-test: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + + env: + NUM_TEST_RUNS: ${{ github.event.inputs.test_runs }} + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: arn:aws:iam::${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }}:role/${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }} + aws-region: us-east-1 + - name: Checkout aws-otel-python-instrumentation uses: actions/checkout@v4 with: @@ -17,10 +33,13 @@ jobs: path: aws-otel-python-instrumentation - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.13' + - name: Setup Terraform + uses: hashicorp/setup-terraform@v2 + - name: Build Lambda Layer run: | cd aws-otel-python-instrumentation/lambda-layer @@ -31,7 +50,59 @@ jobs: uses: actions/checkout@v4 with: path: current-repo + + - name: Run Cold Start Iterations for Base Lambda + Lambda Layer + run: | + cd current-repo + chmod +x lambda-layer-perf-test/lambda-layer-run.sh + ./lambda-layer-perf-test/lambda-layer-run.sh false aws-opentelemetry-distro-python - # Add your subsequent steps here + - name: Remove Application Signals Lambda Layer + run: | + echo "Removing Lambda layer..." + + OUTPUT=$(aws lambda update-function-configuration \ + --function-name aws-opentelemetry-distro-python \ + --layers []) + + echo "Lambda configuration:" + echo "$OUTPUT" + + LAYERS=$(echo "$OUTPUT" | jq -r '.Layers | length') + + if [ "$LAYERS" -ne 0 ]; then + echo "::error::Found $LAYERS layer(s) still attached to the function" + echo "::error::Layer details:" + echo "$OUTPUT" | jq -r '.Layers' + exit 1 + else + echo "✅ Layers successfully removed" + fi + + - name: Run Cold Start Iterations for Base Lambda + run: | + cd current-repo + chmod +x lambda-layer-perf-test/lambda-layer-run.sh + ./lambda-layer-perf-test/lambda-layer-run.sh true aws-opentelemetry-distro-python + - name: Upload no layer results + uses: actions/upload-artifact@v4 + with: + name: no-layer-results + path: no_layer_results.txt + retention-days: 90 + + - name: Upload layer results + uses: actions/upload-artifact@v4 + with: + name: layer-results + path: layer_results.txt + retention-days: 90 + - name: Cleanup Terraform Resources + if: success() || failure() || cancelled() + run: | + cd aws-otel-python-instrumentation/lambda-layer/terraform/lambda + echo "Starting Terraform cleanup..." + terraform init + terraform destroy -auto-approve \ No newline at end of file diff --git a/lambda-layer-perf-test/lambda-layer-run.sh b/lambda-layer-perf-test/lambda-layer-run.sh new file mode 100755 index 000000000..f2176ab9e --- /dev/null +++ b/lambda-layer-perf-test/lambda-layer-run.sh @@ -0,0 +1,110 @@ +## Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +## SPDX-License-Identifier: Apache-2.0 + +#!/bin/bash + +IS_BASE_RUN=${1:-false} +FUNCTION_NAME=${2:-none} +SLEEP_TIME_SECONDS=300 +TEST_RUNS=${NUM_TEST_RUNS:-20} + +echo "Running $TEST_RUNS cold start test iterations" + +CW_LOGS_QUERY_START_TIME=$(date +%s) + +echo "Sleeping for $SLEEP_TIME_SECONDS seconds to ensure logs are within CloudWatch Insights query timeframe" +sleep "$SLEEP_TIME_SECONDS" + +ACTUAL_START_TIME=$(date +%s) +echo "Start time for test run: $ACTUAL_START_TIME" + +for i in $(seq 1 "$TEST_RUNS"); do + if $IS_BASE_RUN; then + ENV_JSON="{\"Variables\":{\"FOO\":\"BAR_$i\"}}" + else + ENV_JSON="{\"Variables\":{\"AWS_LAMBDA_EXEC_WRAPPER\":\"/opt/otel-instrument\",\"FOO\":\"BAR_$i\"}}" + fi + + echo "Iteration $i: Updating environment variables to simulate cold start" + + # Update environment variables + aws lambda update-function-configuration \ + --function-name $FUNCTION_NAME \ + --environment "$ENV_JSON" > /dev/null + + # Wait a short time for changes to take effect + sleep 5 + + # Invoke the Lambda function + echo "Iteration $i: Invoking Lambda function" + aws lambda invoke --function-name $FUNCTION_NAME --payload '{}' response.json > /dev/null + + # Wait to simulate cold start reset + echo "Iteration $i: Waiting for cold start reset" + sleep 5 +done + +ACTUAL_END_TIME=$(date +%s) +echo "End time for test run: $ACTUAL_END_TIME" +echo "Cold start test completed" + +echo "Sleeping for $SLEEP_TIME_SECONDS seconds to ensure logs are within CloudWatch Insights query timeframe" +sleep $SLEEP_TIME_SECONDS + +CW_LOGS_QUERY_END_TIME=$(date +%s) + +echo "Running CloudWatch Logs Insights query..." + +QUERY='fields @timestamp, @message, @initDuration +| filter @message like "REPORT RequestId" +| stats + count(@initDuration) as Sample_Count, + avg(@initDuration) as Average_Init_Duration, + min(@initDuration) as Min_Init_Duration, + max(@initDuration) as Max_Init_Duration, + pct(@initDuration, 50) as P50_Init_Duration, + pct(@initDuration, 90) as P90_Init_Duration, + pct(@initDuration, 99) as P99_Init_Duration' + +# Start the query +QUERY_ID=$(aws logs start-query \ + --log-group-name "/aws/lambda/$FUNCTION_NAME" \ + --start-time "$CW_LOGS_QUERY_START_TIME" \ + --end-time "$CW_LOGS_QUERY_END_TIME" \ + --query-string "$QUERY" \ + --output text) + +echo "Query ID: $QUERY_ID" + +STATUS="Running" +while [ "$STATUS" = "Running" ]; do + echo "Waiting for query results..." + sleep 3 + RESULT=$(aws logs get-query-results --query-id "$QUERY_ID") + STATUS=$(echo "$RESULT" | jq -r .status) +done + +if [ "$STATUS" = "Complete" ]; then + echo "Query completed. Results:" + echo "$RESULT" +else + echo "Query failed with status: $STATUS" +fi + +FLATTENED=$(echo "$RESULT" | jq -r ' + .results[0] | + map({(.field): .value}) | + add | + del(.Sample_Count) | + to_entries | + map("\"\(.key)\": \"\(.value)\"") | + join(",\n") +') + +if $IS_BASE_RUN; then + echo "$FLATTENED" > ../no_layer_results.txt + echo "Results saved to no_layer_results.txt" +else + echo "$FLATTENED" > ../layer_results.txt + echo "Results saved to layer_results.txt" +fi \ No newline at end of file diff --git a/terraform/dotnet/lambda/lambda/layer_arns.tf b/terraform/dotnet/lambda/lambda/layer_arns.tf index bcf1ddf94..31e05b030 100644 --- a/terraform/dotnet/lambda/lambda/layer_arns.tf +++ b/terraform/dotnet/lambda/lambda/layer_arns.tf @@ -1,32 +1,32 @@ locals { sdk_layer_arns = { - "af-south-1" = "arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroDotNet:4" - "ap-east-1" = "arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroDotNet:4" - "ap-northeast-1" = "arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "ap-northeast-2" = "arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "ap-northeast-3" = "arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "ap-south-1" = "arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "ap-south-2" = "arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroDotNet:4" - "ap-southeast-1" = "arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "ap-southeast-2" = "arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "ap-southeast-3" = "arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroDotNet:4" - "ap-southeast-4" = "arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroDotNet:4" - "ca-central-1" = "arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "eu-central-1" = "arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "eu-central-2" = "arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroDotNet:4" - "eu-north-1" = "arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "eu-south-1" = "arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroDotNet:4" - "eu-south-2" = "arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroDotNet:4" - "eu-west-1" = "arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "eu-west-2" = "arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "eu-west-3" = "arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "il-central-1" = "arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroDotNet:4" - "me-central-1" = "arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroDotNet:4" - "me-south-1" = "arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroDotNet:4" - "sa-east-1" = "arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "us-east-1" = "arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" - "us-east-2" = "arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "us-west-1" = "arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" - "us-west-2" = "arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:4" + "af-south-1" = "arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroDotNet:5" + "ap-east-1" = "arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroDotNet:5" + "ap-northeast-1" = "arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "ap-northeast-2" = "arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "ap-northeast-3" = "arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "ap-south-1" = "arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "ap-south-2" = "arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroDotNet:5" + "ap-southeast-1" = "arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "ap-southeast-2" = "arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "ap-southeast-3" = "arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroDotNet:5" + "ap-southeast-4" = "arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroDotNet:5" + "ca-central-1" = "arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "eu-central-1" = "arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "eu-central-2" = "arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroDotNet:5" + "eu-north-1" = "arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "eu-south-1" = "arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroDotNet:5" + "eu-south-2" = "arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroDotNet:5" + "eu-west-1" = "arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "eu-west-2" = "arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "eu-west-3" = "arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "il-central-1" = "arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroDotNet:5" + "me-central-1" = "arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroDotNet:5" + "me-south-1" = "arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroDotNet:5" + "sa-east-1" = "arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "us-east-1" = "arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:6" + "us-east-2" = "arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "us-west-1" = "arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" + "us-west-2" = "arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5" } } diff --git a/terraform/java/lambda/lambda/layer_arns.tf b/terraform/java/lambda/lambda/layer_arns.tf index 3714065bf..bb8679f03 100644 --- a/terraform/java/lambda/lambda/layer_arns.tf +++ b/terraform/java/lambda/lambda/layer_arns.tf @@ -1,32 +1,32 @@ locals { sdk_layer_arns = { - "af-south-1" = "arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroJava:4" - "ap-east-1" = "arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroJava:4" - "ap-northeast-1" = "arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "ap-northeast-2" = "arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "ap-northeast-3" = "arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "ap-south-1" = "arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "ap-south-2" = "arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroJava:4" - "ap-southeast-1" = "arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "ap-southeast-2" = "arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "ap-southeast-3" = "arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroJava:4" - "ap-southeast-4" = "arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroJava:4" - "ca-central-1" = "arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "eu-central-1" = "arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "eu-central-2" = "arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroJava:4" - "eu-north-1" = "arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "eu-south-1" = "arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroJava:4" - "eu-south-2" = "arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroJava:4" - "eu-west-1" = "arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "eu-west-2" = "arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "eu-west-3" = "arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "il-central-1" = "arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroJava:4" - "me-central-1" = "arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroJava:4" - "me-south-1" = "arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroJava:4" - "sa-east-1" = "arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "us-east-1" = "arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "us-east-2" = "arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "us-west-1" = "arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroJava:4" - "us-west-2" = "arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroJava:4" + "af-south-1" = "arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroJava:5" + "ap-east-1" = "arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroJava:5" + "ap-northeast-1" = "arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "ap-northeast-2" = "arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "ap-northeast-3" = "arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "ap-south-1" = "arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "ap-south-2" = "arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroJava:5" + "ap-southeast-1" = "arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "ap-southeast-2" = "arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "ap-southeast-3" = "arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroJava:5" + "ap-southeast-4" = "arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroJava:5" + "ca-central-1" = "arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "eu-central-1" = "arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "eu-central-2" = "arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroJava:5" + "eu-north-1" = "arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "eu-south-1" = "arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroJava:5" + "eu-south-2" = "arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroJava:5" + "eu-west-1" = "arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "eu-west-2" = "arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "eu-west-3" = "arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "il-central-1" = "arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroJava:5" + "me-central-1" = "arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroJava:5" + "me-south-1" = "arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroJava:5" + "sa-east-1" = "arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "us-east-1" = "arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "us-east-2" = "arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "us-west-1" = "arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroJava:5" + "us-west-2" = "arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroJava:5" } } diff --git a/terraform/node/lambda/lambda/layer_arns.tf b/terraform/node/lambda/lambda/layer_arns.tf index 83a592b2f..b063ba503 100644 --- a/terraform/node/lambda/lambda/layer_arns.tf +++ b/terraform/node/lambda/lambda/layer_arns.tf @@ -1,32 +1,32 @@ locals { sdk_layer_arns_amd64 = { - "af-south-1" = "arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroJs:7" - "ap-east-1" = "arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroJs:7" - "ap-northeast-1" = "arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "ap-northeast-2" = "arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "ap-northeast-3" = "arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "ap-south-1" = "arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "ap-south-2" = "arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroJs:7" - "ap-southeast-1" = "arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "ap-southeast-2" = "arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "ap-southeast-3" = "arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroJs:7" - "ap-southeast-4" = "arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroJs:7" - "ca-central-1" = "arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "eu-central-1" = "arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "eu-central-2" = "arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroJs:7" - "eu-north-1" = "arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "eu-south-1" = "arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroJs:7" - "eu-south-2" = "arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroJs:7" - "eu-west-1" = "arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "eu-west-2" = "arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "eu-west-3" = "arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "il-central-1" = "arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroJs:7" - "me-central-1" = "arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroJs:7" - "me-south-1" = "arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroJs:7" - "sa-east-1" = "arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "us-east-1" = "arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "us-east-2" = "arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "us-west-1" = "arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroJs:7" - "us-west-2" = "arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroJs:7" + "af-south-1" = "arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroJs:8" + "ap-east-1" = "arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroJs:8" + "ap-northeast-1" = "arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "ap-northeast-2" = "arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "ap-northeast-3" = "arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "ap-south-1" = "arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "ap-south-2" = "arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroJs:8" + "ap-southeast-1" = "arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "ap-southeast-2" = "arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "ap-southeast-3" = "arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroJs:8" + "ap-southeast-4" = "arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroJs:8" + "ca-central-1" = "arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "eu-central-1" = "arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "eu-central-2" = "arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroJs:8" + "eu-north-1" = "arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "eu-south-1" = "arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroJs:8" + "eu-south-2" = "arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroJs:8" + "eu-west-1" = "arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "eu-west-2" = "arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "eu-west-3" = "arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "il-central-1" = "arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroJs:8" + "me-central-1" = "arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroJs:8" + "me-south-1" = "arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroJs:8" + "sa-east-1" = "arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "us-east-1" = "arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "us-east-2" = "arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "us-west-1" = "arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroJs:8" + "us-west-2" = "arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroJs:8" } } diff --git a/terraform/python/lambda/lambda/layer_arns.tf b/terraform/python/lambda/lambda/layer_arns.tf index 6454de4f7..405d00226 100644 --- a/terraform/python/lambda/lambda/layer_arns.tf +++ b/terraform/python/lambda/lambda/layer_arns.tf @@ -1,32 +1,32 @@ locals { sdk_layer_arns_amd64 = { - "af-south-1" = "arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroPython:8" - "ap-east-1" = "arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroPython:8" - "ap-northeast-1" = "arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "ap-northeast-2" = "arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "ap-northeast-3" = "arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroPython:10" - "ap-south-1" = "arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "ap-south-2" = "arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroPython:8" - "ap-southeast-1" = "arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:10" - "ap-southeast-2" = "arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "ap-southeast-3" = "arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroPython:8" - "ap-southeast-4" = "arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroPython:8" - "ca-central-1" = "arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "eu-central-1" = "arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "eu-central-2" = "arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroPython:8" - "eu-north-1" = "arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "eu-south-1" = "arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroPython:8" - "eu-south-2" = "arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroPython:8" - "eu-west-1" = "arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "eu-west-2" = "arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "eu-west-3" = "arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "il-central-1" = "arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroPython:8" - "me-central-1" = "arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroPython:8" - "me-south-1" = "arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroPython:8" - "sa-east-1" = "arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "us-east-1" = "arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroPython:14" - "us-east-2" = "arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroPython:11" - "us-west-1" = "arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroPython:18" - "us-west-2" = "arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroPython:18" + "af-south-1" = "arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroPython:10" + "ap-east-1" = "arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroPython:10" + "ap-northeast-1" = "arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "ap-northeast-2" = "arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "ap-northeast-3" = "arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroPython:12" + "ap-south-1" = "arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "ap-south-2" = "arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroPython:10" + "ap-southeast-1" = "arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:12" + "ap-southeast-2" = "arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "ap-southeast-3" = "arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroPython:10" + "ap-southeast-4" = "arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroPython:10" + "ca-central-1" = "arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "eu-central-1" = "arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "eu-central-2" = "arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroPython:10" + "eu-north-1" = "arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "eu-south-1" = "arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroPython:10" + "eu-south-2" = "arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroPython:10" + "eu-west-1" = "arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "eu-west-2" = "arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "eu-west-3" = "arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "il-central-1" = "arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroPython:10" + "me-central-1" = "arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroPython:10" + "me-south-1" = "arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroPython:10" + "sa-east-1" = "arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "us-east-1" = "arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroPython:16" + "us-east-2" = "arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroPython:13" + "us-west-1" = "arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroPython:20" + "us-west-2" = "arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroPython:20" } } From 8e108994ad8943afbbc8a5fa26b909b0639a7f46 Mon Sep 17 00:00:00 2001 From: liustve Date: Wed, 9 Apr 2025 22:21:44 +0000 Subject: [PATCH 3/4] setup default runs to 20 --- .github/workflows/python-lambda-layer-perf-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-lambda-layer-perf-test.yml b/.github/workflows/python-lambda-layer-perf-test.yml index 152fd42a8..216fcf258 100644 --- a/.github/workflows/python-lambda-layer-perf-test.yml +++ b/.github/workflows/python-lambda-layer-perf-test.yml @@ -7,7 +7,7 @@ on: test_runs: description: 'Number of test runs to perform' required: true - default: 23 + default: 20 type: number jobs: python-lambda-layer-performance-test: From 5b5b5685a2c4e902b6a796426d6e534a1818038a Mon Sep 17 00:00:00 2001 From: liustve Date: Wed, 9 Apr 2025 22:59:34 +0000 Subject: [PATCH 4/4] bundle performance testing results into one artifact --- .../workflows/python-lambda-layer-perf-test.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/python-lambda-layer-perf-test.yml b/.github/workflows/python-lambda-layer-perf-test.yml index 216fcf258..9288ce610 100644 --- a/.github/workflows/python-lambda-layer-perf-test.yml +++ b/.github/workflows/python-lambda-layer-perf-test.yml @@ -85,18 +85,13 @@ jobs: chmod +x lambda-layer-perf-test/lambda-layer-run.sh ./lambda-layer-perf-test/lambda-layer-run.sh true aws-opentelemetry-distro-python - - name: Upload no layer results + - name: Upload test results uses: actions/upload-artifact@v4 with: - name: no-layer-results - path: no_layer_results.txt - retention-days: 90 - - - name: Upload layer results - uses: actions/upload-artifact@v4 - with: - name: layer-results - path: layer_results.txt + name: performance-test-results + path: | + no_layer_results.txt + layer_results.txt retention-days: 90 - name: Cleanup Terraform Resources