mirror of
https://github.com/prometheus/node_exporter.git
synced 2025-08-20 18:33:52 -07:00
AIX: Add more disk metrics
Signed-off-by: Johannes Ziemke <github@5pi.de>
This commit is contained in:
parent
853af0cec0
commit
2c33bc58ea
|
@ -30,6 +30,17 @@ type diskstatsCollector struct {
|
||||||
rbytes typedDesc
|
rbytes typedDesc
|
||||||
wbytes typedDesc
|
wbytes typedDesc
|
||||||
time typedDesc
|
time typedDesc
|
||||||
|
bsize typedDesc
|
||||||
|
qdepth typedDesc
|
||||||
|
|
||||||
|
rblks typedDesc
|
||||||
|
wblks typedDesc
|
||||||
|
|
||||||
|
rserv typedDesc
|
||||||
|
wserv typedDesc
|
||||||
|
|
||||||
|
xfers typedDesc
|
||||||
|
xrate typedDesc
|
||||||
|
|
||||||
deviceFilter deviceFilter
|
deviceFilter deviceFilter
|
||||||
logger *slog.Logger
|
logger *slog.Logger
|
||||||
|
@ -57,6 +68,70 @@ func NewDiskstatsCollector(logger *slog.Logger) (Collector, error) {
|
||||||
wbytes: typedDesc{writtenBytesDesc, prometheus.CounterValue},
|
wbytes: typedDesc{writtenBytesDesc, prometheus.CounterValue},
|
||||||
time: typedDesc{ioTimeSecondsDesc, prometheus.CounterValue},
|
time: typedDesc{ioTimeSecondsDesc, prometheus.CounterValue},
|
||||||
|
|
||||||
|
bsize: typedDesc{
|
||||||
|
prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(namespace, diskSubsystem, "block_size_bytes"),
|
||||||
|
"Size of the block device in bytes.",
|
||||||
|
diskLabelNames, nil,
|
||||||
|
),
|
||||||
|
prometheus.GaugeValue,
|
||||||
|
},
|
||||||
|
qdepth: typedDesc{
|
||||||
|
prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(namespace, diskSubsystem, "queue_depth"),
|
||||||
|
"Number of requests in the queue.",
|
||||||
|
diskLabelNames, nil,
|
||||||
|
),
|
||||||
|
prometheus.GaugeValue,
|
||||||
|
},
|
||||||
|
rblks: typedDesc{
|
||||||
|
prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(namespace, diskSubsystem, "read_blocks_total"),
|
||||||
|
"The total number of read blocks.",
|
||||||
|
diskLabelNames, nil,
|
||||||
|
),
|
||||||
|
prometheus.CounterValue,
|
||||||
|
},
|
||||||
|
wblks: typedDesc{
|
||||||
|
prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(namespace, diskSubsystem, "written_blocks_total"),
|
||||||
|
"The total number of written blocks.",
|
||||||
|
diskLabelNames, nil,
|
||||||
|
),
|
||||||
|
prometheus.CounterValue,
|
||||||
|
},
|
||||||
|
rserv: typedDesc{
|
||||||
|
prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(namespace, diskSubsystem, "read_time_seconds_total"),
|
||||||
|
"The total time spent servicing read requests.",
|
||||||
|
diskLabelNames, nil,
|
||||||
|
),
|
||||||
|
prometheus.CounterValue,
|
||||||
|
},
|
||||||
|
wserv: typedDesc{
|
||||||
|
prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(namespace, diskSubsystem, "write_time_seconds_total"),
|
||||||
|
"The total time spent servicing write requests.",
|
||||||
|
diskLabelNames, nil,
|
||||||
|
),
|
||||||
|
prometheus.CounterValue,
|
||||||
|
},
|
||||||
|
xfers: typedDesc{
|
||||||
|
prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(namespace, diskSubsystem, "transfers_total"),
|
||||||
|
"The total number of transfers to/from disk.",
|
||||||
|
diskLabelNames, nil,
|
||||||
|
),
|
||||||
|
prometheus.CounterValue,
|
||||||
|
},
|
||||||
|
xrate: typedDesc{
|
||||||
|
prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(namespace, diskSubsystem, "transfers_to_disk_total"),
|
||||||
|
"The total number of transfers from disk.",
|
||||||
|
diskLabelNames, nil,
|
||||||
|
),
|
||||||
|
prometheus.CounterValue,
|
||||||
|
},
|
||||||
deviceFilter: deviceFilter,
|
deviceFilter: deviceFilter,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
|
|
||||||
|
@ -77,6 +152,15 @@ func (c *diskstatsCollector) Update(ch chan<- prometheus.Metric) error {
|
||||||
ch <- c.rbytes.mustNewConstMetric(float64(stat.Rblks*512), stat.Name)
|
ch <- c.rbytes.mustNewConstMetric(float64(stat.Rblks*512), stat.Name)
|
||||||
ch <- c.wbytes.mustNewConstMetric(float64(stat.Wblks*512), stat.Name)
|
ch <- c.wbytes.mustNewConstMetric(float64(stat.Wblks*512), stat.Name)
|
||||||
ch <- c.time.mustNewConstMetric(float64(stat.Time/c.tickPerSecond), stat.Name)
|
ch <- c.time.mustNewConstMetric(float64(stat.Time/c.tickPerSecond), stat.Name)
|
||||||
|
|
||||||
|
ch <- c.bsize.mustNewConstMetric(float64(stat.BSize), stat.Name)
|
||||||
|
ch <- c.qdepth.mustNewConstMetric(float64(stat.QDepth), stat.Name)
|
||||||
|
ch <- c.rblks.mustNewConstMetric(float64(stat.Rblks), stat.Name)
|
||||||
|
ch <- c.wblks.mustNewConstMetric(float64(stat.Wblks), stat.Name)
|
||||||
|
ch <- c.rserv.mustNewConstMetric(float64(stat.Rserv/c.tickPerSecond), stat.Name)
|
||||||
|
ch <- c.wserv.mustNewConstMetric(float64(stat.Wserv/c.tickPerSecond), stat.Name)
|
||||||
|
ch <- c.xfers.mustNewConstMetric(float64(stat.Xfers), stat.Name)
|
||||||
|
ch <- c.xrate.mustNewConstMetric(float64(stat.XRate), stat.Name)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue