Skip to content

oslabs-beta/nimbus

Repository files navigation



AWS Lambda Performance Tool

About Nimbus

Serverless architecture has become very popular in the field of software engineering, and Amazon's launch of AWS Lambda in 2014 has been a big part of its growth. AWS Lambda is a serverless computing service that lets users run code in response to events like changes to a DynamoDB table, an API call to API Gateway, or the addition of a file to an S3 bucket. As a function-as-a-service (FaaS) offering, AWS Lambda allows developers to focus on the business logic of their applications by abstracting away the underlying server infrastructure, such as maintenance, capacity planning, and scaling.

AWS Lambda is a well-known service for serverless computing that lets users run code in response to event triggers. It is increasingly difficult to keep track of how well Lambda functions are working and how they are being used, especially as applications grow in size. This is where Nimbus comes in. Nimbus is a cross-platform desktop application that aims to solve this problem by allowing developers to keep an eye on the metrics of Lambda functions. With Nimbus, developers can see information about how their functions are being used and performance metrics in real time. This includes the number of function invocations, execution durations, CPU usage, and any errors or throttles that occurred. Nimbus also provides an estimate of how much function calls will cost, so developers can keep track of how much is being spent. In short, Nimbus is a valuable tool that simplifies the process of monitoring AWS Lambda functions.

Nimbus is a tool for monitoring, but it also has a number of features that make your AWS development experience better. For example, Nimbus lets developers observe and analyze the logstream that each Lambda function invocation creates. Nimbus' log feature allows developers to filter through different log streams and sort through timelines. Additionally, Nimbus provides the ability to monitor resources within API Gateway. It displays API metrics including the number of calls, 4XX errors, 5XX errors, and latency. Users can view the relationships between specific API resources and Lambda functions. Having a discernible chain of responsibility in software engineering helps to ensure that applications are developed in a consistent and organized manner.

Installation

Download the desktop application HERE

User Guide

  • Visit the landing page and download the app for your operating system. Install it on your computer to get started.

  • Create an account by entering your information and linking it to your AWS account following the instructions provided on the Register page.

login gif

  • If you already have an account, simply log in.

login gif

On the home page, you'll find a lot of information about the health of your AWS application, especially as it relates to lambda functions. This includes important metrics like the number of calls, errors, throttles, costs, and runtimes.

  • Head over to the Functions tab to see metrics broken down by individual functions, including invocations, errors, throttles, and durations.

functions gif

  • The Logs tab is where you can find all your lambda function logs and filter them by time period, reports only, errors only, or any keyword.

logs gif

  • The APIs tab lets you view common API metrics, endpoints, and the lambda functions they're connected to.

apis gif

  • In the Settings tab, you can update your personal information (including AWS Cloudformation Stack ARN and region) or change your login details.

settings gif

Technologies Used

Electron
React

ChartJS Chart JS

DaisyUI
Tailwind
Typescript

Express
Node.js
MongoDB
Docker
Jest
Webpack
AWS

How To Contribute

Nimbus is an open-source product supported by the tech accelerator OS Labs. We welcome and appreciate contributions from the community. If you are interested in contributing to the development of our AWS serverless component monitoring and visualization tool, here are a few ways to get started:

  1. Fork the repository: Go to the main repository on GitHub and click the “Fork” button to create a copy of the code under your own account. This will allow you to make changes to the code without affecting the original repository.
  2. Set up your development environment:
  • To install the dependencies configured in the package.json file, run the following command:
npm install
  • To set up a MongoDB database, you will need to obtain a connection string. Once you have the connection string, create an ENV file in the root directory and input the connection string as follows:
MONGO_URI='your_connection_string'
  • Next, input your desired port number in the ENV file:
PORT=your_port_number
  • The Nimbus application requires the use of JWT tokens for implementation, so you will need to create tokens for this purpose. You can input these tokens in the ENV file as follows:
ACCESS_TOKEN_SECRET=your_access_token_secret
REFRESH_TOKEN_SECRET=your_refresh_token_secret
  • Finally, you will need to obtain the access key id, secret key, and region from your AWS IAM account. Input these values in the ENV file as follows:
AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_KEY=your_secret_key
AWS_REGION=your_region
  1. Choose an issue to work on: Browse the open issues in the repository and pick one that interests you. Alternatively, you can also propose your own changes by opening a new issue and describing the feature or improvement you would like to see.
  2. Create a branch: Once you have chosen an issue to work on, create a new branch in your fork of the repository. Name the branch something descriptive, such as “add-feature-x” or “fix-bug-y”. This will allow you to work on your changes without affecting the main branch of the repository.
  3. Make your changes: Make the necessary changes to the code in your branch. Be sure to follow the repository’s style guidelines and best practices, and make sure to test your changes thoroughly before submitting them.
  4. Commit and push your changes: Once you are satisfied with your changes, commit them to your branch and push them to your fork of the repository.
  5. Open a pull request: Go to the main repository on GitHub and click the “Compare & pull request” button. Describe the changes you have made and why they are necessary. Then, submit the pull request for review.

A member of the repository’s maintainer team will review your pull request and either merge it into the codebase or provide feedback for changes that need to be made. Thank you for considering contributing to our project!

License

Distributed under the MIT License

Meet The Team