# minio.descriptor.yaml
# Build input for generating svc-minio.yaml dashboard ConfigMap
# and svc-minio-rules.yaml PrometheusRule.

service: minio
display_name: "MinIO"
namespace: storage
service_type: stateful-store
folder: "MinIO"

jobs:
  - minio

metrics:
  prefix: minio
  up_selector: 'job="minio"'

  rate:
    metric: minio_s3_requests_total
    labels: [method, bucket]

  duration:
    metric: minio_s3_requests_duration_seconds
    type: histogram
    unit: s

  error:
    metric: minio_s3_requests_total
    filter: 'error="true"'

  domain:
    - metric: minio_cluster_capacity_usable_bytes
      kind: gauge
    - metric: minio_cluster_capacity_raw_total_bytes
      kind: gauge
    - metric: minio_replication_metrics_failed_byte_count
      kind: gauge
    - metric: minio_replication_metrics_replicating_byte_count
      kind: gauge
    - metric: minio_cluster_health_drives_online
      kind: gauge
    - metric: minio_cluster_health_drives_offline
      kind: gauge

correlation_ids: []

logs:
  loki_namespace_selector: 'namespace="storage"'

alerts:
  - name: HighErrorRate
    expr_template: rate_error_ratio
    threshold: 0.05
    for: 10m
    severity: warning
  - name: DiskSpaceLow
    expr_template: gauge_below_percentage
    metric: minio_cluster_capacity_usable_bytes
    threshold: 0.1
    base_metric: minio_cluster_capacity_raw_total_bytes
    for: 5m
    severity: critical
  - name: ReplicationLag
    expr_template: gauge_above_threshold
    metric: minio_replication_metrics_replicating_byte_count
    threshold: 1073741824
    for: 15m
    severity: warning
