⭐️ Star us on GitHub! ⭐️
Visit our website at serenelambda.com.
Serene is building an exciting developer tool to help monitor AWS lambda resources and prevent cold start latency delays.
If you are looking to contribute to Serene, please visit READMEDEV.md to learn how to get started! Feel free to check out our 'Potential Iteration Ideas' near the bottom of the page for some ideas on what can still be done.
- Navigate to serenelambda.com and select 'Sign Up'
- Create a username and password and the select 'Connect Your AWS Account'
- This will open a window in AWS prompting you to create a pre-made CloudFormation stack titled 'SereneStack'
- Click to create the stack and wait a moment for AWS to build it
- Once created, select the 'Resources' tab on your SereneStack and you should see a link to something named SereneStack-SereneRole-[uniqueNumsAndCharacters]. This is the IAM Role the Stack has created for you
- Click into that Role, copy the ARN for it, and paste that into the Serene signup page
- All that's left is selecting the corresponding region to your Lambda functions and creating your account
- You will be directed to the Serene homepage and you're ready to use Serene!
- Enjoy ;)
- Fork and clone this repository on GitHub
- From there, you will need to run a few commands to install the proper dependencies
- Open a terminal and type
cd client
, thennpm install
, and finallynpm run build
- This will create a
dist
folder in theclient
directory - Move the
dist
folder to theserver
folder and typecd ..
, thencd server
to enter the server directory - Next, you will need to run
npm install
- Finally, you can run
npm start
to start the server (which is serving the bundled frontend) - In your browser, navigate to http://localhost:3000 and you will be able to use Serene just like you would on the website!
It is extremly important for AWS Lambda developers to monitor the health of their Lambda functions. However, AWS Cloudwatch can be tedious and cumbersome for developers to navigate. Serene allows developers to view their AWS Lambda metrics with ease. Simply select the function you want to view from the sidebar and navigate to the 'Metrics' tab. The user is then able to sort the data based on start date, period, and data in ascending or descending order.
CloudWatch Logs is another tool for analyzing Lambda functions (though developers can view logs on many other AWS entities as well). Serene removes any over complication in this process as well. Simply select a Lambda function to view and navigate to the 'View Logs' tab. Serene will then display log streams associated with that function. By clicking into one of the streams, a display of all the events in that stream will render. These events will provide insight into the Lambda function's performance and can assist in troubleshooting.
Often times, developers will edit the code on their Lambda functions, creating different versions. They will also assign aliases (which point at Lambda function versions) with the option of pointing it at multiple versions and weighing the traffic to them differently (ex. v1: 70%, v2: 30%). This entire process can be hard to follow at times, but not with Serene. Serene includes a display of all the versions of a given Lambda function as well as any aliases pointing to those versions, with the proper weight included. Finally, the user is able to click a link to download their alias' code and view their Lambda function without having to deal with the cumbersome AWS console.
The final problem Serene tackles is that of cold start latency. When they go unused for enough time, Lambda functions will go 'cold' and take longer to begin running again as desired. With Serene, a user is able to schedule invocations for their Lambda functions to help prevent this latency and optimize their performance.
-
Add functionality to kill warming functionality early if the user wants
-
Improved modularity in cloudWatchMetricsController.ts
-
Improved TypeScript on backend -- there are 3 'any' types left in the backend (in order of file/method/variable):
a. versionHistoryController.ts:
- viewVersionList: versions
b. cloudWatchLogsController.ts:
- viewStreamInfo: eventList
c. cloudWatchMetricsController.ts:
- getMetrics: metricObj
-
Create a desktop app
-
Incorperate Oauth
-
Backend testing reads 91% but it says 4/5 testing suites fail -- fixing this would be great and would bump the testing coverage even higher
a. Also fixing the testing so that it will work with TypeScript (we tested before converting JS to TS)
-
Persisting state on the frontend is sometimes buggy (potential solution could be converting frontend to Redux)
-
Price estimation calculator/graphics
-
Be able to display code for each version of the functions a. We were only able to grab a download link to the code form AWS that could open in notepad or some other text editor but we could not display the actual code from there
-
Compatability with mobile devices
Whether you have questions about contributing, using Serene, or just want to chat, feel free to connect with us on LinkedIn and GitHub!
Arianna Nguyen |
Kyle Nguyen |
Kenny Kim |
Wade Chadwick |