Quota alerts for Buckets ‐ v3 - allanrogerr/public GitHub Wiki
Overview
MinIO provides built-in bucket quota metrics that can be monitored through Prometheus and Grafana. You can create alert rules to get notified when bucket usage reaches specific thresholds (e.g., 80%) without needing custom scripts.
Available Bucket Quota Metrics (v3)
MinIO v3 exposes the following key metrics for bucket quotas:
1. Bucket Usage Metrics
minio_cluster_usage_buckets_total_bytes{bucket="bucket_name"} - Current bucket usage in bytes
minio_cluster_usage_buckets_quota_total_bytes{bucket="bucket_name"} - Bucket quota limit in bytes
2. Additional Bucket Metrics
minio_cluster_usage_buckets_objects_count{bucket="bucket_name"} - Number of objects in bucket
minio_cluster_usage_buckets_versions_count{bucket="bucket_name"} - Number of object versions
minio_cluster_usage_buckets_delete_markers_count{bucket="bucket_name"} - Number of delete markers
3. Distribution Metrics
minio_cluster_usage_buckets_object_size_distribution{range="size_range",bucket="bucket_name"} - Object size distribution
minio_cluster_usage_buckets_object_version_count_distribution{range="version_range",bucket="bucket_name"} - Object version count distribution
Prometheus Alert Rules for 80% Quota Usage
1. Basic 80% Quota Alert
groups:
- name: minio-bucket-quota
rules:
- alert: BucketQuotaUsageHigh
expr: |
(
minio_cluster_usage_buckets_total_bytes / minio_cluster_usage_buckets_quota_total_bytes
) * 100 > 80
for: 5m
labels:
severity: warning
annotations:
summary: "Bucket {{ $labels.bucket }} is {{ $value | humanizePercentage }} full"
description: "Bucket {{ $labels.bucket }} has reached {{ $value | humanizePercentage }} of its quota limit. Current usage: {{ $labels.bucket_usage | humanize }} / {{ $labels.bucket_quota | humanize }}"
2. Enhanced Alert with Usage Details
groups:
- name: minio-bucket-quota
rules:
- alert: BucketQuotaUsageHigh
expr: |
(
minio_cluster_usage_buckets_total_bytes / minio_cluster_usage_buckets_quota_total_bytes
) * 100 > 80
for: 5m
labels:
severity: warning
annotations:
summary: "Bucket {{ $labels.bucket }} quota usage is {{ $value | humanizePercentage }}"
description: |
Bucket {{ $labels.bucket }} has reached {{ $value | humanizePercentage }} of its quota limit.
Current Usage: {{ $labels.bucket_usage | humanize }}
Quota Limit: {{ $labels.bucket_quota | humanize }}
Objects: {{ $labels.objects_count }}
Please review and clean up if necessary.
3. Multiple Threshold Alerts
groups:
- name: minio-bucket-quota
rules:
- alert: BucketQuotaUsageWarning
expr: |
(
minio_cluster_usage_buckets_total_bytes / minio_cluster_usage_buckets_quota_total_bytes
) * 100 > 80
for: 5m
labels:
severity: warning
annotations:
summary: "Bucket {{ $labels.bucket }} is {{ $value | humanizePercentage }} full"
description: "Bucket {{ $labels.bucket }} has reached {{ $value | humanizePercentage }} of its quota limit"
- alert: BucketQuotaUsageCritical
expr: |
(
minio_cluster_usage_buckets_total_bytes / minio_cluster_usage_buckets_quota_total_bytes
) * 100 > 95
for: 2m
labels:
severity: critical
annotations:
summary: "Bucket {{ $labels.bucket }} is {{ $value | humanizePercentage }} full - CRITICAL"
description: "Bucket {{ $labels.bucket }} has reached {{ $value | humanizePercentage }} of its quota limit - IMMEDIATE ACTION REQUIRED"
4. Alert with Rate of Growth
groups:
- name: minio-bucket-quota
rules:
- alert: BucketQuotaUsageHighWithGrowth
expr: |
(
minio_cluster_usage_buckets_total_bytes / minio_cluster_usage_buckets_quota_total_bytes
) * 100 > 80
for: 5m
labels:
severity: warning
annotations:
summary: "Bucket {{ $labels.bucket }} is {{ $value | humanizePercentage }} full"
description: |
Bucket {{ $labels.bucket }} has reached {{ $value | humanizePercentage }} of its quota limit.
Usage Growth Rate (24h): {{ $labels.growth_rate | humanize }}/day
Estimated Time to Full: {{ $labels.time_to_full }}