- Description
- Tech Stack
- Key Features
- Getting Started
- Upcoming Features
- Contributing
- Meet The Team
- Where To Find Us
WatchTower is a robust visualization tool for user's Amazon DynamoDB capacity. Developers can often have difficulty analyzing and interpreting DynamoDB provisioning metrics due to the complexities of existing monitoring tools. WatchTower centralizes this data and allows users to generate metric data from DynamoDB usage and to visualize this data using our graphical UI. You can even ask for more input utilizing Amazon's Bedrock AI from within our application! Additionally, you can store and access this historical data and use this information to find usage patterns to form strategies on how to optimize and make your DynamoDB usage more efficient.
Seamlessly integrate WatchTower with your AWS account by providing an Access Token and Secret Access Token.
WatchTower provides a clean, easy-to-use dashboard to observe your AWS DynamoDB provisioning levels and usage. You can easily select different tables from your DynamoDB account to monitor, and then specify the date range you would like metrics for.
WatchTower integrates with Amazon’s Bedrock to provide you meaningful insights and recommendations on the provisioning levels and usage for your DynamoDB account.
We offer the ability to store past metrics that you’ve observed so that you can easily regenerate metric graphs to compare trends in your DynamoDB provisioning and usage data over time. (**Note: If you opt-in to this feature, we will dynamically create a new table in your DynamoDB account to hold past metrics).
While our app is hosted locally for your peace of mind, WatchTower has multi-user functionality and full authorization and authentication to protect each user’s data if they are on a shared computer. Create an account or easily sign in with GitHub.
Choose your preferred theme for interacting with the app.
Your AWS credentials are stored securely in your local environment and never shared anywhere outside of your local machine - we prioritize your security!
Getting started with WatchTower is simple!
- Fork GitHub repo.
- Clone the repo into VS Code.
- Create a
.env
file in the server folder using below template# AWS Credentials for Connecting AWS AWS_ACCESS_KEY_ID="your_aws_access_key_id" AWS_SECRET_ACCESS_KEY="your_aws_secret_access_key" REGION="your_aws_region"
- Navigate to your cloned repo and open a terminal. Run the following commands:
npm i npm start
- If localhost:3000 does not automatically open in your browser, open this link: http://localhost:3000/
- Sign Up: Create an account on our website, or login with GitHub.
- Connect Your DynamoDB: Use our easy-to-follow guide to connect your DynamoDB tables to WatchTower.
- Warning: If you use the AWS Account Info to update your AWS Key, you have to restart the application!
- Generate metric data: Input necessary information, such as the table you wish to analyze and the time period you wish to see database metrics.
- As simple as that, your metric data and visual data is generated!
- Generate AI insight: Users can also generate insights from Amazon's Bedrock AI simply by pressing a button.
- Save table metrics/graphs: Users can save their generated analysis and metric data to their DynamoDB database by clicking on the “save analysis” button.
- Analyze Historical Data: Dive into historical metrics to identify trends and optimize performance by navigating over to the reports page.
- AWS Bedrock has a lot of AI Model: https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html Here is the list for the Model name and its ID. The model that we are using is ‘Mistral 7B Instruct’.
- AWS Bedrock is not free, they have distinct price for model. Here is the link for pricing: https://aws.amazon.com/bedrock/pricing/?refid=ft_card
- Not all model has responsesteram, if the model you want use dont have responsestream, you can use invokemodelcommand method! https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bedrock-runtime/command/InvokeModelCommand/
- In order to grant access for specific AI model, you have to https://aws.amazon.com/bedrock/ and login, on the left side bar, choose Foundation models -> Base models and click whatever model you want. Inside the model Overview, there is a button ‘Request model access’. Then you will be all set!
-
Customizable alerts and notifications ⏳
-
Analyze auto-scaling capacity ⏳
-
Analyze on-demand capacity ⏳
-
Customizable dashboard ⏳
-
Expanding report data to aggregate multiple instances of saved reports 🙏🏻
-
Integrate capacity pricing options to Bedrock AI recommendations to provide more meaningful insights 🙏🏻
⏳ = In Progress; 🙏🏻 = Looking for contributors!
If you would like to contribute to this project, please follow the below steps:
- Fork the GitHub repo.
- Create your feature branch:
git checkout -b feature-YourFeature
- Commit your changes:
git commit -m "Add feature"
- Push to your feature branch: (git push origin feature-YourFeature)
- Open a pull request. Please follow the below template for your pull request.
- Pull Request Title
- Description of Feature Branch
- Why the change was needed
- How the change was implemented