{ "uid": "rpi-disk", "title": "RPi — диск и бэкап OneDrive", "tags": [ "rpi", "smart", "backup" ], "timezone": "browser", "schemaVersion": 39, "refresh": "5m", "time": { "from": "now-7d", "to": "now" }, "editable": true, "templating": { "list": [ { "name": "instance", "type": "query", "datasource": { "type": "prometheus", "uid": "prometheus" }, "query": { "query": "label_values(smart_health_passed, instance)", "refId": "i" }, "refresh": 2, "current": {} }, { "name": "serial", "type": "query", "datasource": { "type": "prometheus", "uid": "prometheus" }, "query": { "query": "label_values(smart_health_passed{instance=\"$instance\"}, serial)", "refId": "s" }, "refresh": 2, "includeAll": true, "multi": true, "current": { "text": "All", "value": "$__all" } } ] }, "panels": [ { "type": "row", "title": "Диск — состояние SMART", "collapsed": false, "gridPos": { "x": 0, "y": 0, "w": 24, "h": 1 }, "id": 100, "panels": [] }, { "id": 1, "type": "stat", "title": "SMART health", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 0, "y": 1, "w": 6, "h": 4 }, "targets": [ { "refId": "A", "expr": "smart_health_passed{instance=\"$instance\",serial=~\"$serial\"}", "legendFormat": "{{model}}", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "mappings": [ { "type": "value", "options": { "1": { "text": "PASSED", "color": "green" }, "0": { "text": "FAILED", "color": "red" } } } ], "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "red" }, { "value": 1, "color": "green" } ] } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "background", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" }, "description": "Общий вердикт прошивки диска. FAILED — менять немедленно." }, { "id": 2, "type": "stat", "title": "Температура", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 6, "y": 1, "w": 4, "h": 4 }, "targets": [ { "refId": "A", "expr": "smart_temperature_celsius{instance=\"$instance\",serial=~\"$serial\"}", "legendFormat": "{{model}}", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "unit": "celsius", "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 50, "color": "orange" }, { "value": 55, "color": "red" } ] } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "background", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" } }, { "id": 3, "type": "stat", "title": "Переназначенные / ожидающие / нечитаемые сектора", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 10, "y": 1, "w": 10, "h": 4 }, "targets": [ { "refId": "A", "expr": "smart_attribute_raw{instance=\"$instance\",serial=~\"$serial\",id=~\"5|197|198\"}", "legendFormat": "{{name}}", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 1, "color": "red" } ] } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "background", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" }, "description": "Любое значение > 0 — диск начал сыпаться. Рост — срочно делать вторую копию." }, { "id": 4, "type": "stat", "title": "Последний самотест", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 20, "y": 1, "w": 4, "h": 4 }, "targets": [ { "refId": "A", "expr": "smart_selftest_last_passed{instance=\"$instance\",serial=~\"$serial\"}", "legendFormat": "", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "mappings": [ { "type": "value", "options": { "1": { "text": "OK", "color": "green" }, "0": { "text": "FAILED", "color": "red" } } }, { "type": "special", "options": { "match": "null", "result": { "text": "ещё не было", "color": "text" } } } ], "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "red" }, { "value": 1, "color": "green" } ] } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "background", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" }, "description": "Короткий — по субботам 03:00, длинный — 1-го числа 05:00 (smartd)." }, { "id": 5, "type": "stat", "title": "Наработка", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 0, "y": 5, "w": 4, "h": 4 }, "targets": [ { "refId": "A", "expr": "smart_power_on_hours{instance=\"$instance\",serial=~\"$serial\"}*3600", "legendFormat": "", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "unit": "s", "decimals": 1 }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "none", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" } }, { "id": 6, "type": "stat", "title": "Старт/стоп (раскрутки)", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 4, "y": 5, "w": 5, "h": 4 }, "targets": [ { "refId": "A", "expr": "smart_attribute_raw{instance=\"$instance\",serial=~\"$serial\",id=\"4\"}", "legendFormat": "", "instant": true, "range": false } ], "fieldConfig": { "defaults": {}, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "none", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" } }, { "id": 7, "type": "stat", "title": "Парковки головок", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 9, "y": 5, "w": 5, "h": 4 }, "targets": [ { "refId": "A", "expr": "smart_attribute_raw{instance=\"$instance\",serial=~\"$serial\",id=\"193\"}", "legendFormat": "", "instant": true, "range": false } ], "fieldConfig": { "defaults": {}, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "none", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" }, "description": "Типичный ресурс 2.5\" — ~300 000." }, { "id": 8, "type": "stat", "title": "CRC-ошибки USB", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 14, "y": 5, "w": 4, "h": 4 }, "targets": [ { "refId": "A", "expr": "smart_attribute_raw{instance=\"$instance\",serial=~\"$serial\",id=\"199\"}", "legendFormat": "", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 1, "color": "orange" } ] } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "background", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" }, "description": "Растут — кабель, USB-мост или питание." }, { "id": 9, "type": "stat", "title": "Диск сейчас", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 18, "y": 5, "w": 6, "h": 4 }, "targets": [ { "refId": "A", "expr": "smart_disk_standby{instance=\"$instance\",serial=~\"$serial\"}", "legendFormat": "", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "mappings": [ { "type": "value", "options": { "0": { "text": "крутится", "color": "blue" }, "1": { "text": "спит (standby)", "color": "purple" } } } ] }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "background", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" }, "description": "Спящий диск не будим: SMART-значения выше — с последнего опроса, когда он крутился." }, { "type": "row", "title": "Бэкап OneDrive", "collapsed": false, "gridPos": { "x": 0, "y": 9, "w": 24, "h": 1 }, "id": 109, "panels": [] }, { "id": 10, "type": "stat", "title": "С последнего успешного sync", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 0, "y": 10, "w": 6, "h": 4 }, "targets": [ { "refId": "A", "expr": "time() - backup_last_success_timestamp{instance=\"$instance\",job=\"backup_onedrive\"}", "legendFormat": "", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "unit": "s", "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 28800, "color": "orange" }, { "value": 43200, "color": "red" } ] }, "noValue": "ещё не было" }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "background", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" } }, { "id": 11, "type": "stat", "title": "С последней проверки целостности", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 6, "y": 10, "w": 6, "h": 4 }, "targets": [ { "refId": "A", "expr": "time() - backup_last_success_timestamp{instance=\"$instance\",job=\"backup_onedrive_verify\"}", "legendFormat": "", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "unit": "s", "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 648000.0, "color": "orange" }, { "value": 691200, "color": "red" } ] }, "noValue": "ещё не было" }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "background", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" } }, { "id": 12, "type": "stat", "title": "Код последнего прогона", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 12, "y": 10, "w": 6, "h": 4 }, "targets": [ { "refId": "A", "expr": "backup_last_exit_code{instance=\"$instance\"}", "legendFormat": "{{job}}", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 1, "color": "red" } ] }, "mappings": [ { "type": "value", "options": { "0": { "text": "OK" }, "2": { "text": "диск >90%" } } } ] }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "background", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" } }, { "id": 13, "type": "stat", "title": "Свежесть метрик", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 18, "y": 10, "w": 6, "h": 4 }, "targets": [ { "refId": "A", "expr": "time() - push_time_seconds{instance=\"$instance\"}", "legendFormat": "{{job}}", "instant": true, "range": false } ], "fieldConfig": { "defaults": { "unit": "s", "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 3600, "color": "orange" }, { "value": 10800, "color": "red" } ] } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "colorMode": "background", "graphMode": "none", "textMode": "value_and_name", "justifyMode": "center" }, "description": "Сколько назад малина последний раз пушила. Больше 3 ч — малина или канал лежат." }, { "type": "row", "title": "Динамика", "collapsed": false, "gridPos": { "x": 0, "y": 14, "w": 24, "h": 1 }, "id": 114, "panels": [] }, { "id": 14, "type": "timeseries", "title": "Температура", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 0, "y": 15, "w": 12, "h": 8 }, "targets": [ { "refId": "A", "expr": "smart_temperature_celsius{instance=\"$instance\",serial=~\"$serial\"}", "legendFormat": "{{model}}", "instant": false, "range": true } ], "fieldConfig": { "defaults": { "custom": { "lineWidth": 2, "fillOpacity": 10, "spanNulls": true, "thresholdsStyle": { "mode": "line" } }, "unit": "celsius", "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 55, "color": "red" } ] } }, "overrides": [] }, "options": {} }, { "id": 15, "type": "timeseries", "title": "Износ: прирост за сутки", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 12, "y": 15, "w": 12, "h": 8 }, "targets": [ { "refId": "A", "expr": "increase(smart_attribute_raw{instance=\"$instance\",serial=~\"$serial\",id=\"4\"}[1d])", "legendFormat": "раскрутки", "instant": false, "range": true }, { "refId": "B", "expr": "increase(smart_attribute_raw{instance=\"$instance\",serial=~\"$serial\",id=\"193\"}[1d])", "legendFormat": "парковки головок", "instant": false, "range": true } ], "fieldConfig": { "defaults": { "custom": { "lineWidth": 2, "fillOpacity": 10, "spanNulls": true } }, "overrides": [] }, "options": {}, "description": "Для прогноза ресурса: раскруток в сутки × 365 против запаса." }, { "id": 16, "type": "timeseries", "title": "Плохие сектора", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 0, "y": 23, "w": 12, "h": 8 }, "targets": [ { "refId": "A", "expr": "smart_attribute_raw{instance=\"$instance\",serial=~\"$serial\",id=~\"5|197|198\"}", "legendFormat": "{{name}}", "instant": false, "range": true } ], "fieldConfig": { "defaults": { "custom": { "lineWidth": 2, "fillOpacity": 10, "spanNulls": true } }, "overrides": [] }, "options": {} }, { "id": 17, "type": "timeseries", "title": "Заполнение диска бэкапа", "datasource": { "type": "prometheus", "uid": "prometheus" }, "gridPos": { "x": 12, "y": 23, "w": 12, "h": 8 }, "targets": [ { "refId": "A", "expr": "1 - backup_disk_avail_bytes{instance=\"$instance\"} / backup_disk_size_bytes{instance=\"$instance\"}", "legendFormat": "{{mountpoint}}", "instant": false, "range": true } ], "fieldConfig": { "defaults": { "custom": { "lineWidth": 2, "fillOpacity": 10, "spanNulls": true, "thresholdsStyle": { "mode": "line" } }, "unit": "percentunit", "min": 0, "max": 1, "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 0.9, "color": "red" } ] } }, "overrides": [] }, "options": {} } ] }