Skip to main content

Multi-cloud FinOps Python library for cost analysis

Project description

FinOps Multi-Cloud Python Library

Overview

This Python library is designed to empower FinOps engineers to manage and optimize cloud spending across AWS, Azure, and Google Cloud. It provides real-time cost analysis by querying each cloud's billing APIs, normalizes the data into a common format, and lays the groundwork for future automation features such as anomaly detection, AI/ML-powered forecasting, and policy enforcement.

Key FinOps Principles

  • Cost Visibility & Timeliness: Immediate access to up-to-date cost data.
  • Accountability: Empowering teams to monitor and own their cloud spending.
  • Collaboration: Encouraging cross-functional teamwork between finance, engineering, and operations.
  • Centralized Governance: Consolidating cost management and enforcing policies across clouds.
  • Optimization & Automation: Continuously identifying and acting on cost-saving opportunities.

High-Level Goals

  • Provide a unified multi-cloud view of costs via real-time API queries.
  • Offer modular design to support future enhancements such as automation, anomaly detection, and forecasting.
  • Enable FinOps engineers to work via a command-line interface (CLI) with a moderate learning curve.

FinOps CLI

A command-line tool for multi-cloud cost analysis and optimization.

Features

  • Cost Reporting: Generate detailed cost reports across AWS, Azure, and GCP.
  • Anomaly Detection: Identify unusual spending patterns.
  • Cost Forecasting: Predict future cloud costs.
  • Optimization Recommendations: Get suggestions for reducing cloud spending.

Installation

  1. Clone the repository:

    git clone https://github.com/ZacheryKuykendall/finops-cli.git
    cd finops-cli
    
  2. Create a virtual environment:

    python -m venv venv
    
  3. Activate the virtual environment:

    • On Windows:
      venv\Scripts\activate
      
    • On macOS and Linux:
      source venv/bin/activate
      
  4. Install the dependencies:

    pip install -e .
    

Usage

finops-cli --help

Cost Reporting

Generate cost reports for a specified date range:

finops-cli report --start-date YYYY-MM-DD --end-date YYYY-MM-DD --format [markdown|csv|json] --test
  • --start-date: Start date for the report (YYYY-MM-DD).
  • --end-date: End date for the report (YYYY-MM-DD).
  • --format: Output format (markdown, csv, or json). Default is markdown.
  • --test: Use test data instead of live cloud data.
  • --export: Export the report to a file.

Anomaly Detection

Detect cost anomalies within a specified date range:

finops-cli anomaly-check --start-date YYYY-MM-DD --end-date YYYY-MM-DD
  • --start-date: Start date for anomaly detection (YYYY-MM-DD).
  • --end-date: End date for anomaly detection (YYYY-MM-DD).

Cost Forecasting

Produce cost forecasts based on historical data:

finops-cli forecast --start-date YYYY-MM-DD --end-date YYYY-MM-DD --days [number]
  • --start-date: Start date for forecasting (YYYY-MM-DD).
  • --end-date: End date for forecasting (YYYY-MM-DD).
  • --days: Number of days to forecast. Default is 30.

Optimization Recommendations

Analyze spending patterns and suggest cost optimization opportunities:

finops-cli optimize --start-date YYYY-MM-DD --end-date YYYY-MM-DD --test
  • --start-date: Start date for analysis (YYYY-MM-DD).
  • --end-date: End date for analysis (YYYY-MM-DD).
  • --test: Use test data instead of live cloud data.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

This project is licensed under the MIT License.

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

finops_lib-1.0.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finops_lib-1.0.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: finops_lib-1.0.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for finops_lib-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0f8849a18b5a2c81c4bc239990dd42014cbc7db7484cee4a8c53a2a5ebb48d83
MD5 d4b9ee44a2731b5fb10d0c5fa92177c8
BLAKE2b-256 bd7a16222b3020de04e8074ea6c467d1dcfed36040516d0181a5e61fd5e94e6e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: finops_lib-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for finops_lib-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 49bf0f288f629c2da5fb4349a5be63925b1b18e3ee61432e1a48b5d02b56a103
MD5 fedfd84e3688c61752a831c2e843ba13
BLAKE2b-256 d04f1f31644edff65000780f248f77bfbba72cb737b516ce2964605edae51e06

See more details on using hashes here.

Supported by

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