The Usage Billing plugin samples every active storage service hourly, keeps raw snapshots, rolls them up per month, and can append overage lines to invoices. Its pages live in staff navigation as S3 Usage; settings are under Settings > Company > Plugins > S3 Usage Billing > Manage.
Both sources require MinIO — RustFS does not yet document compatible metrics endpoints, so usage billing is MinIO-only for now (see Installation & Requirements and Prometheus Setup).
The S3 Usage pages show per-month, per-bucket rollups with summary tiles and drill-down to the raw snapshots. A rollup is flagged review required when samples are missing/failed, a quota is set while disk billing is on, or a billed month changed afterwards. Flagged rollups are never invoiced silently — resolve the flag first.
Note that the review flag is recomputed automatically every hour from the samples — in particular the "incomplete billing period" flag on the current month clears by itself on the 1st of the next month, at which point the rollup becomes billable. If you need a month kept off invoices no matter what the collector computes (a metering incident, a disputed figure), open the rollup and click Hold Billing. A hold survives every recalculation and excludes that month from invoices until you click Release Hold. The collector never sets or clears a hold. The plugin sets a hold itself only to prevent a second charge: when a manual bill stops before its invoice is saved, when a voided usage invoice is made active again, or when an invoice was saved but the rollup could not be marked billed. The rollup page then shows "Held by the system on
The Invoice column on the list and on the rollup page shows the invoice number as a link to the invoice.
When Blesta generates an invoice containing a storage service line, the plugin appends that service's unbilled closed months (every month up to and including last month) as separate line items. Rollups are stamped with the invoice they were billed on; a reservation mechanism prevents double-billing across concurrent invoice runs. Repricing: unbilled months always recalculate with current package prices; already-billed months are never re-billed — a post-billing change flags them for review instead.
Buckets with a quota alert their client at 90% used via the MinioUsageBilling.quota_threshold email template (at most one per bucket per 24h; re-arms below 85%).
Edit the template before going live — the plugin seeds it with placeholder data. Under Settings > Company > Emails > Email Templates, set:
no-reply@<your hostname>; use a real address your mail setup can sign (SPF/DKIM), or alerts land in spam.{client.first_name}, {bucket}, {service_name}, {used}, {quota}, {used_percent}.Your edits survive plugin upgrades (re-seeding never overwrites an existing template). Disabling the template on that same page is the company-wide kill switch for alerts.