From cc78e05f3bd9d7dbc2722c48166a71a77f97d687 Mon Sep 17 00:00:00 2001
From: Mark Sailes <45629314+msailes@users.noreply.github.com>
Date: Wed, 6 Nov 2024 10:26:49 +0000
Subject: [PATCH 01/10] feat: profiler
---
.../workflows/aws-lambda-java-profiler.yml | 70 +++++
.gitignore | 5 +
README.md | 12 +
aws-lambda-java-profiler/.gitignore | 3 +
.../.mvn/wrapper/maven-wrapper.properties | 19 ++
aws-lambda-java-profiler/README.md | 93 +++++++
.../docs/Arch_AWS-Lambda_64.svg | 18 ++
.../example-cold-start-flame-graph-small.png | Bin 0 -> 543704 bytes
.../docs/example-cold-start-flame-graph.png | Bin 0 -> 721242 bytes
.../examples/cdk/.gitignore | 13 +
.../examples/cdk/README.md | 18 ++
.../examples/cdk/cdk.json | 68 +++++
aws-lambda-java-profiler/examples/cdk/pom.xml | 59 ++++
.../cdk/src/main/java/com/myorg/InfraApp.java | 42 +++
.../src/main/java/com/myorg/InfraStack.java | 53 ++++
.../function/profiling-example/pom.xml | 63 +++++
.../src/main/java/helloworld/App.java | 53 ++++
.../src/test/java/helloworld/AppTest.java | 22 ++
.../extension/build.gradle | 34 +++
.../extension/build_layer.sh | 13 +
.../extension/extensions/profiler-extension | 6 +
.../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes
.../gradle/wrapper/gradle-wrapper.properties | 7 +
aws-lambda-java-profiler/extension/gradlew | 252 ++++++++++++++++++
.../extension/gradlew.bat | 94 +++++++
.../lambda/extension/ExtensionClient.java | 74 +++++
.../lambda/extension/ExtensionMain.java | 133 +++++++++
.../services/lambda/extension/Logger.java | 25 ++
.../services/lambda/extension/PreMain.java | 110 ++++++++
.../services/lambda/extension/S3Manager.java | 67 +++++
.../lambda/extension/ShutdownHook.java | 26 ++
.../integration_tests/cleanup.sh | 45 ++++
.../integration_tests/create_bucket.sh | 14 +
.../integration_tests/create_function.sh | 69 +++++
.../integration_tests/download_from_s3.sh | 43 +++
.../integration_tests/helloworld/build.gradle | 27 ++
.../src/main/java/helloworld/Handler.java | 53 ++++
.../helloworld/src/main/resources/wrapper.sh | 10 +
.../integration_tests/invoke_function.sh | 74 +++++
.../integration_tests/publish_layer.sh | 42 +++
.../integration_tests/trigger | 1 +
aws-lambda-java-profiler/update-function.sh | 72 +++++
42 files changed, 1902 insertions(+)
create mode 100644 .github/workflows/aws-lambda-java-profiler.yml
create mode 100644 aws-lambda-java-profiler/.gitignore
create mode 100644 aws-lambda-java-profiler/.mvn/wrapper/maven-wrapper.properties
create mode 100644 aws-lambda-java-profiler/README.md
create mode 100644 aws-lambda-java-profiler/docs/Arch_AWS-Lambda_64.svg
create mode 100644 aws-lambda-java-profiler/docs/example-cold-start-flame-graph-small.png
create mode 100644 aws-lambda-java-profiler/docs/example-cold-start-flame-graph.png
create mode 100644 aws-lambda-java-profiler/examples/cdk/.gitignore
create mode 100644 aws-lambda-java-profiler/examples/cdk/README.md
create mode 100644 aws-lambda-java-profiler/examples/cdk/cdk.json
create mode 100644 aws-lambda-java-profiler/examples/cdk/pom.xml
create mode 100644 aws-lambda-java-profiler/examples/cdk/src/main/java/com/myorg/InfraApp.java
create mode 100644 aws-lambda-java-profiler/examples/cdk/src/main/java/com/myorg/InfraStack.java
create mode 100644 aws-lambda-java-profiler/examples/function/profiling-example/pom.xml
create mode 100644 aws-lambda-java-profiler/examples/function/profiling-example/src/main/java/helloworld/App.java
create mode 100644 aws-lambda-java-profiler/examples/function/profiling-example/src/test/java/helloworld/AppTest.java
create mode 100644 aws-lambda-java-profiler/extension/build.gradle
create mode 100755 aws-lambda-java-profiler/extension/build_layer.sh
create mode 100755 aws-lambda-java-profiler/extension/extensions/profiler-extension
create mode 100644 aws-lambda-java-profiler/extension/gradle/wrapper/gradle-wrapper.jar
create mode 100644 aws-lambda-java-profiler/extension/gradle/wrapper/gradle-wrapper.properties
create mode 100755 aws-lambda-java-profiler/extension/gradlew
create mode 100644 aws-lambda-java-profiler/extension/gradlew.bat
create mode 100644 aws-lambda-java-profiler/extension/src/main/java/com/amazonaws/services/lambda/extension/ExtensionClient.java
create mode 100644 aws-lambda-java-profiler/extension/src/main/java/com/amazonaws/services/lambda/extension/ExtensionMain.java
create mode 100644 aws-lambda-java-profiler/extension/src/main/java/com/amazonaws/services/lambda/extension/Logger.java
create mode 100644 aws-lambda-java-profiler/extension/src/main/java/com/amazonaws/services/lambda/extension/PreMain.java
create mode 100644 aws-lambda-java-profiler/extension/src/main/java/com/amazonaws/services/lambda/extension/S3Manager.java
create mode 100644 aws-lambda-java-profiler/extension/src/main/java/com/amazonaws/services/lambda/extension/ShutdownHook.java
create mode 100755 aws-lambda-java-profiler/integration_tests/cleanup.sh
create mode 100755 aws-lambda-java-profiler/integration_tests/create_bucket.sh
create mode 100755 aws-lambda-java-profiler/integration_tests/create_function.sh
create mode 100755 aws-lambda-java-profiler/integration_tests/download_from_s3.sh
create mode 100644 aws-lambda-java-profiler/integration_tests/helloworld/build.gradle
create mode 100644 aws-lambda-java-profiler/integration_tests/helloworld/src/main/java/helloworld/Handler.java
create mode 100755 aws-lambda-java-profiler/integration_tests/helloworld/src/main/resources/wrapper.sh
create mode 100755 aws-lambda-java-profiler/integration_tests/invoke_function.sh
create mode 100755 aws-lambda-java-profiler/integration_tests/publish_layer.sh
create mode 100644 aws-lambda-java-profiler/integration_tests/trigger
create mode 100755 aws-lambda-java-profiler/update-function.sh
diff --git a/.github/workflows/aws-lambda-java-profiler.yml b/.github/workflows/aws-lambda-java-profiler.yml
new file mode 100644
index 00000000..dd7a71e0
--- /dev/null
+++ b/.github/workflows/aws-lambda-java-profiler.yml
@@ -0,0 +1,70 @@
+name: Run integration tests for aws-lambda-java-profiler
+
+on:
+ push:
+ branches: ['*']
+ paths:
+ - 'aws-lambda-java-profiler/**'
+ - '.github/workflows/aws-lambda-java-profiler.yml'
+ workflow_dispatch:
+
+jobs:
+
+ publish:
+ runs-on: ubuntu-latest
+
+ permissions:
+ id-token: write
+ contents: read
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Set up JDK
+ uses: actions/setup-java@v4
+ with:
+ java-version: 21
+ distribution: corretto
+
+ - name: Issue AWS credentials
+ uses: aws-actions/configure-aws-credentials@v4
+ with:
+ aws-region: ${{ secrets.AWS_REGION }}
+ role-to-assume: ${{ secrets.AWS_ROLE }}
+ role-session-name: GitHubActionsRunIntegrationTests
+ role-duration-seconds: 900
+
+ - name: Build layer
+ working-directory: ./aws-lambda-java-profiler/extension
+ run: ./build_layer.sh
+
+ - name: Publish layer
+ working-directory: ./aws-lambda-java-profiler
+ run: ./integration_tests/publish_layer.sh
+
+ - name: Create the bucket layer
+ working-directory: ./aws-lambda-java-profiler
+ run: ./integration_tests/create_bucket.sh
+
+ - name: Create Java function
+ working-directory: ./aws-lambda-java-profiler
+ run: ./integration_tests/create_function.sh
+
+ - name: Invoke Java function
+ working-directory: ./aws-lambda-java-profiler
+ run: ./integration_tests/invoke_function.sh
+
+ - name: Download from s3
+ working-directory: ./aws-lambda-java-profiler
+ run: ./integration_tests/download_from_s3.sh
+
+ - name: Upload profiles
+ uses: actions/upload-artifact@v4
+ with:
+ name: profiles
+ path: /tmp/s3-artifacts
+
+ - name: cleanup
+ if: always()
+ working-directory: ./aws-lambda-java-profiler
+ run: ./integration_tests/cleanup.sh
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 371bed6b..4921077d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,8 @@ dependency-reduced-pom.xml
# snapshot process
aws-lambda-java-runtime-interface-client/pom.xml.versionsBackup
+
+# profiler
+aws-lambda-java-profiler/integration_tests/helloworld/build
+aws-lambda-java-profiler/extension/build/
+/scratch/
diff --git a/README.md b/README.md
index c72dcf0c..f16e853c 100644
--- a/README.md
+++ b/README.md
@@ -139,6 +139,18 @@ See the [README](aws-lambda-java-log4j2/README.md) or the [official documentatio
```
+## Lambda Profiler Extension for Java - aws-lambda-java-profiler
+
+
+
+
+
+This project allows you to profile your Java functions invoke by invoke, with high fidelity, and no code changes. It
+uses the [async-profiler](https://github.com/async-profiler/async-profiler) project to produce profiling data and
+automatically uploads the data as flame graphs to S3.
+
+Follow our [Quick Start](aws-lambda-java-profiler) to profile your functions.
+
## Java implementation of the Runtime Interface Client API - aws-lambda-java-runtime-interface-client
[](https://central.sonatype.com/artifact/com.amazonaws/aws-lambda-java-runtime-interface-client)
diff --git a/aws-lambda-java-profiler/.gitignore b/aws-lambda-java-profiler/.gitignore
new file mode 100644
index 00000000..4c3fb86d
--- /dev/null
+++ b/aws-lambda-java-profiler/.gitignore
@@ -0,0 +1,3 @@
+*.zip
+/.idea/
+/target/
diff --git a/aws-lambda-java-profiler/.mvn/wrapper/maven-wrapper.properties b/aws-lambda-java-profiler/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 00000000..48a56c99
--- /dev/null
+++ b/aws-lambda-java-profiler/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+wrapperVersion=3.3.2
+distributionType=only-script
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip
diff --git a/aws-lambda-java-profiler/README.md b/aws-lambda-java-profiler/README.md
new file mode 100644
index 00000000..67482a9b
--- /dev/null
+++ b/aws-lambda-java-profiler/README.md
@@ -0,0 +1,93 @@
+
+
+
+
+AWS Lambda Profiler Extension for Java
+
+The Lambda profiler extension allows you to profile your Java functions invoke by invoke, with high fidelity, and no
+code changes. It uses the [async-profiler](https://github.com/async-profiler/async-profiler) project to produce
+profiling data and automatically uploads the data as flame graphs to S3.
+
+
+
+
+
+### Usage
+
+To use the profiler you need to
+
+1. Build the extension in this repo
+2. Deploy it as a Lambda Layer
+3. Create an S3 bucket for the results, or reuse an existing one
+4. Give your function permission to write to the bucket
+5. Configure the required environment variables.
+
+The following [Quick Start](#quick-start) will give you AWS CLI commands to run to get started. There are also [examples](examples)
+using infrastructure as code for you to refer to.
+
+### Quick Start
+
+- Clone the repo
+
+```bash
+git clone https://github.com/aws/aws-lambda-java-libs
+```
+
+- Build the extension
+
+```bash
+cd aws-lambda-java-profiler/extension
+./build_layer.sh
+```
+
+- Run the `update-function.sh` script which will create a new S3 bucket, Lambda layer and all the configuration required.
+
+```bash
+cd ..
+./update-function.sh YOUR_FUNCTION_NAME
+```
+
+### Configuration
+
+#### Required Environment Variables
+
+| Name | Value |
+|------------------------------|-----------------------------------------------------------------------------------------------|
+| PROFILER_RESULTS_BUCKET_NAME | Your unique bucket name |
+| JAVA_TOOL_OPTIONS | -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -javaagent:/opt/profiler-extension.jar |
+
+#### Optional Environment Variables
+
+| Name | Default Value | Options |
+|-------------------------------|-----------------------------------------------------------|--------------------------------|
+| PROFILER_START_COMMAND | start,event=wall,interval=1us | |
+| PROFILER_STOP_COMMAND | stop,file=%s,include=*AWSLambda.main,include=start_thread | file=%s is required |
+| PROFILER_DEBUG | false | true - to enable debug logging |
+| PROFILER_COMMUNICATION_PORT | 1234 | a valid port number |
+
+### How does it work?
+
+In `/src` is the code for a Java agent. It's entry point `AgentEntry.premain()` is executed as the runtime starts up.
+The environment variable `JAVA_TOOL_OPTIONS` is used to specify which .jar file the agent is in. The `MANIFEST.MF` file
+is used to specify the pre-main class.
+
+When the agent is constructed, it starts the profiler and registers itself as a Lambda extension for `INVOKE` request.
+
+A new thread is created to handle calling `/next` and uploading the results of the profiler to S3. The bucket to upload
+the result to is configurable using an environment variable.
+
+### Project Structure
+
+- `Agent.java`: Main class that coordinates profiling and S3 uploads.
+- `AgentEntry.java`: Entry point for the Java agent.
+- `ExtensionClient.java`: Handles communication with the Lambda Extensions API.
+
+### Troubleshooting
+
+- Ensure the Lambda function has the necessary permissions to write to the S3 bucket.
+- Verify that the environment variables are correctly set in your Lambda function configuration.
+- Check CloudWatch logs for any error messages from the extension.
+
+### Contributing
+
+Contributions to improve the extension are welcome. Please submit pull requests with your proposed changes.
diff --git a/aws-lambda-java-profiler/docs/Arch_AWS-Lambda_64.svg b/aws-lambda-java-profiler/docs/Arch_AWS-Lambda_64.svg
new file mode 100644
index 00000000..496ef0e7
--- /dev/null
+++ b/aws-lambda-java-profiler/docs/Arch_AWS-Lambda_64.svg
@@ -0,0 +1,18 @@
+
+
+
+ Icon-Architecture/64/Arch_AWS-Lambda_64
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aws-lambda-java-profiler/docs/example-cold-start-flame-graph-small.png b/aws-lambda-java-profiler/docs/example-cold-start-flame-graph-small.png
new file mode 100644
index 0000000000000000000000000000000000000000..81ae8cba3923ad19695e673fb5096108c133580c
GIT binary patch
literal 543704
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