MinIO Metrics V3 introduces a redesigned metrics system with improved naming conventions, a unified endpoint, and many new metrics for enhanced observability. This guide covers the key differences and provides migration guidance.
Answer
Quick Summary
| Aspect | V2 Metrics | V3 Metrics |
|---|---|---|
| Total Mapped Metrics | 113 | 113 (equivalent) |
| New V3-Only Metrics | N/A | 161 |
| Endpoints | Multiple (/minio/v2/metrics/bucket, /cluster, /node) | Unified (/minio/metrics/v3) |
| Naming Convention | minio_<scope>_<metric> | minio_<subsystem>_<component>_<metric> |
Endpoint Changes
V2 Endpoints (Deprecated)
/minio/v2/metrics/bucket/minio/v2/metrics/cluster/minio/v2/metrics/nodeV3 Endpoint (Current)
/minio/metrics/v3/minio/metrics/v3/bucket/api?bucket=<BUCKET>/minio/metrics/v3/bucket/replication?bucket=<BUCKET>Key Naming Convention Changes
Bucket Metrics
| V2 Metric | V3 Metric |
|---|---|
minio_bucket_usage_total_bytes | minio_cluster_usage_buckets_total_bytes |
minio_bucket_usage_object_total | minio_cluster_usage_buckets_objects_count |
minio_bucket_requests_total | minio_bucket_api_total |
minio_bucket_requests_4xx_errors_total | minio_bucket_api_4xx_errors_total |
minio_bucket_requests_5xx_errors_total | minio_bucket_api_5xx_errors_total |
minio_bucket_requests_ttfb_seconds_distribution | minio_bucket_api_ttfb_seconds_distribution |
Cluster Health Metrics
| V2 Metric | V3 Metric |
|---|---|
minio_cluster_capacity_raw_total_bytes | minio_cluster_health_capacity_raw_total_bytes |
minio_cluster_capacity_raw_free_bytes | minio_cluster_health_capacity_raw_free_bytes |
minio_cluster_capacity_usable_total_bytes | minio_cluster_health_capacity_usable_total_bytes |
minio_cluster_capacity_usable_free_bytes | minio_cluster_health_capacity_usable_free_bytes |
minio_cluster_drive_offline_total | minio_cluster_health_drives_offline_count |
minio_cluster_drive_online_total | minio_cluster_health_drives_online_count |
minio_cluster_nodes_offline_total | minio_cluster_health_nodes_offline_count |
minio_cluster_nodes_online_total | minio_cluster_health_nodes_online_count |
S3 API Metrics
| V2 Metric | V3 Metric |
|---|---|
minio_s3_requests_total | minio_api_requests_total |
minio_s3_requests_4xx_errors_total | minio_api_requests_4xx_errors_total |
minio_s3_requests_5xx_errors_total | minio_api_requests_5xx_errors_total |
minio_s3_requests_inflight_total | minio_api_requests_inflight_total |
minio_s3_traffic_received_bytes | minio_api_requests_traffic_received_bytes |
minio_s3_traffic_sent_bytes | minio_api_requests_traffic_sent_bytes |
Node/Drive Metrics
| V2 Metric | V3 Metric |
|---|---|
minio_node_drive_free_bytes | minio_system_drive_free_bytes |
minio_node_drive_total_bytes | minio_system_drive_total_bytes |
minio_node_drive_used_bytes | minio_system_drive_used_bytes |
minio_node_drive_errors_timeout | minio_system_drive_timeout_errors_total |
minio_node_drive_errors_ioerror | minio_system_drive_io_errors_total |
minio_node_file_descriptor_open_total | minio_system_process_file_descriptor_open_total |
minio_node_go_routine_total | minio_system_process_go_routine_total |
Network Metrics
| V2 Metric | V3 Metric |
|---|---|
minio_inter_node_traffic_received_bytes | minio_system_network_internode_recv_bytes_total |
minio_inter_node_traffic_sent_bytes | minio_system_network_internode_sent_bytes_total |
Type Changes
Some metrics changed from histogram to gauge in V3. Update your Grafana queries accordingly:
| Metric | V2 Type | V3 Type | Query Change Required |
|---|---|---|---|
minio_bucket_objects_age_distribution | histogram | gauge | Use sum by (range) instead of histogram_quantile() |
minio_bucket_objects_size_distribution | histogram | gauge | Use sum by (range) instead of histogram_quantile() |
minio_cluster_objects_age_distribution | histogram | gauge | Use sum by (range) instead of histogram_quantile() |
minio_bucket_replication_latency_ms | histogram | gauge | Use sum by (range) instead of histogram_quantile() |
V2 Query (Histogram):
histogram_quantile(0.95, sum by (job, le, bucket) (rate(minio_bucket_objects_age_distribution[5m])))V3 Query (Gauge with range labels):
sum by (range) (minio_cluster_usage_buckets_object_age_distribution)Unit Changes
Some metrics changed units - particularly from nanoseconds to seconds:
| V2 Metric | V3 Metric | Unit Change |
|---|---|---|
minio_bucket_usage_last_activity_nano_seconds | minio_cluster_usage_objects_since_last_update_seconds | nanoseconds → seconds |
minio_heal_time_last_activity_nano_seconds | minio_heal_time_last_activity_seconds | nanoseconds → seconds |
New V3-Only Metrics
AIStor Tables Metrics
minio_tables_warehouses_total - Current number of warehousesminio_tables_namespaces_total - Current number of namespacesminio_tables_tables_total - Current number of tablesminio_tables_views_total - Current number of viewsminio_tables_staged_tables_total - Current number of staged tablesminio_tables_transactions_active_current - Currently active transactionsminio_tables_recovery_operations_total - Total recovery operationsminio_tables_recovery_rollback_total - Total transaction rollbacksQoS Metrics (Bucket-Level)
minio_bucket_api_qos_req_configured_counts_per_secondminio_bucket_api_last_minute_qos_rate_limit_exceeded_countsminio_bucket_api_last_minute_qos_throttled_totalSystem CPU Metrics
minio_system_cpu_load / load5 / load15minio_system_cpu_idle_avg / idle_maxminio_system_cpu_iowait_avg / iowait_maxminio_system_cpu_user / user_avg / user_maxminio_system_cpu_system / system_avg / system_maxminio_system_cpu_steal / steal_avg / steal_maxSystem Memory Metrics
minio_system_memory_total / available / free / usedminio_system_memory_buffers / cache / sharedminio_system_memory_used_percDrive Cache Metrics
minio_system_drive_cache_capacityminio_system_drive_cache_usedminio_system_drive_cache_hits / missesminio_system_drive_cache_delete_hits / delete_missesminio_system_drive_cache_collisionsAudit Metrics
minio_audit_total_messages / failed_messagesminio_audit_total_requests / failed_requestsminio_audit_target_queue_lengthminio_audit_global_queue_sizeScanner Metrics
minio_scanner_bucket_scans_started / finishedminio_scanner_objects_scanned / versions_scannedminio_scanner_directories_scannedminio_scanner_last_activity_secondsIAM Metrics
minio_iam_sync_successes / sync_failuresminio_iam_since_last_sync_millisminio_iam_ldap_idp_healthKMS Metrics
minio_kms_onlineminio_kms_online_secondsminio_kms_request_succeeded / failed_error / failed_internalSite Replication Metrics
minio_cluster_replication_sent_bytes / sent_countminio_cluster_replication_received_bytes / received_countminio_cluster_replication_queued_bytes / queued_countminio_cluster_replication_errors_total / retries_totalminio_cluster_replication_active_workersGrafana Query Migration Examples
Cluster Capacity
V2:
sum(minio_cluster_capacity_raw_total_bytes)V3:
sum(minio_cluster_health_capacity_raw_total_bytes)Request Rate
V2:
sum(rate(minio_s3_requests_total[5m]))V3:
sum(rate(minio_api_requests_total[5m]))Error Rate
V2:
sum(rate(minio_s3_requests_4xx_errors_total[5m]))V3:
sum(rate(minio_api_requests_4xx_errors_total[5m]))TTFB P95
V2:
histogram_quantile(0.95, sum by (le) (rate(minio_s3_requests_ttfb_seconds_distribution[5m])))V3:
histogram_quantile(0.95, sum by (le) (rate(minio_api_requests_ttfb_seconds_distribution[5m])))Drive Free Space
V2:
sum(minio_node_drive_free_bytes)V3:
sum(minio_system_drive_free_bytes)Object Count
V2:
sum(minio_cluster_usage_object_total)V3:
sum(minio_cluster_usage_objects_count)Prometheus Configuration Update
V2 Configuration
scrape_configs: - job_name: minio-bucket static_configs: - targets: ['minio:9000'] metrics_path: /minio/v2/metrics/bucket - job_name: minio-cluster static_configs: - targets: ['minio:9000'] metrics_path: /minio/v2/metrics/cluster - job_name: minio-node static_configs: - targets: ['minio:9000'] metrics_path: /minio/v2/metrics/nodeV3 Configuration
scrape_configs: - job_name: minio static_configs: - targets: ['minio:9000'] metrics_path: /minio/metrics/v3Migration Checklist
- Update Prometheus scrape configuration to V3 endpoint
- Update Grafana dashboards with new metric names
- Update alerting rules with new metric names
- Update histogram queries to use
rangelabels where applicable - Update unit conversions (nanoseconds → seconds)
- Add new V3-only metrics to dashboards (CPU, memory, cache, etc.)
- Test all dashboards and alerts in staging environment
- Document any custom metrics/queries specific to your deployment