Disk usage, object counts and quota alerts come exclusively from Prometheus — without it, bandwidth billing still works but there are no storage figures and no 90% quota alert emails. This article sets up the scrape and connects it to Blesta.
minio_cluster_usage_buckets_total_bytes and minio_cluster_usage_buckets_objects_count, filtered by bucket name and your job name.Generate a metrics bearer token with the mc client against your server alias:
mc admin prometheus generate YOUR_ALIAS cluster
Add a job to your prometheus.yml (job_name is your choice — you will enter the same value in Blesta):
- job_name: minio-job-bucket
metrics_path: /minio/metrics/v3/cluster/usage/buckets
scheme: https
bearer_token: PASTE_TOKEN_FROM_mc_admin_prometheus_generate
static_configs:
- targets: ['your-storage-host:443']
Reload Prometheus and confirm the target is UP on its Targets page, and that a query for minio_cluster_usage_buckets_total_bytes returns one series per bucket.
MinIO: works as-is (RELEASE with metrics v3). Tokens are stateless — generating a new one never invalidates the one Prometheus already uses; they only stop working if the server's root keys change.
RustFS: does not currently document a MinIO-compatible Prometheus metrics endpoint (native Prometheus support is an open item upstream). Until RustFS exposes /minio/metrics/v3/cluster/usage/buckets with the minio_cluster_usage_buckets_* metrics, disk figures and quota alerts are unavailable for RustFS-backed servers — treat this article as MinIO-specific. If a future RustFS release adds the compatible endpoint, the identical scrape job applies; verifying that the two metric names above return data is the only compatibility requirement the plugin has.
On the module server row (Settings > Company > Modules > S3 Object Storage Provision Module (MinIO & RustFS) > Manage > Edit):
http://10.0.0.5:9091.job_name from step 1 exactly (mismatched job = "metric missing" failures).The same scrape example is shown inline on that form for copy-paste.
Bandwidth and S3 request counts are not read from Prometheus. The plugin reads them straight from every MinIO node's /minio/metrics/v3/bucket/api/<bucket> endpoint (metrics v3 counters are per node, so the collector discovers the cluster nodes with mc admin info and sums them; the module server row has an optional Metrics Endpoints (override) field if the discovered addresses are not reachable from Blesta). No Prometheus job is needed for that.
The storage series is MinIO's scanner result. It only updates when the scanner completes a pass over the bucket, so on a busy cluster the value and the object count can stay identical for hours — that is normal, not a broken scrape (the snapshot still shows source prometheus). The month's Storage GiB-month keeps accumulating from the last known value in the meantime.