{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
"hide": true,
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 100,
"title": "1. Distributed Lock & Runtime Contention",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"y": 1
},
"id": 1,
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["mean", "max", "lastNotNull"]
},
"tooltip": {
"mode": "multi"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "minio_locks_dist_avg_latency",
"legendFormat": "Avg Lock Latency (Cluster)",
"refId": "A"
}
],
"title": "Distributed Lock Avg Latency",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "linear",
"lineWidth": 2
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 8,
"y": 1
},
"id": 2,
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["mean", "max", "lastNotNull"]
},
"tooltip": {
"mode": "multi"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "sum(minio_locks_dist_active)",
"legendFormat": "Active Distributed Locks",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "sum(minio_locks_dist_waiting)",
"legendFormat": "Waiting Locks",
"refId": "B"
}
],
"title": "Active & Waiting Locks Count",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "linear",
"lineWidth": 2
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 16,
"y": 1
},
"id": 3,
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["max", "lastNotNull"]
},
"tooltip": {
"mode": "multi"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "topk(10, go_goroutines{instance=~\"$instance\"} or minio_process_goroutines{instance=~\"$instance\"})",
"legendFormat": "{{instance}} (Pod)",
"refId": "A"
}
],
"title": "Top 10 Pods by Goroutines",
"type": "timeseries"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 9
},
"id": 200,
"title": "2. Bucket & API Operation Bottlenecks",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "linear",
"lineWidth": 2
},
"unit": "reqps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"y": 10
},
"id": 4,
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["mean", "max"]
},
"tooltip": {
"mode": "multi"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "topk(10, sum by (bucket, api) (rate(minio_api_requests_total{bucket=~\"$bucket\"}[5m])))",
"legendFormat": "{{bucket}} - {{api}}",
"refId": "A"
}
],
"title": "Top 10 Bucket API Request Rate",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "linear",
"lineWidth": 2
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 8,
"y": 10
},
"id": 5,
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["mean", "max"]
},
"tooltip": {
"mode": "multi"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "topk(10, (sum by (bucket, api) (rate(minio_api_time_seconds_sum{bucket=~\"$bucket\"}[5m]))) / (sum by (bucket, api) (rate(minio_api_time_seconds_count{bucket=~\"$bucket\"}[5m])) > 0))",
"legendFormat": "{{bucket}} - {{api}}",
"refId": "A"
}
],
"title": "Top 10 Bucket API Latency (Avg Duration)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "bars",
"lineWidth": 1
},
"unit": "errps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 16,
"y": 10
},
"id": 6,
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["max", "sum"]
},
"tooltip": {
"mode": "multi"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "topk(10, sum by (bucket, api, code) (rate(minio_api_requests_failed_total{bucket=~\"$bucket\"}[5m])))",
"legendFormat": "{{bucket}} - {{api}} ({{code}})",
"refId": "A"
}
],
"title": "Failed API Requests (4xx / 5xx / Timeouts)",
"type": "timeseries"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 18
},
"id": 300,
"title": "3. Underlying Disk & Drive I/O Bottlenecks",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "linear",
"lineWidth": 2
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 19
},
"id": 7,
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["mean", "max"]
},
"tooltip": {
"mode": "multi"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "topk(10, (rate(minio_node_drive_total_waiting_time_seconds[5m])) / (rate(minio_node_drive_total_waiting[5m]) > 0))",
"legendFormat": "{{instance}} - {{drive}}",
"refId": "A"
}
],
"title": "Top 10 Drives by Avg I/O Waiting Time",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "linear",
"lineWidth": 2
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 19
},
"id": 8,
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["max", "lastNotNull"]
},
"tooltip": {
"mode": "multi"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "topk(10, minio_node_drive_queue_length or minio_node_drive_total_waiting)",
"legendFormat": "{{instance}} - {{drive}} queue",
"refId": "A"
}
],
"title": "Top 10 Drive Queue Length / Saturations",
"type": "timeseries"
}
],
"refresh": "30s",
"schemaVersion": 38,
"style": "dark",
"tags": ["minio", "aistor", "troubleshooting", "locks"],
"templating": {
"list": [
{
"current": {},
"hide": 0,
"label": "Data Source",
"name": "DS_PROMETHEUS",
"options": [],
"query": "prometheus",
"refresh": 1,
"regex": "",
"type": "datasource"
},
{
"allValue": ".*",
"current": {
"selected": true,
"text": "All",
"value": "$__all"
},
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"definition": "label_values(minio_api_requests_total, instance)",
"hide": 0,
"includeAll": true,
"label": "Instance",
"multi": true,
"name": "instance",
"options": [],
"query": {
"query": "label_values(minio_api_requests_total, instance)",
"refId": "Prometheus-Instance-Variable"
},
"refresh": 2,
"regex": "",
"type": "query"
},
{
"allValue": ".*",
"current": {
"selected": true,
"text": "All",
"value": "$__all"
},
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"definition": "label_values(minio_api_requests_total, bucket)",
"hide": 0,
"includeAll": true,
"label": "Bucket",
"multi": true,
"name": "bucket",
"options": [],
"query": {
"query": "label_values(minio_api_requests_total, bucket)",
"refId": "Prometheus-Bucket-Variable"
},
"refresh": 2,
"regex": "",
"type": "query"
}
]
},
"time": {
"from": "now-24h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m"
]
},
"timezone": "browser",
"title": "MinIO AIStor - Lock Latency & Concurrency Diagnostic",
"version": 1
}