GithubHelp home page GithubHelp logo

kaytu-io / kaytu Goto Github PK

View Code? Open in Web Editor NEW
603.0 4.0 10.0 4.45 MB

Kaytu's AI platform boosts cloud efficiency by analyzing historical usage and delivering intelligent recommendations—such as optimizing instance sizes—that maintain reliability. Pay for what you need, without compromising your apps.

Home Page: https://kaytu.io

License: Other

Makefile 0.22% Go 94.29% Shell 3.15% PowerShell 1.72% Ruby 0.62%
rightsizing workload-optimization cloud-spend cloud-optimization sre kubernetes

kaytu's Introduction

Kaytu Logo

Kaytu's AI platform boosts the efficiency of your cloud-hosted workload and Kubernetes Clusters by analyzing historical usage and delivering intelligent recommendations—such as optimizing instance sizes—that maintain reliability.

Kaytu Gif

Overview

  • Ease of use: One-line command. Use without modifying workloads or making configuration changes.
  • Optimize: Optimize AWS workloads (EC2 Instances, EBS Storage, RDS, Kubernetes/EKS), Azure Kubernetes, and Google Kubernetes (GKE)
  • Base on actual Usage: Analyzes based on actual usage from Monitoring (CloudWatch & Prometheus).
  • Customize: Optimize for region, CPU, memory, network performance, storage, licenses, and more to match your specific requirements.
  • Secure - no credentials to share; extracts required metrics from the client side
  • Open philosophy Use without fear of lock-in. The CLI is open-sourced, and the Server side will be open-sourced soon.
  • Coming Soon: GPU Optimization, Amazon EFS

To optimize Kubernetes Clusters click here for a walk through

Quick Start - Optimize AWS EC2, RBS, and RDS Workload

1. Install Kaytu CLI

MacOS

brew tap kaytu-io/cli-tap && brew install kaytu

Linux

curl -fsSL https://raw.githubusercontent.com/kaytu-io/kaytu/main/scripts/install.sh | sh

Windows (and all Binaries) Download Windows (Linux, and MacOS) binary from releases

2. Login to AWS CLI

Kaytu works with your existing AWS CLI profile (read-only access required) to gather metrics.

To confirm your AWS CLI login is working correctly:

aws sts get-caller-identity

Click here to see how to log in to AWS CLI.

We respect your privacy. Our open-source code guarantees that we never collect sensitive information such as AWS resource identifiers, credentials, IPs, tags, etc.

3. Run Kaytu CLI

Login to your free account:

kaytu login

To see how you can optimize EC2 Instances, run this command:

kaytu optimize ec2-instance

For RDS:

kaytu optimize rds-instance

kaytu's People

Contributors

acx1729 avatar adorigi avatar artaasadi avatar mahanmmi avatar salehkhazaei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

kaytu's Issues

Recommended Costs are higher

Describe the bug
For some workloads, recommended costs are higher

To Reproduce
Unable to reproduce

Expected behavior
Since the tool doesn't support credits for burstable instances, costs should be the same or more

Azure support?

Great for AWS,
what about Azure, any plans? roadmap?

Thx.

Linux packages

Is your feature request related to a problem? Please describe.
Have DNF/DNF/RPM, APT, and packaging for Linux to support installation on Redhat, Ubuntu/Debian systems

Additional context
This was proposed by Adnan

Enhance Release Process

Enhance the release process to incorporate the following:

  1. yum v4 / dnf
  2. Deb and Snap store
  3. Signing of binaries for Windows Binaries
  4. Gype testing of release binaries
  5. Binary testing
  6. VirusTotal

Latest tag should point to Releases

Describe the bug
The Latest tagged release should not be a pre-release.

To Reproduce
Steps to reproduce the behavior:

  1. Fork the repository
  2. Update env variables in main.yaml and pre-release.yaml.
  3. Run the Release workflow from the Actions tab on Github.
  4. Run the Pre-Release workflow from the Actions tab on Github.

Expected behavior
The release published from Release workflow should be tagged Latest. The release published from Pre-Release workflow should be tagged Pre-release.

Stops with error during initial scanning of instances.

Describe the bug

failures: - Evaluating usage data for i-001de016c6050985d failed due to [requestAbout] : invalid character 'e' looking for beginning of value

To Reproduce

Steps to reproduce the behavior:

  1. Connected to my AWS account ..
  2. Run "kaytu"
  3. See error

Expected behavior

Cost savings report I presume :-)

Notes
Several runs, stops with same failure at the same instance. I've investigated the instance, it's one of our databases thats been running for about a year. Nothing to see 🤷

Screen Size is too small

Describe the bug
Each time kaytu is started, this error: Application cannot be rendered in this screen size, please increase height of your terminal

Desktop (please complete the following information):

  • OS: MacOS Sonoma 14.4.1 (23E224)

Additional context

➜ echo $LINES
67

~
➜ echo $COLUMNS
206

Homebrew installation failing

Describe the bug
The homebrew installation fails with the following error message:

