Skip to content

impl(cluster): establish measured egress budgets and alerting #5203

Open

Description

@dezren39

Parent: #5030 (egress design); related umbrella: #1090 (observability, backup & recovery).

Goal

Before the first public cluster workload is exposed, measure actual WAN ingress/egress and offload-provider consumption, then compare them to the provisional #5030 budget. Do not assume the 2 Gbps carrier rate is a monthly data allowance.

Scope

  • After epic(cluster): network fabric #1084 establishes the new addressing/fabric plan, identify an authoritative per-direction WAN byte counter at the edge and preserve monthly counters across router reboots.
  • Record Cloudflare cache hit/miss and origin bytes, R2 storage/request usage, Workers requests/CPU, and Turso monthly sync (if used) from provider metrics; distinguish measured values from estimates.
  • Publish a monthly report in the existing usage/billing hub or its source ledger, with a dated source and plan/account verification for each allowance. Keep account-specific unknowns unknown until checked.
  • Alert at 70% and 85% of the design(cluster): egress strategy for 2 Gbps home fiber — budgets, tunnel topology, failure matrix #5030 operating envelope; at 85%, stop admitting optional bulk transfers and review before raising budgets. Do not disable critical control-plane/backup recovery traffic automatically.
  • Validate recovery behavior after a counter reset/reboot and document gaps where provider APIs do not expose egress bytes.

Dependencies

Blocked by the new addressing/fabric plan in #1084 and by the #5030 design review. Independent of OCI signup (#4904).

Acceptance

A reproducible dashboard/report shows WAN bytes per direction and available SaaS counters; each series is labelled measured/estimated/unavailable; alert thresholds and operator actions are tested; the external subscription/usage ledger is updated with current account-specific allowance evidence.

No HashiCorp tooling; configuration and state must be declarative/recoverable.

Acceptance criteria

  • An authoritative per-direction WAN byte counter at the edge is identified and monthly counters survive router reboots, with the counter source named on this issue.
  • One monthly report exists in the usage/billing hub (or its source ledger) recording measured Cloudflare cache/origin bytes, R2 and Workers usage, and Turso sync if used — each value dated, sourced, and marked measured vs estimated, with plan allowances verified or explicitly left unknown.
  • Alerts fire at 70% and 85% of the design(cluster): egress strategy for 2 Gbps home fiber — budgets, tunnel topology, failure matrix #5030 operating envelope, and the 85% response (stop admitting optional bulk transfers, review before raising budgets) is written into the report/runbook.

Activity

  1. added
    kind/infrastructureInfrastructure / host-portability work
    priority/normalOrdinary priority (the default)
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    area/infraInfrastructure, deployment, and operations
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 4, 2026
  2. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: Parent: #5030 (design(cluster): egress strategy). Related umbrella: #1090. Blocked-by in substance: #1084 (addressing/fabric plan).

    Notes: Implementation slice of the #5030 egress design (which is in user/review): it cannot fully start until #1084 establishes the addressing/fabric plan and #5030's envelope is final — the scope text in the body says so itself. No merged PR resolves this (searched this run). Effort l: provider-metric plumbing across Cloudflare/R2/Workers/Turso plus edge counters and alerting; expect slicing (counters first, report second, alerts last). Risk: treating the 2 Gbps carrier rate as a data allowance — the body explicitly warns against it; acceptance keeps unverified allowances 'unknown'. Suggested approach: land the edge counter + monthly report skeleton with the provisional #5030 envelope, wire alerts once the envelope is confirmed.

    — fleet monitor intake (protocol §5), 2026-11-03 18:12 CST run. Verified still live this run per the notes above.

  3. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    Agent note — task 9466 triaged

  4. added
    queue/claimedQueue worker lifecycle state
    task/triageQueue packet kind: verify, reproduce, and route this item
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 4, 2026
  5. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: fleet monitor
    • Session / ID: repo-fleet-monitor run 2026-11-05 12:12 CST
    • Found via: monitor reconciliation
    • Task: Claim-evaporation repair: this issue carried queue/claimed with no work/* label, but a fresh queue read this run found NO live task for it in any non-terminal state, and the last activity was 2026-11-04T12:34:29Z. The claim evaporated with no terminal verb. Labels reset to the truth (queue/queued + status/needs-triage) and a fresh triage packet was enqueued as task 10721 — the item is queued, unclaimed.
    • Expectation: triage (effort/l item; triage step s) by the next claiming lane; checkpoint stage at evaporation: none recorded.
    • Links: task 10721 (repo-health-code-pilot)
  6. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 5, 2026
  7. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    • Agent: queue worker (repo-worker-code), lane code-k
    • Session / ID: task 10721
    • Found via: queue claim
    • Task: Re-triage of issue impl(cluster): establish measured egress budgets and alerting #5203 (WAN/SaaS egress metering) — re-verify the task 9466 triage gates against fresh state.
    • Expectation: done — triage verdict re-verified; issue stays open, gated on its two dependencies.

    Re-triage findings (fresh reads, 2026-11-05):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area/infraInfrastructure, deployment, and operationseffort/lLarge: multi-day or open-ended; expect staged check-inskind/infrastructureInfrastructure / host-portability workmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)task/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions