feat: add disks to monitoring
This commit is contained in:
@@ -44,12 +44,16 @@ let
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Resolve symlink to get actual device
|
# Resolve symlink to get actual device (needed for hdparm/smartctl)
|
||||||
device=$(readlink -f "$disk")
|
device=$(readlink -f "$disk")
|
||||||
short_name=$(basename "$device")
|
|
||||||
|
|
||||||
# Extract serial from disk ID for labels (part after last underscore)
|
# Extract model+serial from disk-by-id path for stable labeling
|
||||||
serial=$(basename "$disk" | sed 's/.*_//')
|
# ata-ST18000NM000J-2TV103_ZR52TBSB → ST18000NM000J-2TV103-ZR52TBSB
|
||||||
|
# nvme-KIOXIA-EXCERIA_PLUS_G3_SSD_7FJKS1MAZ0E7 → KIOXIA-EXCERIA_PLUS_G3_SSD-7FJKS1MAZ0E7
|
||||||
|
disk_id=$(basename "$disk")
|
||||||
|
serial=$(echo "$disk_id" | sed 's/.*_//')
|
||||||
|
model=$(echo "$disk_id" | sed 's/^[^-]*-//; s/_[^_]*$//')
|
||||||
|
short_name="$model-$serial"
|
||||||
|
|
||||||
# Check power state without waking disk
|
# Check power state without waking disk
|
||||||
power_state=$(${pkgs.hdparm}/bin/hdparm -C "$device" 2>/dev/null | grep -oP '(standby|active/idle|active|idle)' | head -1 || echo "unknown")
|
power_state=$(${pkgs.hdparm}/bin/hdparm -C "$device" 2>/dev/null | grep -oP '(standby|active/idle|active|idle)' | head -1 || echo "unknown")
|
||||||
|
|||||||
@@ -1,48 +1,48 @@
|
|||||||
pyload-extraction-passwords: ENC[AES256_GCM,data:M4ONmZXoSg==,iv:9+NEibTSoJwZ2uLJZZzQtJHMNtR084CCyBXq7ORqxI0=,tag:QE2QMlxycK+OJWgiLWKlRA==,type:str]
|
pyload-extraction-passwords: ENC[AES256_GCM,data:rYlrVlEpPw0ZH9MgH3zrWk9vERGN9BAiq7Luspxlf6gYFZvRfK/McA==,iv:+bVb7Km4e8x1jK3hB2aULWPfNlJzBTrOYvfpIYcLAh8=,tag:zgIQ8nG8CpI8+E2gMthkJw==,type:str]
|
||||||
cyberghost-auth: ENC[AES256_GCM,data:ZX+vfTcIH/8QMOIpIFdYV71sYBS5MA==,iv:4TeDcMs+lz7N6myLwZ9pG8mwzDzjWBpyi2CpsUtcaoc=,tag:RM24rTag4RfgPWKfrX3fnw==,type:str]
|
cyberghost-auth: ENC[AES256_GCM,data:v9RP+XTZv6llTaIiE7EzEgtNxJyCBw==,iv:hPlJ8UvAtlOTfWikd4NxcfkB8IA3EMzURWkjl0tYC1E=,tag:hEbN6u2QFt1hgw0SioXu2g==,type:str]
|
||||||
cyberghost-ca: ENC[AES256_GCM,data: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,iv:inCj141jhzAAUXPHYPyfWV34XLOs3IzZDu7F86zTCyA=,tag:r5Gg4q1B8SammluvIi+nxA==,type:str]
|
cyberghost-ca: ENC[AES256_GCM,data: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,iv:Vr9+Rqu+TR7AT4mdPFjDwjId0jxRD9GtFn/j4HRS8po=,tag:W9KGh26VKhQOcBwIel1lXw==,type:str]
|
||||||
cyberghost-cert: ENC[AES256_GCM,data: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,iv:TvtZ8/eeeUwMq07nl+fx7ixkifN06shxcyV7vIs5zvU=,tag:fZXmrkIvQ1ZH3aqkkfLLIQ==,type:str]
|
cyberghost-cert: ENC[AES256_GCM,data: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,iv:8QIh1mro4XQRVNA3jdpEYwQduIHQANvx0EDd4+jXGuo=,tag:UWxbmmtvDnU61YyKV5OgNw==,type:str]
|
||||||
cyberghost-key: ENC[AES256_GCM,data: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,iv:moUhCD9vW2fREB1hXGyP3ha4PEzXWhbW3kI0x1KWxVA=,tag:UIW2trbJ2g6nkU7IfI06fA==,type:str]
|
cyberghost-key: ENC[AES256_GCM,data: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,iv:coMt1mZj0pVnNEfxStG6NCg6BcC6jloahDWmBTu9ASs=,tag:V2PGkbP2RCHpWoWHeA4CBA==,type:str]
|
||||||
filebot-license: ENC[AES256_GCM,data:oOVGag9rzJkgPb7Sic+nVg6n//3E7o0BLamF5ugXCdKYVoEw1koZWrB8kVwAmGAmzgpT98gMmWFvej5eZBlTR1CDV/ZFJHE5nr+1b7RhcVrzxVfkanpr6JOu3JJ2TDx+z6+JyuZsoHQe6zGIlyz1DO1/+tgYChEInZB+apFvbEsKzwT92yQztaJ2TivjCwcxhjZR9lnFTQWvTsZZ8Fatwi03FsbHNkz5UdlKZ+N8yFJoKc7a2+UrnV91ClfGpvOpaGfmgls7Uen69LPb2TLujhc1W+WBOwvzgWrrG4+KF+4yMtJ0apVJd5iBKq2zZwZo6EdC8Ynv8DqJOhTrjScoVCZ+xPEmcZGuOa0y1bEFYcDO31Y8iyVEUpfMfyyjFIWIm6IGkPDP3tWQWAQIIhlsYbRipKKN7aCaetg/ib33q2M0M1XFME2IBVEZMyEJ/PMt+qi0CUJqx+S2nxqEB8jNnJTXc+ANJfiJ1YdgtG67wLCdzrDTkDPT/HEIvTUumwWSLdZnXvfqvB4f5ZO20vPN8S66EgGZeWU3x/HXqV6MSQSLOOtySP3kY3gn/hSWIo9JB+63BEgdI1WvqlkA4wBB7kHuA6YqBR9ofODUt3ae7X7qbVcimGN9fRBtKny5u9A04/+gJ9BhWsaQruX2EPvIb/evxmYqFvg+suvBPu50KExmdjXPJJsRgR6dwYyxXwVOtbrFhKIK17e7s3+DyXrYWhMGOfUOpl4ew377E4YHjLBm1r5WtU46NfK4TA1rDVTSlBXOfV6Hmhs3ThUhNJ3sgHzrrQiEZcC0Of+4RBLhKNMTgOO39Tjz48BAYObBxw2F3oiLT9RBXFAz5ebwxzf6ciBwjEi4Bf76rIcE2RTdiA90J4NsDTsFNoknEIxqvHE=,iv:dbmC8UBE1dwCBSWcYg94mBvdq6Xi+nBweMWlvvnxN9k=,tag:UQZ6rlM3loJg4vxav7dg+A==,type:str]
|
filebot-license: ENC[AES256_GCM,data:RM7VFeecAEN/vcMidDgQU2ghD3ujUax4XXS/1ilDlKZ5WeimNRDhdvx/cJyGsXpcR0vsiqhJhVVX8/0+4IVnFgyVd6MSFwdWf09mUEqB0TdjvHpn7InIuD0N9K6uQUWDUntyk+K6QkTVIvvT3dy4dU/evbhySCyccODvQdNFPFYCPDXb3dQvQpQaYU3EYVJhgWs8ZCYxRTVIBbzX71jjaSPHZDm+pdzC+CC2Wc8Ro8mCWqkdGKUrgMOxFeeghMkbj+QMg+B1yzuCUdFGIvNQKdlJzVjKjSpAgu8PhwxpPP6DqTP0oPtjyT9ZkUS982RdgykPSaIy2z2glfgKkrANCkQVvLGlG487tGhiRo4tzSyG9G/aExWrHYsRBroWsLMLX7Ca+l7DnUhyXRPVMdWWf8oQtunouh5K+oCexg14fKXUAexezKj1elyxGy/Qz2hIOeVkNzdKVTW4TTYDyRukFDvc4LN0DkfyXYGYM70KwEVyJO7lNmHdOIX4gFU5Kzcl1RRaDvaq6oqpNyW8q5WOi/JbOnbNP1+o8wb3iGAmh3cMr8Mu+2o/Z5rf+Q5WSbtiB59N1vqFrc6wz8CRPpyp/GTkFhuepjabWAPSG889H51u9+MRZhGyP1N6AGs8Vqjrk5f+qg46Fg3p9R2r6RL2zNrcRE4VBR9nLgVDyybvw4ZvUGUKbVyuT00TwN3NdlNahPd1OsXczQbKx3//ThwYEQcRfHo1wRFw7aZT8atGhCG9UUuSJTS8boiI6HbnL0NjTttLeTlTeoCpTrwaFzN2igqLVFMylic/xOAnmXY1kX7lVV5m+djLIQpdHZXJbM4TXTKu6fozVTSgr5fPzI+C1SXKGtltOX5QUQ5PmP8KqJMNtR+W298u0AKe6RbmR/s=,iv:2AlDfURrGXEs8tjpi5E2X7HSUXFVEGPf3hzpc84jE6I=,tag:+RwlLLHNe5Fkf3Np6cxw/Q==,type:str]
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age14grjcxaq4h55yfnjxvnqhtswxhj9sfdcvyas4lwvpa8py27pjy2sv3g6v7
|
- recipient: age14grjcxaq4h55yfnjxvnqhtswxhj9sfdcvyas4lwvpa8py27pjy2sv3g6v7
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvZW5uSzROdXE0R2VLOGlG
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVbGZhQ0J3bW5Pa3VFck5R
|
||||||
WXhTVW0rOGt0a1RRQzZaSlNNOWgydEN0cGxZClA0K0JnRnVmNTM3TGVRL25xT2pH
|
ODBWUjA0Qm9TZUNPaEdEMDR1OXMxbFloQlFnClQ2YUlacGlTMnl2TCs1TDAwb0pL
|
||||||
aTFld0ZDRERvb2NrVkJkbldWemtUQ0kKLS0tIENmTktaK2tJZmNCWWtPTDR4Q2JG
|
NmFLNVA5VkJDbzBqUE1LbXlKR3NDV2MKLS0tIHNnYmZ4aTREdW1wdXAzbTZ4U2tJ
|
||||||
MTY4dW52aXYzQmhOMjJnYnhCZXZxSzQKVaw9iZSG3MX4a8qfPqeN4VuEjHXX8L8J
|
RDJHZFkxRG9YRE43NURBa2dub0xzdE0KdukLUA5deF7z4jpVWb/JkkB/0PrCLujX
|
||||||
hn9nk5yHIOYjhmB8y1+Zoe/12+w4qHHF/yudnU+9oJCEcOvafhK83A==
|
ycweOSdwDe/ceME9rnckFISyQ++4g2aRVvUwaKl5thu5cl9p+2MDMQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1exny8unxynaw03yu8ppahu5z28uermghr8ag34e7kdqnaduq9stsyettzz
|
- recipient: age1exny8unxynaw03yu8ppahu5z28uermghr8ag34e7kdqnaduq9stsyettzz
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVZy9vTVRIdElJZ3R4ckNN
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoeDdHNXU1cGRXaERQZ2Rt
|
||||||
aXhCS216Q0pjSGVERXRVVVE0Tng2cmhXZUhnCjliWEROcjh0NU1VUlpXNmtuOGxr
|
WGNtSHZRTTZYNmJ6WE5WMXkwQUFCcXcyeWpBCitPeHlJUVRYb2dlZDd4S3hqMmFP
|
||||||
cjNyeFFRNVRsUCs4emlHaVd0b0lzME0KLS0tIGw4ZE11M01uQjhUMUJNMnlyNXBM
|
T1F1bUFpOGZTclBYazlYeW1FYlVSZk0KLS0tIDRUeEdlRUdjdjZnSmlBR1VYb0s3
|
||||||
VkREd3FvRUVwOUNSa1lMMUZQdU5aK0EK/RUCQuPK/mgFfjqStVapOD/XpTVe63OY
|
Q2VDbnMvVHlVT1JPR0xOZ0psRVY4cGMK+hTtRCa1DdmmxrKi/M1PF6izWHhkFnIl
|
||||||
9z9I3LLD54OlkQFyK1oPXxnMmjo0QezA+30E6rcxKERoe5N55ffxUA==
|
3P1nR7qDtVcnV4NrAp0IyY0NN+F3JgMqK1u9CoBpNtaUifZk67oqew==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1v6p8dan2t3w9h94fz4flldl32082j3s9x6zqq7u5j66keth9aphsd6pvch
|
- recipient: age1v6p8dan2t3w9h94fz4flldl32082j3s9x6zqq7u5j66keth9aphsd6pvch
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNNDJzbGRGTC9ibEYwb0VE
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGZXhGZ01nNHg2YS9iOTlq
|
||||||
Z1BXcU42YmsxTTMvQzZUYmpWM29PaDFTeFZBCkV0MHhKdjdLaitGZ0RGRHdnQlI2
|
aW5zMnFyaGF5U2xhKzhMM3NPVFI4QXhxUmpzCnpNL25wVkgyMEhKcXUwZlc1T2pZ
|
||||||
KysvSk0rbS9PazAzOVRoSjNQSEordEEKLS0tIFlQNnJ0a1dzbDR5NVVkM3JxMzVq
|
b3RtWGJXVTJjWXdId0xUQ3ltYTgwUFUKLS0tIEZ5cjV3OVh2a1g5bGk3TzdDMEdn
|
||||||
bjBGUW5SQ3lVMW9BV3lzVklISHVrOFkKkkQTxWMLVzt6XGdu+WdphYigSzeeoIWr
|
S3FnSUFvZG95ZDk0d1lsdFhSclZMN1kKWJ/G7punUyloNy1rPk0FW8lL3A1xojpy
|
||||||
ImJuy1oXVd69XK4KUkXOrg4XfeKXXjslAHTVVI0+PFnDaM4SBC1h3Q==
|
lEdKj2GK5ml9HAi/aRb3AmSyBXnpjyMAX6piCa3a+ixzCve/ttwjMA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1x3elhtccp4u8ha5ry32juj9fkpg0qg7qqx4gduuehgwwnnhcxp8s892hek
|
- recipient: age1x3elhtccp4u8ha5ry32juj9fkpg0qg7qqx4gduuehgwwnnhcxp8s892hek
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZTXdqdVd6ZmxtYSsrWDA0
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHOFI0Y3U3S3NTUXZZRnBl
|
||||||
WWtzZEhuVWxCNkZwbjJJcDBSU0t0cEpjRkRJCkp4TkRqeUJiVnBFS0pkdEM3eEpx
|
U2V2Y1pnQ0lzb1RFZkUrcGhERTk2bUpIWlNVCnY4WHpQemdoczNtN1VHa095ai9N
|
||||||
K2JlN2lSQ3NWdzd1R1NoYTVmSzByajQKLS0tIFB4ZHA1WG1DU29CbWlTSlAxdDA2
|
TEltU1c0cDNRWDVjTXFKVHp2a1M1QUEKLS0tIGF6VzNCait4QU1MdGI0T2x4dU0v
|
||||||
Um9vMWRwQWk4VGF6eExMU2FvMjJSblUK/XiDETNk97IvN9A3yP+sfRxQMO2bXXdm
|
aWsyT0hTWUU1N3RxUStRditOWFNJT0UKtCOhjZ1q0FaTZekXUh3JpLxL+K9+I6x+
|
||||||
GDODc3E65x7Gftbvu44KS9UARFPzj32W+JhE0k/C+ihECUzz3ChyLg==
|
WxAKrhw9vpCiUs2UQkr+xYh8lwIR+qVpcDn6LRlq0WqW1PhypR8L2g==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-11-30T18:50:08Z"
|
lastmodified: "2025-12-04T22:54:18Z"
|
||||||
mac: ENC[AES256_GCM,data:A7cQQgB6RMe3JdGSv7SjHrD9eoEY86ElfjIUp2PtYdzDiQfrxTsJf962P/IRRWdMn7cCwQDNwxJkiZCRZ7lv/iDznvibC+0FGkGIiFvbkIK88hr7hqvpzf/CQOpNvyvXfJb1Y13R00mSfNzJw7xo98IjZYlsLAAFxpapCbUV7Bc=,iv:/Gmq6AnMGVy7QKjvruFs8c3WcbGxW61P7VjYT2u2ooc=,tag:BT9gv7ebsWEpSARCI97rqg==,type:str]
|
mac: ENC[AES256_GCM,data:mIcIvHI6RsXMGJ0W6YgtpNLtXd4xOF2PelnGcCCR/EhyVHr6sTGItkvlzWpPjGjZ1t4mgCS8J9t228BU6OIBW/liOAA+1G8P09PNq/FKRnQuXUz3Q1aLawtk6gTWMdkxQ01Wr7P+nWzFcZ4Qi9TktYS0Omu7l+JmUrd0KoY4xdI=,iv:WcquzmjFd6fXj59oRwYMjYnFegn9eVw+vLKDzpf0lw0=,tag:QY6sEBkzT3HhWXQtsaKF3Q==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.11.0
|
version: 3.11.0
|
||||||
|
|||||||
17
hosts/web-arm/modules/grafana/dashboards/default.nix
Normal file
17
hosts/web-arm/modules/grafana/dashboards/default.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{ lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
smartDashboard = import ./smart-dashboard.nix { inherit lib pkgs; };
|
||||||
|
dashboardDir = pkgs.linkFarm "grafana-dashboards" [
|
||||||
|
{ name = "smart.json"; path = smartDashboard; }
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.grafana.provision.dashboards.settings = {
|
||||||
|
apiVersion = 1;
|
||||||
|
providers = [{
|
||||||
|
name = "nix-dashboards";
|
||||||
|
type = "file";
|
||||||
|
options.path = dashboardDir;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
}
|
||||||
463
hosts/web-arm/modules/grafana/dashboards/smart-dashboard.nix
Normal file
463
hosts/web-arm/modules/grafana/dashboards/smart-dashboard.nix
Normal file
@@ -0,0 +1,463 @@
|
|||||||
|
{ lib, pkgs }:
|
||||||
|
let
|
||||||
|
datasourceUid = "vm-datasource-uid";
|
||||||
|
|
||||||
|
# Helper to create a panel with common defaults
|
||||||
|
mkPanel = { id, title, type, gridPos, targets, options ? { }, fieldConfig ? { }, ... }@args:
|
||||||
|
{
|
||||||
|
inherit id title type gridPos targets;
|
||||||
|
datasource = { uid = datasourceUid; type = "prometheus"; };
|
||||||
|
options = options;
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = fieldConfig.defaults or { };
|
||||||
|
overrides = fieldConfig.overrides or [ ];
|
||||||
|
};
|
||||||
|
} // (builtins.removeAttrs args [ "id" "title" "type" "gridPos" "targets" "options" "fieldConfig" ]);
|
||||||
|
|
||||||
|
# Dashboard definition
|
||||||
|
dashboard = {
|
||||||
|
uid = "smart-disk-health";
|
||||||
|
title = "S.M.A.R.T Disk Health";
|
||||||
|
description = "S.M.A.R.T metrics and RAID array status";
|
||||||
|
tags = [ "disk" "smart" "storage" "nas" ];
|
||||||
|
timezone = "browser";
|
||||||
|
editable = false;
|
||||||
|
refresh = "5m";
|
||||||
|
schemaVersion = 39;
|
||||||
|
version = 1;
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
templating.list = [
|
||||||
|
{
|
||||||
|
name = "host";
|
||||||
|
label = "Host";
|
||||||
|
type = "query";
|
||||||
|
datasource = { uid = datasourceUid; type = "prometheus"; };
|
||||||
|
query = "label_values(smart_health_passed, instance)";
|
||||||
|
regex = "";
|
||||||
|
sort = 1;
|
||||||
|
refresh = 1;
|
||||||
|
includeAll = true;
|
||||||
|
multi = false;
|
||||||
|
current = { selected = true; text = "All"; value = "$__all"; };
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# Panels
|
||||||
|
panels = [
|
||||||
|
# === OVERVIEW ROW ===
|
||||||
|
{
|
||||||
|
id = 1;
|
||||||
|
type = "row";
|
||||||
|
title = "Overview";
|
||||||
|
collapsed = false;
|
||||||
|
gridPos = { x = 0; y = 0; w = 24; h = 1; };
|
||||||
|
panels = [ ];
|
||||||
|
}
|
||||||
|
|
||||||
|
# Alert Status - Shows firing disk alerts
|
||||||
|
{
|
||||||
|
id = 5;
|
||||||
|
title = "Alert Status";
|
||||||
|
type = "alertlist";
|
||||||
|
gridPos = { x = 0; y = 1; w = 6; h = 5; };
|
||||||
|
options = {
|
||||||
|
alertInstanceLabelFilter = "";
|
||||||
|
alertName = "Disk";
|
||||||
|
dashboardAlerts = false;
|
||||||
|
groupBy = [ ];
|
||||||
|
groupMode = "default";
|
||||||
|
maxItems = 20;
|
||||||
|
sortOrder = 1;
|
||||||
|
stateFilter = {
|
||||||
|
"error" = true;
|
||||||
|
firing = true;
|
||||||
|
noData = false;
|
||||||
|
normal = false;
|
||||||
|
pending = false;
|
||||||
|
};
|
||||||
|
viewMode = "list";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
# Health Status - Stat panel
|
||||||
|
(mkPanel {
|
||||||
|
id = 2;
|
||||||
|
title = "Disk Health Status";
|
||||||
|
type = "stat";
|
||||||
|
gridPos = { x = 6; y = 1; w = 6; h = 5; };
|
||||||
|
targets = [{
|
||||||
|
expr = ''smart_health_passed{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{device}}";
|
||||||
|
refId = "A";
|
||||||
|
}];
|
||||||
|
options = {
|
||||||
|
reduceOptions = { values = false; calcs = [ "lastNotNull" ]; fields = ""; };
|
||||||
|
orientation = "horizontal";
|
||||||
|
textMode = "auto";
|
||||||
|
colorMode = "background";
|
||||||
|
graphMode = "none";
|
||||||
|
};
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = {
|
||||||
|
mappings = [
|
||||||
|
{ type = "value"; options."1" = { text = "PASSED"; color = "green"; index = 0; }; }
|
||||||
|
{ type = "value"; options."0" = { text = "FAILED"; color = "red"; index = 1; }; }
|
||||||
|
];
|
||||||
|
thresholds = {
|
||||||
|
mode = "absolute";
|
||||||
|
steps = [
|
||||||
|
{ color = "red"; value = null; }
|
||||||
|
{ color = "green"; value = 1; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# Temperature Gauge
|
||||||
|
(mkPanel {
|
||||||
|
id = 3;
|
||||||
|
title = "Disk Temperatures";
|
||||||
|
type = "gauge";
|
||||||
|
gridPos = { x = 12; y = 1; w = 6; h = 8; };
|
||||||
|
targets = [{
|
||||||
|
expr = ''smart_temperature_celsius{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{device}}";
|
||||||
|
refId = "A";
|
||||||
|
}];
|
||||||
|
options = {
|
||||||
|
reduceOptions = { values = false; calcs = [ "lastNotNull" ]; fields = ""; };
|
||||||
|
orientation = "auto";
|
||||||
|
showThresholdLabels = false;
|
||||||
|
showThresholdMarkers = true;
|
||||||
|
};
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = {
|
||||||
|
unit = "celsius";
|
||||||
|
min = 0;
|
||||||
|
max = 70;
|
||||||
|
thresholds = {
|
||||||
|
mode = "absolute";
|
||||||
|
steps = [
|
||||||
|
{ color = "green"; value = null; }
|
||||||
|
{ color = "yellow"; value = 45; }
|
||||||
|
{ color = "red"; value = 55; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# RAID Status - Stat panel
|
||||||
|
(mkPanel {
|
||||||
|
id = 4;
|
||||||
|
title = "RAID Array Status";
|
||||||
|
type = "stat";
|
||||||
|
gridPos = { x = 18; y = 1; w = 6; h = 8; };
|
||||||
|
targets = [{
|
||||||
|
expr = ''mdadm_array_state{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{array}}";
|
||||||
|
refId = "A";
|
||||||
|
}];
|
||||||
|
options = {
|
||||||
|
reduceOptions = { values = false; calcs = [ "lastNotNull" ]; fields = ""; };
|
||||||
|
orientation = "horizontal";
|
||||||
|
textMode = "auto";
|
||||||
|
colorMode = "background";
|
||||||
|
graphMode = "none";
|
||||||
|
};
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = {
|
||||||
|
mappings = [
|
||||||
|
{ type = "value"; options."1" = { text = "Healthy"; color = "green"; index = 0; }; }
|
||||||
|
{ type = "value"; options."0" = { text = "Degraded"; color = "red"; index = 1; }; }
|
||||||
|
];
|
||||||
|
thresholds = {
|
||||||
|
mode = "absolute";
|
||||||
|
steps = [
|
||||||
|
{ color = "red"; value = null; }
|
||||||
|
{ color = "green"; value = 1; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# Sector Health Table - Promoted to overview for visibility
|
||||||
|
(mkPanel {
|
||||||
|
id = 13;
|
||||||
|
title = "Sector Health";
|
||||||
|
type = "table";
|
||||||
|
gridPos = { x = 0; y = 6; w = 12; h = 4; };
|
||||||
|
targets = [
|
||||||
|
{
|
||||||
|
expr = ''smart_reallocated_sector_ct{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{device}}";
|
||||||
|
refId = "A";
|
||||||
|
format = "table";
|
||||||
|
instant = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
expr = ''smart_current_pending_sector{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{device}}";
|
||||||
|
refId = "B";
|
||||||
|
format = "table";
|
||||||
|
instant = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
expr = ''smart_offline_uncorrectable{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{device}}";
|
||||||
|
refId = "C";
|
||||||
|
format = "table";
|
||||||
|
instant = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
options = {
|
||||||
|
showHeader = true;
|
||||||
|
cellHeight = "sm";
|
||||||
|
};
|
||||||
|
transformations = [
|
||||||
|
{ id = "merge"; options = { }; }
|
||||||
|
{
|
||||||
|
id = "organize";
|
||||||
|
options = {
|
||||||
|
excludeByName = { Time = true; __name__ = true; instance = true; job = true; serial = true; };
|
||||||
|
renameByName = {
|
||||||
|
device = "Device";
|
||||||
|
"Value #A" = "Reallocated Sectors";
|
||||||
|
"Value #B" = "Pending Sectors";
|
||||||
|
"Value #C" = "Offline Uncorrectable";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = {
|
||||||
|
thresholds = {
|
||||||
|
mode = "absolute";
|
||||||
|
steps = [
|
||||||
|
{ color = "green"; value = null; }
|
||||||
|
{ color = "yellow"; value = 1; }
|
||||||
|
{ color = "red"; value = 10; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
custom = { displayMode = "color-background-solid"; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# === DETAILED METRICS ROW ===
|
||||||
|
{
|
||||||
|
id = 10;
|
||||||
|
type = "row";
|
||||||
|
title = "Detailed Metrics";
|
||||||
|
collapsed = false;
|
||||||
|
gridPos = { x = 0; y = 10; w = 24; h = 1; };
|
||||||
|
panels = [ ];
|
||||||
|
}
|
||||||
|
|
||||||
|
# Temperature Time Series
|
||||||
|
(mkPanel {
|
||||||
|
id = 11;
|
||||||
|
title = "Temperature Over Time";
|
||||||
|
type = "timeseries";
|
||||||
|
gridPos = { x = 0; y = 11; w = 12; h = 8; };
|
||||||
|
targets = [{
|
||||||
|
expr = ''smart_temperature_celsius{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{device}}";
|
||||||
|
refId = "A";
|
||||||
|
}];
|
||||||
|
options = {
|
||||||
|
legend = { displayMode = "list"; placement = "bottom"; showLegend = true; };
|
||||||
|
tooltip = { mode = "multi"; sort = "desc"; };
|
||||||
|
};
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = {
|
||||||
|
unit = "celsius";
|
||||||
|
custom = {
|
||||||
|
drawStyle = "line";
|
||||||
|
lineInterpolation = "smooth";
|
||||||
|
fillOpacity = 10;
|
||||||
|
pointSize = 5;
|
||||||
|
showPoints = "auto";
|
||||||
|
};
|
||||||
|
thresholds = {
|
||||||
|
mode = "absolute";
|
||||||
|
steps = [
|
||||||
|
{ color = "green"; value = null; }
|
||||||
|
{ color = "yellow"; value = 45; }
|
||||||
|
{ color = "red"; value = 55; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# Power On Hours
|
||||||
|
(mkPanel {
|
||||||
|
id = 12;
|
||||||
|
title = "Power On Hours";
|
||||||
|
type = "stat";
|
||||||
|
gridPos = { x = 12; y = 11; w = 12; h = 8; };
|
||||||
|
targets = [{
|
||||||
|
expr = ''smart_power_on_hours{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{device}}";
|
||||||
|
refId = "A";
|
||||||
|
}];
|
||||||
|
options = {
|
||||||
|
reduceOptions = { values = false; calcs = [ "lastNotNull" ]; fields = ""; };
|
||||||
|
orientation = "horizontal";
|
||||||
|
textMode = "value_and_name";
|
||||||
|
colorMode = "none";
|
||||||
|
graphMode = "none";
|
||||||
|
};
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = {
|
||||||
|
unit = "h";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# === RAID DETAILS ROW ===
|
||||||
|
{
|
||||||
|
id = 20;
|
||||||
|
type = "row";
|
||||||
|
title = "RAID Details";
|
||||||
|
collapsed = false;
|
||||||
|
gridPos = { x = 0; y = 19; w = 24; h = 1; };
|
||||||
|
panels = [ ];
|
||||||
|
}
|
||||||
|
|
||||||
|
# RAID Devices
|
||||||
|
(mkPanel {
|
||||||
|
id = 21;
|
||||||
|
title = "RAID Array Devices";
|
||||||
|
type = "stat";
|
||||||
|
gridPos = { x = 0; y = 20; w = 12; h = 4; };
|
||||||
|
targets = [
|
||||||
|
{
|
||||||
|
expr = ''mdadm_array_devices_active{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{array}} Active";
|
||||||
|
refId = "A";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
expr = ''mdadm_array_devices_total{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{array}} Total";
|
||||||
|
refId = "B";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
options = {
|
||||||
|
reduceOptions = { values = false; calcs = [ "lastNotNull" ]; fields = ""; };
|
||||||
|
orientation = "horizontal";
|
||||||
|
textMode = "value_and_name";
|
||||||
|
colorMode = "value";
|
||||||
|
graphMode = "none";
|
||||||
|
};
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = {
|
||||||
|
unit = "short";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# UDMA CRC Errors
|
||||||
|
(mkPanel {
|
||||||
|
id = 22;
|
||||||
|
title = "UDMA CRC Errors";
|
||||||
|
type = "timeseries";
|
||||||
|
gridPos = { x = 12; y = 20; w = 12; h = 4; };
|
||||||
|
targets = [{
|
||||||
|
expr = ''smart_udma_crc_error_count{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{device}}";
|
||||||
|
refId = "A";
|
||||||
|
}];
|
||||||
|
options = {
|
||||||
|
legend = { displayMode = "list"; placement = "bottom"; showLegend = true; };
|
||||||
|
tooltip = { mode = "multi"; sort = "desc"; };
|
||||||
|
};
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = {
|
||||||
|
unit = "short";
|
||||||
|
custom = {
|
||||||
|
drawStyle = "line";
|
||||||
|
lineInterpolation = "stepAfter";
|
||||||
|
fillOpacity = 0;
|
||||||
|
pointSize = 5;
|
||||||
|
showPoints = "auto";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# Last Update Timestamp
|
||||||
|
(mkPanel {
|
||||||
|
id = 30;
|
||||||
|
title = "Last Metrics Update";
|
||||||
|
type = "stat";
|
||||||
|
gridPos = { x = 0; y = 24; w = 6; h = 5; };
|
||||||
|
targets = [{
|
||||||
|
expr = ''time() - disk_metrics_last_update{instance=~"$host"}'';
|
||||||
|
legendFormat = "Age";
|
||||||
|
refId = "A";
|
||||||
|
}];
|
||||||
|
options = {
|
||||||
|
reduceOptions = { values = false; calcs = [ "lastNotNull" ]; fields = ""; };
|
||||||
|
orientation = "horizontal";
|
||||||
|
textMode = "value";
|
||||||
|
colorMode = "value";
|
||||||
|
graphMode = "none";
|
||||||
|
};
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = {
|
||||||
|
unit = "s";
|
||||||
|
thresholds = {
|
||||||
|
mode = "absolute";
|
||||||
|
steps = [
|
||||||
|
{ color = "green"; value = null; }
|
||||||
|
{ color = "yellow"; value = 1800; }
|
||||||
|
{ color = "red"; value = 3600; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# Device Activity Status
|
||||||
|
(mkPanel {
|
||||||
|
id = 31;
|
||||||
|
title = "Device Activity";
|
||||||
|
type = "stat";
|
||||||
|
gridPos = { x = 6; y = 24; w = 18; h = 5; };
|
||||||
|
targets = [{
|
||||||
|
expr = ''smart_device_active{instance=~"$host"}'';
|
||||||
|
legendFormat = "{{device}}";
|
||||||
|
refId = "A";
|
||||||
|
}];
|
||||||
|
options = {
|
||||||
|
reduceOptions = { values = false; calcs = [ "lastNotNull" ]; fields = ""; };
|
||||||
|
orientation = "horizontal";
|
||||||
|
textMode = "auto";
|
||||||
|
colorMode = "background";
|
||||||
|
graphMode = "none";
|
||||||
|
};
|
||||||
|
fieldConfig = {
|
||||||
|
defaults = {
|
||||||
|
mappings = [
|
||||||
|
{ type = "value"; options."1" = { text = "Active"; color = "green"; index = 0; }; }
|
||||||
|
{ type = "value"; options."0" = { text = "Standby"; color = "blue"; index = 1; }; }
|
||||||
|
];
|
||||||
|
thresholds = {
|
||||||
|
mode = "absolute";
|
||||||
|
steps = [
|
||||||
|
{ color = "blue"; value = null; }
|
||||||
|
{ color = "green"; value = 1; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in
|
||||||
|
pkgs.writeText "smart-dashboard.json" (builtins.toJSON dashboard)
|
||||||
@@ -36,6 +36,8 @@ in
|
|||||||
./datasources/victoriametrics.nix
|
./datasources/victoriametrics.nix
|
||||||
./datasources/loki.nix
|
./datasources/loki.nix
|
||||||
|
|
||||||
|
./dashboards/default.nix
|
||||||
|
|
||||||
./alert-cleanup.nix
|
./alert-cleanup.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user