Performance Co-Pilot (PCP) can be used on Fedora to continuously monitor drive health via SMART metrics, NVMe error logs, and Seagate FARM telemetry — going beyond one-time snapshots. The guide covers installing the SMART PMDA, querying key metrics (temperature, wear level, reallocated sectors), using WWID-based drive tracking to survive device renames, setting up automated alerts with pmie, logging historical data with pmlogger, and building a Grafana dashboard with the grafana-pcp plugin. Ready-to-import Grafana dashboard JSON and pmie alerting rules are provided.
Table of contents
PrerequisitesWhat is SMART?Installing and enabling PCP with the SMART PMDAQuerying SMART metricsWWID-based drive trackingNVMe error log collectionFARM log support for Seagate drivesVisualizing with GrafanaAutomated alerting with pmieContinuous monitoring with pmloggerConclusionQuestions this post answers
What does NVMe percentage_used metric mean and when should I replace my drive?
The smart.nvme_attributes.percentage_used metric reflects consumed endurance on a scale of 0–100%. A value above 80% indicates significant wear, and above 90% you should start planning a replacement. Unlike a one-time smartctl check, PCP collects this continuously so you can track the rate of increase over months rather than catching it only after problems appear. Developers managing NVMe storage track wear trends like these on daily.dev before a drive hits the replacement threshold.
How do I prevent drive monitoring metrics from breaking when my NVMe device name changes after a reboot?
Use PCP's smart.wwid.* metric namespace instead of device-path-based metrics. WWID (World Wide Identifier) is a unique identifier assigned to each drive at manufacturing time and never changes regardless of how the OS names the device. This means /dev/nvme0n1 becoming /dev/nvme1n1 after a reboot or BIOS update does not break your monitoring history. Teams running multi-drive home lab servers keep up with storage monitoring patterns on daily.dev.
How do I set up automated alerts for drive temperature and wear in PCP pmie?
Save rules to /etc/pcp/pmie/smart-health.pmie. A temperature alert looks like: some_inst(smart.nvme_attributes.temperature_sensor_one > 70) -> syslog 10 min "NVMe drive temperature critical:" " %i at %v °C"; The time after syslog (e.g. 10 min, 24 hour) throttles repeated alerts. Test rules with sudo pmie -v -c /etc/pcp/pmie/smart-health.pmie -t 10second before enabling them as a persistent service. Sysadmins automating drive failure prevention find pmie alerting discussions on daily.dev.