Error: kaytu-io/cli-tap/kaytu: /opt/homebrew/Library/Taps/kaytu-io/homebrew-cli-tap/kaytu.rb:7: syntax error, unexpected local variable or method, expecting `end' or dummy end
...page "https://github.com/"kaytu-io"/"kaytu""
...      

To Reproduce
Steps to reproduce the behavior:

  1. brew tap kaytu-io/cli-tap
  2. brew install kaytu

Expected behavior
Kaytu should install successfully

Additional context
The error depicts that the homebrew formula at kaytu-io/cli-tap tap is corrupted.

A checksum of windows in kaytu_0.6.1_checksums.txt are wrong

https://github.com/kaytu-io/kaytu/releases/tag/v0.6.1

gh release download -R kaytu-io/kaytu v0.6.1
$ sha256sum kaytu_0.6.1_windows_amd64.zip
dba1894344019a435447b91162f259e21ea31f68a0496f6cc143a0339ad894eb  kaytu_0.6.1_windows_amd64.zip

$ cat kaytu_0.6.1_windows_amd64_checksum.txt
dba1894344019a435447b91162f259e21ea31f68a0496f6cc143a0339ad894eb  kaytu_0.6.1_windows_amd64.zip

$ grep kaytu_0.6.1_windows_amd64.zip kaytu_0.6.1_checksums.txt
a55b671d16d21ee1be97949109f4928ce3ed43f01d2fb39c251f189968a12cc0  kaytu_0.6.1_windows_amd64.zip
$ sha256sum --ignore-missing -c kaytu_0.6.1_checksums.txt
kaytu_0.6.1_darwin_amd64.tar.gz: OK
kaytu_0.6.1_darwin_arm64.tar.gz: OK
kaytu_0.6.1_linux_amd64.tar.gz: OK
kaytu_0.6.1_linux_arm64.tar.gz: OK
kaytu_0.6.1_windows_amd64.zip: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
$ sha256sum --ignore-missing -c kaytu_0.6.1_windows_amd64_checksum.txt 
kaytu_0.6.1_windows_amd64.zip: OK

The checksum in kaytu_0.6.1_windows_amd64_checksum.txt is correct but the checksum in kaytu_0.6.1_checksums.txt is wrong.

Fixing Github action for nightly build and release

Right now every merge on dev results in a pre-release build.
Also all the merged into main result in release build.

Since we're using go-releaser we have to remove these two lines for merging from dev to main.
prerelease: "true"
make_latest: false

Randomize plugin manager listen port

Plugin manager always starts on 30422 which prevents running two kaytu cli instance at the same time.
the port must be picked randomly and plugins must connect to the random-picked port.

CSV Export

CSV Export will allow to store data in a convenient for analysis/further automation way.
Coulmns "old size" and "new size" should be present there I think.

Add support for ECS,EKS and RDS

Is your feature request related to a problem? Please describe.

These days most clients I work with don't run any EC2 instances anymore, everything is containerised.

Current containerised services and SaaS databases don't show up in Kaytu.

Describe the solution you'd like

It would be great if this tool could add support for ECS,EKS and RDS.

Describe alternatives you've considered

N/A

Additional context

N/A

Issue on killing plugin update process

If you kill the plugin update process, the plugin file will remain busy. So it can't be updated anymore unless you delete the file and install the plugin again.

Retry for failed items

Failed items stuck on loading
they should be specified as failed and pressing enter should retry them.

Support for AWS RDS Instances

Add support for RDS Instances and Clusters with engine types PostgreSQL, MariaDB, MySQL with CloudWatch Observability Metrics/Statistics

Ability to test binaries after release

Is your feature request related to a problem? Please describe.
We need a way to test if the recently updated release binaries are working correctly.

Describe the solution you'd like
The best way, for now, would be to add another job in the Release workflow, where Kaytu will be installed and run. We can use brew to test the installation and compare the output of kaytu version to the current latest version(which would already be in the workflow).

Plugin and kaytu update feature.

When running kaytu optimize [resource type] check if plugin has newer version and ask user whether user wants to update it or not.
also checks should be run on kaytu version as well.

on kaytu version, update check for kaytu itself must be run.

checks must be run weekly. just to prevent bothering user if user chooses not to update.

Google Cloud support

Is your feature request related to a problem? Please describe.
We use Google Cloud (gcp/gke/cloud sql/gcs). Would be great to get kaytu to support Google Cloud too.

Describe the solution you'd like
Support Google Cloud in the same capacity as AWS

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Filter & Sort in overview table

Overview page table needs filter and sort to be able to find specific item and sort them based on criteria such as savings, cost, etc.
It should be implemented for customized overview pages and work properly with plugin system.

Plugin download process must happen on a temporary file

Describe the bug
When downloading a plugin (e.g. updating plugin version) if for any reason plugin download breaks, the plugin binary will be corrupted.
Although config file wont take the effect until after download is completed, we need to make sure that we dont break the plugin binary.
It's better to download the new file into a temporary file and then move it on the plugin binary once download is finished.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.