Metrics¶
When metrics.enabled = true, Mini S3 exposes Prometheus-format metrics on
http://<host>:<metrics.port>/metrics — on a separate, unauthenticated,
plain-HTTP listener from the S3 API itself (bind it to a private interface
or firewall it accordingly). Standard Go runtime and process metrics are
included alongside the metrics below.
Global summary metrics¶
| Metric | Type | Description |
|---|---|---|
minis3_count |
gauge | Total number of objects across all buckets. |
minis3_used_bytes |
gauge | Total size of all objects across all buckets. |
minis3_read_bytes_total |
counter | Bytes read from storage and transmitted to clients since Mini S3 started. |
minis3_written_bytes_total |
counter | Bytes received from clients and written to storage since Mini S3 started. |
Per-bucket metrics¶
All labeled with name="<bucket>".
| Metric | Type | Description |
|---|---|---|
minis3_bucket_count |
gauge | Number of objects in the bucket. |
minis3_bucket_free_bytes |
gauge | Free space of the filesystem underlying the bucket. |
minis3_bucket_used_bytes |
gauge | Cumulative size of all objects in the bucket. |
minis3_bucket_read_bytes_total |
counter | Bytes read from storage and transmitted to clients for this bucket since start. |
minis3_bucket_written_bytes_total |
counter | Bytes received from clients and written to storage for this bucket since start. |
Notes¶
countandused(global and per-bucket) are computed by walking the bucket's directory tree on every scrape. For buckets with a very large number of objects, this makes scrapes proportionally slower; scrape at a sensible interval (e.g. 30-60s) rather than sub-second.read/writtencounters reset to zero on every process restart — they are in-memory only, not persisted.freeusesstatfs()on the bucket's backing directory, so it reflects the whole filesystem the bucket lives on, not a per-bucket quota (Mini S3 has no storage quota concept).