| # Copyright (c) 2014 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| description "Report smart metrics once per boot" |
| author "chromium-os-dev@chromium.org" |
| |
| start on started system-services |
| |
| script |
| # Report disk health from SMART (S.M.A.R.T.) parameters. |
| # usage: |
| # report_smart_metrics <uncorrectable-errors> <transfer-errors> |
| report_smart_metrics() { |
| metrics_client Platform.SmartUncorrectableErrors $1 1 1000000 20 |
| metrics_client Platform.SmartTransferErrors $2 1 1000000 20 |
| } |
| |
| GET_SMART_ERRORS=' |
| BEGIN { uncorr = 0; txfer = 0 } |
| $2 == "Reported_Uncorrect" { uncorr = $10 } |
| $2 == "UDMA_CRC_Error_Count" { txfer = $10 } |
| END { print uncorr, txfer } |
| ' |
| report_smart_metrics $( |
| smartctl -A $(rootdev -s -d) | awk "$GET_SMART_ERRORS") |
| end script |