Open-Source Wikis

/

MinIO

/

How to monitor

minio/minio

How to monitor

MinIO is a long-running service. Operators care about logs, metrics, traces, and alerts. This page maps the controls.

Logs

Three streams:

  • Operational log. Console by default; opt into a rotating file with --log-dir, --log-size, --log-compress. Webhook / HTTP / Kafka targets configurable via MINIO_LOGGER_*.
  • Audit log. Per-request structured records. Targets via MINIO_AUDIT_WEBHOOK_*, MINIO_AUDIT_KAFKA_*. Schema in internal/logger/audit/. Docs at docs/auditlog/.
  • Bucket notification log. S3 events to brokers via internal/event/target/. Schema mirrors AWS S3 event records.

Hand off to your existing log pipeline; MinIO has no built-in log query tool.

Metrics

Two Prometheus endpoints, both unauthenticated by default:

  • /minio/metrics/v2 — one giant set of metrics.
  • /minio/metrics/v3/... — grouped sub-endpoints (api, audit, cache, cluster/, ilm, replication, scanner, system/).

The v3 sub-paths are listed in Metrics, audit, and tracing. Most users scrape:

- job_name: minio
  metrics_path: /minio/metrics/v3
  static_configs:
    - targets: [minio-1:9000, minio-2:9000, ...]

To require auth, set MINIO_PROMETHEUS_AUTH_TYPE=jwt and configure a Prometheus token (mc admin prometheus generate).

Suggested SLIs

SLI Metric (approx.)
Request latency p99 minio_s3_requests_*_seconds_bucket{quantile="0.99"}
Error rate by route minio_s3_requests_errors_total / minio_s3_requests_total
Drive availability minio_cluster_drive_offline_total
Replication backlog minio_bucket_replication_pending_count
Heal backlog minio_heal_pending_objects_total
Disk free minio_node_drive_free_inodes
GC / scanner cadence minio_scanner_objects_scanned_total

Traces

mc admin trace --call all -v streams a server-sent event of every traced operation. Categories (s3, internal, lock, os, replication, healing, scanner) can be filtered with --call.

Traces are in-memory only; no on-disk buffering. The pubsub backbone lives in internal/pubsub/.

Profiling

mc admin profile start --type cpu,heap --duration 30s schedules a profile across the cluster; mc admin profile stop returns a tarball. Behind the scenes the server uses runtime/pprof and github.com/felixge/fgprof.

Alerts (suggested)

Alert Reason
Cluster has been below write quorum for >1 minute Page.
Number of offline drives changed in last 5 minutes Investigate.
Replication backlog growing for >15 minutes Target unhealthy.
Heal pending objects > N for > 1 hour New disks, scrubbing, or chronic bitrot.
Audit target queue depth > N Webhook/Kafka unreachable.
Per-node free space < 10% Capacity.

These map cleanly to v3 metrics; thresholds depend on cluster size.

Health endpoints

Path Use
/minio/health/live Process liveness probe.
/minio/health/ready Write quorum probe.
/minio/health/cluster Stricter readiness for distributed setups.
/minio/health/cluster/read Read-quorum probe.

Inspect / support

mc support inspect <alias>/ packages logs, configs, and a default profile bundle into a tarball. The mechanism lives in cmd/admin-handlers.go (/minio/admin/v3/inspect-data).

Test harness

make test-resiliency runs a docker-compose cluster and injects failures (drive loss, network partition, peer kill); the script in docs/resiliency/resiliency-tests.sh validates that traffic continues. Useful as a sanity check on alerting and dashboards.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

How to monitor – MinIO wiki | Factory