Skip to main content

A Python CLI tool for exporting AWS cost reports using the eraXplor.

Project description

Welcome to eraXplor

Cost Export Tool for automated cost reporting and analysis.

eraXplor is an automated cost reporting tool designed for assest DevOps and FinOps teams fetching and sorting AWS and Azure Cost Explorer. it extracts detailed cost data by calling nativly cloud provider APIs directly and Transform result into CSV file. eraXplor gives you the ability to sort the cost with wide range of options:

  • For AWS you able to sort cost by Account, Service, Usage Type or even By Purchase Type; as well as format and separate the result by Monthly or Daily.
  • For Azure you able to sort cost by Subscription, as well as format and separate the result by Monthly or Daily.

azure still under development, more features will be added soon.

Key Features

  • Cloud provider Separated tools: Separated tool for each cloud provider (AWS and Azure) avoiding complexty.
  • Flexible Date Ranges: Custom start/end dates with validation.
  • Multi-Profile Support: Works with all configured AWS profiles.
  • CSV Export: Ready-to-analyze reports in CSV format.
  • Cross-platform CLI Interface: Simple terminal-based workflow, and Cross OS platform.
  • Documentation Ready: Well explained documentations assest you kick start rapidly.
  • Open-Source: the tool is open-source under Apache 2.0 license, which enables your to enhance it for your purpose.

Table Of Contents

Quickly find what you're looking for depending on your use case by looking at the different pages.

AWS (eraXplor)

  1. Overview
  2. Tutorials
  3. How-To Guides
  4. Concepts & Explanation

Azure (eraXplor_az)

  1. Overview
  2. Tutorials
  3. How-To Guides
  4. Concepts & Explanation

How-To Guides

Check installed Python version

  • Ensure you Python version is >= 3.12.3 by:
python --version

# Consider update Python version if less than 3

Install eraXplor

  • Install eraxplor too by:
pip install eraXplor

How-To-Guide - AWS

AWS profile configuration

  • Install AWS CLI - Command line tool.
  • Create an AWS AMI user then extract Access ID & key.
  • Configure AWS CLI profile by:
aws configure <--profile [PROFILE_NAME]>
# ensure you set a defalut region.

How-To use - AWS

eraXplor have multiple arguments set with a default values -explained below-, Adjsut these arguments as required.

eraXplor <--start-date [yyyy-MM-DD]> <--end-date [yyyy-MM-DD]> \
<--profile [PROFILE-NAME]> \
<--groupby [LINKED_ACCOUNT | SERVICE | PURCHASE_TYPE | USAGE_TYPE]> \
<--out [file.csv]>
<--granularity [DAILY | MONTHLY]>

Argument Reference - AWS

  • --start-date, -s: (Not_Required) Default value set as six months before.
  • --end-date, -e: (Not_Required) Default value set as Today date.
  • --profile, -p: (Not_Required) Default value set as default.
  • --groupby, -g: (Not_Required) Default value set as LINKED_ACCOUNT. The available options are (LINKED_ACCOUNT, SERVICE, PURCHASE_TYPE, USAGE_TYPE)
  • --out, -o: (Not_Required) Default value set as cost_repot.csv.
  • --granularity, -G: (Not_Required) Default value set as MONTHLY. The available options are (MONTHLY, DAILY)

How-To-Guide - Azure

Azure CLI Authentication

  • Install Azure CLI - Command line tool by specifing your attended OS.
  • ensure your account have sufficient permission as Billing Reader or Usage Billing Contributor to manage Azure billing.
  • Check installed package by:
az --version
  • Authenticate using your Azure account:
az login

This will open the portal in your default browser to authenticate.

How-To use - Azure

eraXplor_az have multiple arguments set with a default values -explained below-, Adjsut these arguments as required.

eraXplor_az <--start-date [yyyy,MM,DD]> <--end-date [yyyy,MM,DD]> \
<--subscription_id [SUBSCRIPTION_ID]> \
<--granularity [DAILY | MONTHLY]> \
<--output [FILE_NAME.CSV]>

Argument Reference - Azure

  • --start-date or -s: (Optional) Default value set as three months before.
  • --end-date or -e: (Optional) Default value set as Today date.
  • --subscription_id or -S: (Required) subscription id.
  • --out or -o: (Optional) Default value set as az_cost_report.csv.
  • --granularity or -g: (Optional) Default value set as MONTHLY. The available options are (MONTHLY, DAILY)

For Windows/PowerShell users restart your terminal, and you may need to use the following command:

python -m eraXplor

# Or
python -m eraXplor_az  # for auzre

# to avoid using this command, apend the eraXplor to your paths.
# Normaly its under: C:\Users\<YourUser>\AppData\Local\Programs\Python\Python<version>\Scripts\

About the Author

👋Show/Hide Author Details👋

Mohamed eraki
Cloud & DevOps Engineer

Email
LinkedIn
Twitter
Blog

Project Philosophy

"I built eraXplor to solve real-world cloud cost visibility challenges — the same pain points I encounter daily in enterprise environments. This tool embodies my belief that financial accountability should be accessible to every technical team."

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

eraxplor-3.0.0.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

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

eraxplor-3.0.0-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file eraxplor-3.0.0.tar.gz.

File metadata

  • Download URL: eraxplor-3.0.0.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for eraxplor-3.0.0.tar.gz
Algorithm Hash digest
SHA256 5ad5f5c169f7e35992a23b4972e0edebbcc0d3c6ed2cb00cdb2fbfe398d8b458
MD5 ce145a88752acf8b3088ed75f2b49a8a
BLAKE2b-256 ae071605229d2777b6a3e7bf3d68ca08ae458a72f996647e063424c2a8efbcc1

See more details on using hashes here.

File details

Details for the file eraxplor-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: eraxplor-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for eraxplor-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a77df4579278c777d71d33428449eabfdc8802a7a71937272ae0a1477e4baab
MD5 f5dc34ae2acea598c26bc1f5216b0724
BLAKE2b-256 ee39793d054f7a102a80ffc1d2258575ca2f460361c6cca2ed0b64c0a5958257

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