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.0.tar.gz (22.3 kB view details)

Uploaded Source

Built Distribution

skrooge-1.0.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: skrooge-1.0.0.tar.gz
  • Upload date:
  • Size: 22.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.0.tar.gz
Algorithm Hash digest
SHA256 e7281133b72be358fc0f0e12b7ef6bf1ffd40c745b83044ec44303342346f5d3
MD5 5a5617f172b4efe1b3987cd16969c074
BLAKE2b-256 912d0ada6865325f50d90fc9fe126ea786a0fe06d979a33607024c95a1354348

See more details on using hashes here.

File details

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

File metadata

  • Download URL: skrooge-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 20.5 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 15c1adfcedeb19a0b313277283a631d3b3c5fdf88a4ff000567fe4d7e4badaa8
MD5 9e1372293fb7feab88bf3fe7268ba024
BLAKE2b-256 2fb34761d981df004a7461977fa90332540a768853d901eaba3ada3e2007e8a2

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