mirror of
https://github.com/prometheus/node_exporter.git
synced 2024-12-27 22:49:44 -08:00
diskstats_linux: always scale reads and writes by 512 bytes, not by device units.
Signed-off-by: W. Andrew Denton <git@flying-snail.net>
This commit is contained in:
parent
e9feae971a
commit
84ce3a0103
|
@ -29,6 +29,9 @@ import (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
secondsPerTick = 1.0 / 1000.0
|
secondsPerTick = 1.0 / 1000.0
|
||||||
|
|
||||||
|
// Read sectors and write sectors are the "standard UNIX 512-byte sectors, not any device- or filesystem-specific block size.
|
||||||
|
unixSectorSize = 512.0
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -195,14 +198,6 @@ func (c *diskstatsCollector) Update(ch chan<- prometheus.Metric) error {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
diskSectorSize := 512.0
|
|
||||||
blockQueue, err := c.fs.SysBlockDeviceQueueStats(dev)
|
|
||||||
if err != nil {
|
|
||||||
level.Debug(c.logger).Log("msg", "Error getting queue stats", "device", dev, "err", err)
|
|
||||||
} else {
|
|
||||||
diskSectorSize = float64(blockQueue.LogicalBlockSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
ch <- c.infoDesc.mustNewConstMetric(1.0, dev, fmt.Sprint(stats.MajorNumber), fmt.Sprint(stats.MinorNumber))
|
ch <- c.infoDesc.mustNewConstMetric(1.0, dev, fmt.Sprint(stats.MajorNumber), fmt.Sprint(stats.MinorNumber))
|
||||||
|
|
||||||
statCount := stats.IoStatsCount - 3 // Total diskstats record count, less MajorNumber, MinorNumber and DeviceName
|
statCount := stats.IoStatsCount - 3 // Total diskstats record count, less MajorNumber, MinorNumber and DeviceName
|
||||||
|
@ -210,11 +205,11 @@ func (c *diskstatsCollector) Update(ch chan<- prometheus.Metric) error {
|
||||||
for i, val := range []float64{
|
for i, val := range []float64{
|
||||||
float64(stats.ReadIOs),
|
float64(stats.ReadIOs),
|
||||||
float64(stats.ReadMerges),
|
float64(stats.ReadMerges),
|
||||||
float64(stats.ReadSectors) * diskSectorSize,
|
float64(stats.ReadSectors) * unixSectorSize,
|
||||||
float64(stats.ReadTicks) * secondsPerTick,
|
float64(stats.ReadTicks) * secondsPerTick,
|
||||||
float64(stats.WriteIOs),
|
float64(stats.WriteIOs),
|
||||||
float64(stats.WriteMerges),
|
float64(stats.WriteMerges),
|
||||||
float64(stats.WriteSectors) * diskSectorSize,
|
float64(stats.WriteSectors) * unixSectorSize,
|
||||||
float64(stats.WriteTicks) * secondsPerTick,
|
float64(stats.WriteTicks) * secondsPerTick,
|
||||||
float64(stats.IOsInProgress),
|
float64(stats.IOsInProgress),
|
||||||
float64(stats.IOsTotalTicks) * secondsPerTick,
|
float64(stats.IOsTotalTicks) * secondsPerTick,
|
||||||
|
|
Loading…
Reference in a new issue