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
-
Clone the repository:
git clone https://github.com/ZacheryKuykendall/finops-cli.git cd finops-cli
-
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On macOS and Linux:
source venv/bin/activate
- On Windows:
-
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f8849a18b5a2c81c4bc239990dd42014cbc7db7484cee4a8c53a2a5ebb48d83
|
|
| MD5 |
d4b9ee44a2731b5fb10d0c5fa92177c8
|
|
| BLAKE2b-256 |
bd7a16222b3020de04e8074ea6c467d1dcfed36040516d0181a5e61fd5e94e6e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49bf0f288f629c2da5fb4349a5be63925b1b18e3ee61432e1a48b5d02b56a103
|
|
| MD5 |
fedfd84e3688c61752a831c2e843ba13
|
|
| BLAKE2b-256 |
d04f1f31644edff65000780f248f77bfbba72cb737b516ce2964605edae51e06
|