Table of Contents
Serverless Applications are becoming increasingly popular as they relieve organizations and programmers from worrying about provisioning and maintaining the servers to just focusing on developing and deploying the code. It is also cost-effiecient in many scenarios as servers are running only when an event (for e.g. an API request) is triggered.
AWS is a leading provider in the serverless applications space with AWS Lambda functions being its central component of the architecture. However, with AWS’ numerous services and extensive docs, it becomes challenging to navigate and can be intimidating to monitor and track the health of serverless applications.
Helios is a free, open-source monitoring tool that users can connect to their AWS account and easily track key metrics and logs. Here is a medium article describing the philosophy behind Helios. The application can be downloaded here. Helios is preconfigured to track the following three main components of AWS serverless applications.
The following instructions are split into two sections for:
This section describes the instructions for AWS end users who would like to download the application and connect their AWS account. For developers who would like to contribute to the open-source project, follow these instructions.
- Download the Helios application here
- Existing users enter email and password to login
- For new users click Signup to create a new user account
- Follow the instructions and complete the steps to connect an AWS account
- Copy and paste the unique AWS ARN outputted from the prior step
- Select the AWS Region where the serverless applications are deployed
- You're all set to start monitoring!
The Helios application is preconfigured to track three main components of AWS serverless applications. Once the user is logged in these components can be visualized through the side navigation menu.
Displays the aggregated metrics for their Lambda functions including: Throttles, Invocations, and Errors. The metric totals by Lambda function are also shown in tabular format. Users have an option to further visualize metrics for specific functions. Users can adjust the time period shown.
Displays the logs and errors by AWS Lambda function. Users just have to click the Lambda function logs they wish to see and Helios will fetch and organize them. Any errors that might be occurring are also separated into their own tab for quick identification. Users can adjust the time period shown.
On the API Gateway page, users can identify all the resources/paths and methods that exist on AWS' API Gateway service as well as their endpoints (if applicable). This will help bring clarity to understanding which route is driving to which Lambda function. If an API is clicked, users will also be able to visualize the following metrics for that API in a given time period.
- API Latency (the time between when the API receives a request from a client and when it returns a response to the client)
- Count (the total number of requests to the API)
- 5XX Errors (the number of server-side errors captured)
- 4XX Errors (the number of client-side errors captured)
Users can update the profile and their default AWS region on the User Profile page. Here, they can also update the AWS account they have linked (by going through the StackFormation process again with a different AWS account and then providing Helios with the updated ARN). They could also update their email and/or password, if they so wish.
It's that simple and easy to use!!
This section describes the instructions for developers who would like to download and contribute to the open-source Helios project. For AWS end users who would like to download the application and connect their AWS account, follow these instructions instead.
The Helios application was built using the following key frameworks / libraries for the front-end and back-end:
The pre-requisite software for setting up this application are:
-
Clone the repo
git clone https://github.com/oslabs-beta/Helios.git cd Helios
-
Install the package dependencies
npm install
-
Update the
.env
file in the project root directory with the necessary credentials -
The application can be run in development mode by running the following command and going to http://localhost:8080/ on your browser
npm run dev
-
Additionally, you can build and run the application (in Electron) with the following commands. This should start up the electron application
npm run build npm start
- Jackie Douglass - Github | Linkedin
- Prasad Pulaguntla -Github | Linkedin
- Thein Gi Deva - Github | Linkedin
Project Links: Website | Github | Linkedin
Distributed under the MIT License.