New to Kestra?
Use blueprints to kickstart your first workflows.
Audits MinIO distributed object storage drive health via metrics endpoint, alerting DevOps on Slack before offline drives threaten erasure coding quorum.
This blueprint monitors distributed object storage reliability across MinIO clusters. Scheduled every 10 minutes, it queries the MinIO cluster Prometheus metrics endpoint to inspect drive availability, offline disks, and active background object healing operations, alerting infrastructure and SRE teams on Slack before disk failures breach erasure coding parity limits.
periodic_storage_audit schedule trigger (io.kestra.plugin.core.trigger.Schedule) initiates the audit every 10 minutes.audit_minio_cluster_health task (io.kestra.plugin.scripts.python.Script) interrogates the MinIO metrics endpoint /minio/v2/metrics/cluster, parsing total drives, offline drives, and healing task counters.evaluate_storage_quorum flowable task (io.kestra.plugin.core.flow.If) evaluates whether offline drives meet or exceed the critical threshold.notify_slack_storage_incident (io.kestra.plugin.slack.notifications.SlackIncomingWebhook) dispatches an urgent incident alert with drive counts and remediation CLI commands.log_storage_nominal logs nominal storage status.export_storage_manifest task tags the execution with searchable status labels.flowchart TD
A[Schedule: Every 10 Minutes] --> B[audit_minio_cluster_health: Scrape MinIO Cluster Metrics]
B --> C{Offline Drives >= Threshold?}
C -- Yes --> D[notify_slack_storage_incident: Slack Webhook]
C -- No --> E[log_storage_nominal: Log Nominal State]
D --> F[export_storage_manifest: Execution Labels]
E --> F
minio_heal_objects_total) following disk replacements to ensure data parity is restored.| Name | Type | Default | Description |
|---|---|---|---|
minio_metrics_endpoint |
STRING | http://minio.internal:9000/minio/v2/metrics/cluster |
Internal cluster metrics endpoint URL for MinIO distributed storage. |
max_offline_drives_threshold |
INT | 1 |
Maximum tolerable count of offline storage drives before triggering critical alert. |
slack_channel |
STRING | #storage-sre-alerts |
Slack channel destination for MinIO storage cluster health alerts. |
{{ outputs.audit_minio_cluster_health.vars.total_drives }}: Total count of drives configured across the MinIO cluster.{{ outputs.audit_minio_cluster_health.vars.offline_drives }}: Count of offline or unreachable storage drives.{{ outputs.audit_minio_cluster_health.vars.has_drive_incident }}: Boolean flag indicating if drive health breached threshold.{{ outputs.audit_minio_cluster_health.outputFiles['minio_health_report.json'] }}: Structured JSON report detailing cluster storage drive metrics.MINIO_ROOT_USER: MinIO cluster administrative root username.MINIO_ROOT_PASSWORD: MinIO cluster administrative root password.SLACK_WEBHOOK_URL: Slack Incoming Webhook endpoint URL.MINIO_ROOT_USER, MINIO_ROOT_PASSWORD, and SLACK_WEBHOOK_URL in your Kestra namespace secrets.minio_metrics_endpoint./minio/v2/metrics/cluster; ensure administrative secrets are configured.max_offline_drives_threshold to 1 provides early warning well before data loss risk.mc admin heal execution via Kestra shell tasks when offline drives return to online status.