Skip to main content

CloudCircuit Python package.

Project description

cloudcircuit Banner

cloudcircuit

CloudCircuit is a Python library for cloud cost control, real-time spend anomaly detection, budget overrun prevention, and circuit-breaker style safety automation.

If you are searching for solutions like:

  • prevent unexpected cloud bills
  • detect cloud spend spikes
  • add budget guardrails in Python
  • implement FinOps automation for developers
  • stop runaway infrastructure loops

this package is built for that exact problem set.

Why this library exists

Many teams discover cloud overspend only after invoices land. A single misconfigured loop, unbounded worker fan-out, or retry storm can create massive costs in hours.

CloudCircuit provides deterministic primitives so you can add spend safety in:

  • background jobs
  • CI/CD workflows
  • internal developer platforms
  • API middleware
  • scheduled FinOps monitors

Features

  • Budget guardrails: warning and hard-breach checks with explicit thresholds
  • Spend anomaly detection: latest-point spike detection against baseline
  • Burn-rate monitoring: detect hot spend acceleration before full breach
  • Forecasting: project period-end spend and overrun amount
  • Circuit breaker decisions: open/close logic for high-risk operations
  • Policy engine: combine budget + anomaly + breaker into allow/throttle/block
  • Alert payload builder: provider-agnostic payloads for Slack/webhooks/ops pipelines
  • Typed API: dataclass results with clear fields for logs and audits

Install

python -m pip install cloudcircuit

Quickstart

from cloudcircuit import (
    check_anomaly_robust,
    check_anomaly_spike,
    check_budget,
    check_burn_rate,
    evaluate_circuit_breaker,
    evaluate_spend_policy,
    forecast_budget_breach,
    make_alert_payload,
)

budget = check_budget(current_spend=920.0, budget_limit=1000.0, warning_ratio=0.9)
anomaly = check_anomaly_spike([120.0, 118.0, 121.0, 250.0], spike_multiplier=1.6)
robust_anomaly = check_anomaly_robust([120.0, 118.0, 121.0, 250.0], method="mad", z_threshold=3.5)
burn = check_burn_rate([120.0, 118.0, 121.0, 250.0], hot_multiplier=1.4)
breaker = evaluate_circuit_breaker(consecutive_failures=0, failure_threshold=3)
forecast = forecast_budget_breach(
    current_spend=920.0,
    budget_limit=1000.0,
    periods_elapsed=22,
    total_periods=30,
)

policy = evaluate_spend_policy(budget=budget, anomaly=anomaly, breaker=breaker)
alert = make_alert_payload(policy, service="billing-worker", environment="prod")

print(policy.action, policy.severity)
print(forecast.projected_total_spend, forecast.will_breach)
print(burn.burn_rate_ratio, burn.is_hot)
print(robust_anomaly.threshold, robust_anomaly.is_spike)
print(alert)

Robust anomaly detection (MAD / percentile)

Mean-based thresholds can be brittle when cloud spend is heavy-tailed or bursty. For more robust detection, use check_anomaly_robust:

from cloudcircuit import check_anomaly_robust

mad = check_anomaly_robust([120.0, 118.0, 121.0, 250.0], method="mad", z_threshold=3.5)
p95 = check_anomaly_robust([120.0, 118.0, 121.0, 250.0], method="percentile", percentile=0.95)

print(mad.threshold, mad.is_spike)
print(p95.threshold, p95.is_spike)

Common developer problems solved

  1. Runaway cron or queue workers

    • Use anomaly + burn-rate checks every interval.
    • Auto-throttle workers when policy returns throttle.
  2. Unexpected month-end budget breach

    • Use forecast checks daily or hourly.
    • Trigger remediation before hard limit is hit.
  3. No standardized cost incident signal

    • Use make_alert_payload for consistent, structured incident events.
  4. Need a safe default during telemetry failure

    • Combine breaker logic with fail-closed policy in critical paths.

API overview

  • check_budget(...) -> BudgetCheckResult
  • check_anomaly_spike(...) -> AnomalyCheckResult
  • check_anomaly_robust(...) -> AnomalyCheckResult
  • check_burn_rate(...) -> BurnRateResult
  • forecast_budget_breach(...) -> ForecastResult
  • evaluate_circuit_breaker(...) -> CircuitBreakerDecision
  • evaluate_spend_policy(...) -> PolicyDecision
  • make_alert_payload(...) -> dict[str, object]

SEO keywords (for discoverability)

cloud cost control python, finops python library, cloud budget guardrails, spend anomaly detection, prevent cloud bill shock, cost circuit breaker, cloud billing safety, cloud overspend monitoring, infrastructure cost alerts, developer finops toolkit

Development

python -m pip install -e ".[dev]"
python -m pytest
python -m ruff check .
python -m mypy src

Roadmap ideas

  • rolling window and percentile-based anomaly models
  • provider adapters for AWS/GCP/Azure billing streams
  • async event pipeline helpers
  • OpenTelemetry metric exporters
  • policy DSL for org-wide spend controls

License

MIT

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

cloudcircuit-0.3.7.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

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

cloudcircuit-0.3.7-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file cloudcircuit-0.3.7.tar.gz.

File metadata

  • Download URL: cloudcircuit-0.3.7.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for cloudcircuit-0.3.7.tar.gz
Algorithm Hash digest
SHA256 92aa0c4788f72656cbd54edf04cc652b0f0b88165ecf8ef26ff35e82d36bd156
MD5 412e6a7fd2488accc908b1313808b4eb
BLAKE2b-256 2781c4881d36cd1cc313ad2ca7d84126638da17099031e5a465cd53ecf58018d

See more details on using hashes here.

File details

Details for the file cloudcircuit-0.3.7-py3-none-any.whl.

File metadata

  • Download URL: cloudcircuit-0.3.7-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for cloudcircuit-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b67baf5b6f3d6fcb9a1472270d7f89712eee19316e94cf0c15aa1c6e2cc58381
MD5 bba65d2c1c85c49e65fd922de5e6e98b
BLAKE2b-256 a3118d0a51f31d2b648538a48fc032ebae78e7e94a99c05cc2a2538fcb50927f

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