Skip to main content

A quick and dirty kubernetes cost estimator

Project description

skrooge

PyPI Changelog Tests License

A quick and dirty kubernetes cost estimator

OIG 0uCanRKKeLq7XwJysZQ3 Ebenezer scrooge standing at the helm of a ship, pencil sketch

Idea

I've been manually calculating how much scaling kubernetes deployments up or down will cost (or save!). It's a bit of grunt work every time pulling together our instance types, figuring out if the deployment is cpu-bound or memory-bound, and working out the cost. Instead we could have a CLI tool (or potentially automated during CI down the road) that could calculate these numbers for us.

Previous example (in english):

It would be nice to have a CLI tool which could do these calculations for us (and integrate with GCP pricing / instance APIs to get instance shapes and costs automatically)

Pod size: 2 cpu, 3GB RAM
Previous deployment: 32 cpu, 48GB RAM
New deployment: 64 cpu, 96GB RAM
Running on c2-standard-30 which have 30 cpu, 120GiB RAM, and cost $914/month
Up to 2 new instances to support +32 CPU, cost $1828 / month ($21,936 / year)

How a CLI tool could work:

$ kubecost --cpu 32 --mem 48 --instance c2-standard-30
c2-standard-30: 30 cpu, 120GiB RAM, $914/month
Limiting factor: CPU (ceil(32/30) = 2)
Cost: $1828 / month ($21,936 / year)

Installation

Install this tool using pip:

pip install skrooge

Usage

For help, run:

skrooge --help

You can also use:

python -m skrooge --help

Development

To contribute to this tool, first checkout the code. Then create a new virtual environment:

cd skrooge
python -m venv venv
source venv/bin/activate

Now install the dependencies, test dependencies, and GCP cost scraping dependencies:

pip install -e '.[lint,scrape,test]'

To run the tests:

pytest

To update the instances.json file:

python3 skrooge/scraper.py > skrooge/instances.json

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skrooge-1.0.2.tar.gz (171.3 kB view details)

Uploaded Source

Built Distribution

skrooge-1.0.2-py3-none-any.whl (175.9 kB view details)

Uploaded Python 3

File details

Details for the file skrooge-1.0.2.tar.gz.

File metadata

  • Download URL: skrooge-1.0.2.tar.gz
  • Upload date:
  • Size: 171.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

File hashes

Hashes for skrooge-1.0.2.tar.gz
Algorithm Hash digest
SHA256 d7461d04c5a6f29621d05a3f9c67bd401ab21ae1b6ad65d0cec60101fbc01052
MD5 29744387e9045fd34bbbfefb67647df8
BLAKE2b-256 4c5596ab08dd445c8aed95362670de6bec0ddae7d33b9f5ad6e40feac1f14600

See more details on using hashes here.

File details

Details for the file skrooge-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: skrooge-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 175.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

File hashes

Hashes for skrooge-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ef5d7ac45a07779ea2c14c41661d08d3d4b27bdb00252f188190d0d9781a8d23
MD5 61940e6e8418545bb9bca5af7670e8cc
BLAKE2b-256 d08775ca95a370d80096e30a327f255899a9fdf18780da245a21af41ef7f9094

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page