mirror of
https://github.com/prometheus-community/smartctl_exporter.git
synced 2024-12-21 02:21:55 +01:00
Fix reported Data bytes Read/Written on SSDs
This value is reported in thousands (i.e., a value of 1 corresponds to 1000 units of 512 bytes written) and is rounded up. When the LBA size is a value other than 512 bytes, the controller shall convert the amount of data written to 512 byte units. Current code is using 1024 instead of 1000. Signed-off-by: tekert <tekert@gmail.com>
This commit is contained in:
parent
895bf1eeb3
commit
c2e9d33118
1 changed files with 8 additions and 4 deletions
12
smartctl.go
12
smartctl.go
|
@ -300,21 +300,25 @@ func (smart *SMARTctl) mineNumErrLogEntries() {
|
|||
}
|
||||
|
||||
func (smart *SMARTctl) mineBytesRead() {
|
||||
blockSize := smart.json.Get("logical_block_size").Float() * 1024
|
||||
blockSize := smart.json.Get("logical_block_size").Float()
|
||||
smart.ch <- prometheus.MustNewConstMetric(
|
||||
metricDeviceBytesRead,
|
||||
prometheus.CounterValue,
|
||||
smart.json.Get("nvme_smart_health_information_log.data_units_read").Float()*blockSize,
|
||||
// This value is reported in thousands (i.e., a value of 1 corresponds to 1000 units of 512 bytes written) and is rounded up.
|
||||
// When the LBA size is a value other than 512 bytes, the controller shall convert the amount of data written to 512 byte units.
|
||||
smart.json.Get("nvme_smart_health_information_log.data_units_read").Float()*1000.0*blockSize,
|
||||
smart.device.device,
|
||||
)
|
||||
}
|
||||
|
||||
func (smart *SMARTctl) mineBytesWritten() {
|
||||
blockSize := smart.json.Get("logical_block_size").Float() * 1024
|
||||
blockSize := smart.json.Get("logical_block_size").Float()
|
||||
smart.ch <- prometheus.MustNewConstMetric(
|
||||
metricDeviceBytesWritten,
|
||||
prometheus.CounterValue,
|
||||
smart.json.Get("nvme_smart_health_information_log.data_units_written").Float()*blockSize,
|
||||
// This value is reported in thousands (i.e., a value of 1 corresponds to 1000 units of 512 bytes written) and is rounded up.
|
||||
// When the LBA size is a value other than 512 bytes, the controller shall convert the amount of data written to 512 byte units.
|
||||
smart.json.Get("nvme_smart_health_information_log.data_units_written").Float()*1000.0*blockSize,
|
||||
smart.device.device,
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue