mirror of
https://github.com/prometheus-community/windows_exporter.git
synced 2026-03-03 09:06:35 +00:00
Merge pull request #1 from carlpett/f-perf-volume-names
Perf: Add volume name label
This commit is contained in:
@@ -4,12 +4,20 @@
|
|||||||
package collectors
|
package collectors
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"regexp"
|
||||||
|
|
||||||
"github.com/StackExchange/wmi"
|
"github.com/StackExchange/wmi"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
volumeWhitelist = flag.String("collector.perf.volume-whitelist", ".+", "Regexp of volumes to whitelist. Volume name must both match whitelist and not match blacklist to be included.")
|
||||||
|
volumeBlacklist = flag.String("collector.perf.volume-blacklist", "_Total", "Regexp of volumes to blacklist. Volume name must both match whitelist and not match blacklist to be included.")
|
||||||
|
)
|
||||||
|
|
||||||
// A PerfCollector is a Prometheus collector for WMI Win32_PerfRawData_PerfDisk_LogicalDisk metrics
|
// A PerfCollector is a Prometheus collector for WMI Win32_PerfRawData_PerfDisk_LogicalDisk metrics
|
||||||
type PerfCollector struct {
|
type PerfCollector struct {
|
||||||
AvgDiskBytesPerRead *prometheus.Desc
|
AvgDiskBytesPerRead *prometheus.Desc
|
||||||
@@ -46,6 +54,9 @@ type PerfCollector struct {
|
|||||||
PercentIdleTime *prometheus.Desc
|
PercentIdleTime *prometheus.Desc
|
||||||
PercentIdleTime_Base *prometheus.Desc
|
PercentIdleTime_Base *prometheus.Desc
|
||||||
SplitIOPerSec *prometheus.Desc
|
SplitIOPerSec *prometheus.Desc
|
||||||
|
|
||||||
|
volumeWhitelistPattern *regexp.Regexp
|
||||||
|
volumeBlacklistPattern *regexp.Regexp
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewPerfCollector ...
|
// NewPerfCollector ...
|
||||||
@@ -55,240 +66,243 @@ func NewPerfCollector() *PerfCollector {
|
|||||||
AvgDiskBytesPerRead: prometheus.NewDesc(
|
AvgDiskBytesPerRead: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_read"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_read"),
|
||||||
"AvgDiskBytesPerRead",
|
"AvgDiskBytesPerRead",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskBytesPerRead_Base: prometheus.NewDesc(
|
AvgDiskBytesPerRead_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_read_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_read_base"),
|
||||||
"AvgDiskBytesPerRead_Base",
|
"AvgDiskBytesPerRead_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskBytesPerTransfer: prometheus.NewDesc(
|
AvgDiskBytesPerTransfer: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_transfer"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_transfer"),
|
||||||
"AvgDiskBytesPerTransfer",
|
"AvgDiskBytesPerTransfer",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskBytesPerTransfer_Base: prometheus.NewDesc(
|
AvgDiskBytesPerTransfer_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_transfer_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_transfer_base"),
|
||||||
"AvgDiskBytesPerTransfer_Base",
|
"AvgDiskBytesPerTransfer_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskBytesPerWrite: prometheus.NewDesc(
|
AvgDiskBytesPerWrite: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_write"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_write"),
|
||||||
"AvgDiskBytesPerWrite",
|
"AvgDiskBytesPerWrite",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskBytesPerWrite_Base: prometheus.NewDesc(
|
AvgDiskBytesPerWrite_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_write_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_bytes_per_write_base"),
|
||||||
"AvgDiskBytesPerWrite_Base",
|
"AvgDiskBytesPerWrite_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskQueueLength: prometheus.NewDesc(
|
AvgDiskQueueLength: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_queue_length"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_queue_length"),
|
||||||
"AvgDiskQueueLength",
|
"AvgDiskQueueLength",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskReadQueueLength: prometheus.NewDesc(
|
AvgDiskReadQueueLength: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_read_queue_length"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_read_queue_length"),
|
||||||
"AvgDiskReadQueueLength",
|
"AvgDiskReadQueueLength",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskSecPerRead: prometheus.NewDesc(
|
AvgDiskSecPerRead: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_read"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_read"),
|
||||||
"AvgDiskSecPerRead",
|
"AvgDiskSecPerRead",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskSecPerRead_Base: prometheus.NewDesc(
|
AvgDiskSecPerRead_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_read_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_read_base"),
|
||||||
"AvgDiskSecPerRead_Base",
|
"AvgDiskSecPerRead_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskSecPerTransfer: prometheus.NewDesc(
|
AvgDiskSecPerTransfer: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_transfer"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_transfer"),
|
||||||
"AvgDiskSecPerTransfer",
|
"AvgDiskSecPerTransfer",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskSecPerTransfer_Base: prometheus.NewDesc(
|
AvgDiskSecPerTransfer_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_transfer_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_transfer_base"),
|
||||||
"AvgDiskSecPerTransfer_Base",
|
"AvgDiskSecPerTransfer_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskSecPerWrite: prometheus.NewDesc(
|
AvgDiskSecPerWrite: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_write"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_write"),
|
||||||
"AvgDiskSecPerWrite",
|
"AvgDiskSecPerWrite",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskSecPerWrite_Base: prometheus.NewDesc(
|
AvgDiskSecPerWrite_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_write_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_sec_per_write_base"),
|
||||||
"AvgDiskSecPerWrite_Base",
|
"AvgDiskSecPerWrite_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
AvgDiskWriteQueueLength: prometheus.NewDesc(
|
AvgDiskWriteQueueLength: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_write_queue_length"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "avg_disk_write_queue_length"),
|
||||||
"AvgDiskWriteQueueLength",
|
"AvgDiskWriteQueueLength",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
CurrentDiskQueueLength: prometheus.NewDesc(
|
CurrentDiskQueueLength: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "current_disk_queue_length"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "current_disk_queue_length"),
|
||||||
"CurrentDiskQueueLength",
|
"CurrentDiskQueueLength",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
DiskBytesPerSec: prometheus.NewDesc(
|
DiskBytesPerSec: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "disk_bytes_per_sec"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "disk_bytes_per_sec"),
|
||||||
"DiskBytesPerSec",
|
"DiskBytesPerSec",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
DiskReadBytesPerSec: prometheus.NewDesc(
|
DiskReadBytesPerSec: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "disk_read_bytes_per_sec"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "disk_read_bytes_per_sec"),
|
||||||
"DiskReadBytesPerSec",
|
"DiskReadBytesPerSec",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
DiskReadsPerSec: prometheus.NewDesc(
|
DiskReadsPerSec: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "disk_reads_per_sec"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "disk_reads_per_sec"),
|
||||||
"DiskReadsPerSec",
|
"DiskReadsPerSec",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
DiskTransfersPerSec: prometheus.NewDesc(
|
DiskTransfersPerSec: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "disk_transfers_per_sec"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "disk_transfers_per_sec"),
|
||||||
"DiskTransfersPerSec",
|
"DiskTransfersPerSec",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
DiskWriteBytesPerSec: prometheus.NewDesc(
|
DiskWriteBytesPerSec: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "disk_write_bytes_per_sec"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "disk_write_bytes_per_sec"),
|
||||||
"DiskWriteBytesPerSec",
|
"DiskWriteBytesPerSec",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
DiskWritesPerSec: prometheus.NewDesc(
|
DiskWritesPerSec: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "disk_writes_per_sec"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "disk_writes_per_sec"),
|
||||||
"DiskWritesPerSec",
|
"DiskWritesPerSec",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
FreeMegabytes: prometheus.NewDesc(
|
FreeMegabytes: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "free_megabytes"), // XXX in bytes
|
prometheus.BuildFQName(wmiNamespace, "perf", "free_megabytes"), // XXX in bytes
|
||||||
"FreeMegabytes",
|
"FreeMegabytes",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
PercentDiskReadTime: prometheus.NewDesc(
|
PercentDiskReadTime: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_read_time"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_read_time"),
|
||||||
"PercentDiskReadTime",
|
"PercentDiskReadTime",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
PercentDiskReadTime_Base: prometheus.NewDesc(
|
PercentDiskReadTime_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_read_time_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_read_time_base"),
|
||||||
"PercentDiskReadTime_Base",
|
"PercentDiskReadTime_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
PercentDiskTime: prometheus.NewDesc(
|
PercentDiskTime: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_time"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_time"),
|
||||||
"PercentDiskTime",
|
"PercentDiskTime",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
PercentDiskTime_Base: prometheus.NewDesc(
|
PercentDiskTime_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_time_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_time_base"),
|
||||||
"PercentDiskTime_Base",
|
"PercentDiskTime_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
PercentDiskWriteTime: prometheus.NewDesc(
|
PercentDiskWriteTime: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_write_time"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_write_time"),
|
||||||
"PercentDiskWriteTime",
|
"PercentDiskWriteTime",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
PercentDiskWriteTime_Base: prometheus.NewDesc(
|
PercentDiskWriteTime_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_write_time_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "percent_disk_write_time_base"),
|
||||||
"PercentDiskWriteTime_Base",
|
"PercentDiskWriteTime_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
PercentFreeSpace: prometheus.NewDesc(
|
PercentFreeSpace: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "percent_free_space"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "percent_free_space"),
|
||||||
"PercentFreeSpace",
|
"PercentFreeSpace",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
PercentFreeSpace_Base: prometheus.NewDesc(
|
PercentFreeSpace_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "percent_free_space_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "percent_free_space_base"),
|
||||||
"PercentFreeSpace_Base",
|
"PercentFreeSpace_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
PercentIdleTime: prometheus.NewDesc(
|
PercentIdleTime: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "percent_idle_time"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "percent_idle_time"),
|
||||||
"PercentIdleTime",
|
"PercentIdleTime",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
PercentIdleTime_Base: prometheus.NewDesc(
|
PercentIdleTime_Base: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "percent_idle_time_base"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "percent_idle_time_base"),
|
||||||
"PercentIdleTime_Base",
|
"PercentIdleTime_Base",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
SplitIOPerSec: prometheus.NewDesc(
|
SplitIOPerSec: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(wmiNamespace, "perf", "split_io_per_sec"),
|
prometheus.BuildFQName(wmiNamespace, "perf", "split_io_per_sec"),
|
||||||
"SplitIOPerSec",
|
"SplitIOPerSec",
|
||||||
nil,
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
|
volumeWhitelistPattern: regexp.MustCompile(fmt.Sprintf("^(?:%s)$", *volumeWhitelist)),
|
||||||
|
volumeBlacklistPattern: regexp.MustCompile(fmt.Sprintf("^(?:%s)$", *volumeBlacklist)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,6 +356,7 @@ func (c *PerfCollector) Describe(ch chan<- *prometheus.Desc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Win32_PerfRawData_PerfDisk_LogicalDisk struct {
|
type Win32_PerfRawData_PerfDisk_LogicalDisk struct {
|
||||||
|
Name string
|
||||||
AvgDiskBytesPerRead uint64
|
AvgDiskBytesPerRead uint64
|
||||||
AvgDiskBytesPerRead_Base uint32
|
AvgDiskBytesPerRead_Base uint32
|
||||||
AvgDiskBytesPerTransfer uint64
|
AvgDiskBytesPerTransfer uint64
|
||||||
@@ -385,209 +400,249 @@ func (c *PerfCollector) collect(ch chan<- prometheus.Metric) (*prometheus.Desc,
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
for _, volume := range dst {
|
||||||
c.AvgDiskBytesPerRead,
|
if c.volumeBlacklistPattern.MatchString(volume.Name) || !c.volumeWhitelistPattern.MatchString(volume.Name) {
|
||||||
prometheus.GaugeValue,
|
continue
|
||||||
float64(dst[0].AvgDiskBytesPerRead),
|
}
|
||||||
)
|
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskBytesPerRead_Base,
|
c.AvgDiskBytesPerRead,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskBytesPerRead_Base),
|
float64(volume.AvgDiskBytesPerRead),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskBytesPerTransfer,
|
c.AvgDiskBytesPerRead_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskBytesPerTransfer),
|
float64(volume.AvgDiskBytesPerRead_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskBytesPerTransfer_Base,
|
c.AvgDiskBytesPerTransfer,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskBytesPerTransfer_Base),
|
float64(volume.AvgDiskBytesPerTransfer),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskBytesPerWrite,
|
c.AvgDiskBytesPerTransfer_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskBytesPerWrite),
|
float64(volume.AvgDiskBytesPerTransfer_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskBytesPerWrite_Base,
|
c.AvgDiskBytesPerWrite,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskBytesPerWrite_Base),
|
float64(volume.AvgDiskBytesPerWrite),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskQueueLength,
|
c.AvgDiskBytesPerWrite_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskQueueLength),
|
float64(volume.AvgDiskBytesPerWrite_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskReadQueueLength,
|
c.AvgDiskQueueLength,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskReadQueueLength),
|
float64(volume.AvgDiskQueueLength),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskSecPerRead,
|
c.AvgDiskReadQueueLength,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskSecPerRead),
|
float64(volume.AvgDiskReadQueueLength),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskSecPerRead_Base,
|
c.AvgDiskSecPerRead,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskSecPerRead_Base),
|
float64(volume.AvgDiskSecPerRead),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskSecPerTransfer,
|
c.AvgDiskSecPerRead_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskSecPerTransfer),
|
float64(volume.AvgDiskSecPerRead_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskSecPerTransfer_Base,
|
c.AvgDiskSecPerTransfer,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskSecPerTransfer_Base),
|
float64(volume.AvgDiskSecPerTransfer),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskSecPerWrite,
|
c.AvgDiskSecPerTransfer_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskSecPerWrite),
|
float64(volume.AvgDiskSecPerTransfer_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskSecPerWrite_Base,
|
c.AvgDiskSecPerWrite,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskSecPerWrite_Base),
|
float64(volume.AvgDiskSecPerWrite),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.AvgDiskWriteQueueLength,
|
c.AvgDiskSecPerWrite_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].AvgDiskWriteQueueLength),
|
float64(volume.AvgDiskSecPerWrite_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.CurrentDiskQueueLength,
|
c.AvgDiskWriteQueueLength,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].CurrentDiskQueueLength),
|
float64(volume.AvgDiskWriteQueueLength),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.DiskBytesPerSec,
|
c.CurrentDiskQueueLength,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].DiskBytesPerSec),
|
float64(volume.CurrentDiskQueueLength),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.DiskReadBytesPerSec,
|
c.DiskBytesPerSec,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].DiskReadBytesPerSec),
|
float64(volume.DiskBytesPerSec),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.DiskReadsPerSec,
|
c.DiskReadBytesPerSec,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].DiskReadsPerSec),
|
float64(volume.DiskReadBytesPerSec),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.DiskTransfersPerSec,
|
c.DiskReadsPerSec,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].DiskTransfersPerSec),
|
float64(volume.DiskReadsPerSec),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.DiskWriteBytesPerSec,
|
c.DiskTransfersPerSec,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].DiskWriteBytesPerSec),
|
float64(volume.DiskTransfersPerSec),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.DiskWritesPerSec,
|
c.DiskWriteBytesPerSec,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].DiskWritesPerSec),
|
float64(volume.DiskWriteBytesPerSec),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.FreeMegabytes,
|
c.DiskWritesPerSec,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].FreeMegabytes),
|
float64(volume.DiskWritesPerSec),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.PercentDiskReadTime,
|
c.FreeMegabytes,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].PercentDiskReadTime),
|
float64(volume.FreeMegabytes),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.PercentDiskReadTime_Base,
|
c.PercentDiskReadTime,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].PercentDiskReadTime_Base),
|
float64(volume.PercentDiskReadTime),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.PercentDiskTime,
|
c.PercentDiskReadTime_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].PercentDiskTime),
|
float64(volume.PercentDiskReadTime_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.PercentDiskTime_Base,
|
c.PercentDiskTime,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].PercentDiskTime_Base),
|
float64(volume.PercentDiskTime),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.PercentDiskWriteTime,
|
c.PercentDiskTime_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].PercentDiskWriteTime),
|
float64(volume.PercentDiskTime_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.PercentDiskWriteTime_Base,
|
c.PercentDiskWriteTime,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].PercentDiskWriteTime_Base),
|
float64(volume.PercentDiskWriteTime),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.PercentFreeSpace,
|
c.PercentDiskWriteTime_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].PercentFreeSpace),
|
float64(volume.PercentDiskWriteTime_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.PercentFreeSpace_Base,
|
c.PercentFreeSpace,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].PercentFreeSpace_Base),
|
float64(volume.PercentFreeSpace),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.PercentIdleTime,
|
c.PercentFreeSpace_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].PercentIdleTime),
|
float64(volume.PercentFreeSpace_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.PercentIdleTime_Base,
|
c.PercentIdleTime,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].PercentIdleTime_Base),
|
float64(volume.PercentIdleTime),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.SplitIOPerSec,
|
c.PercentIdleTime_Base,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
float64(dst[0].SplitIOPerSec),
|
float64(volume.PercentIdleTime_Base),
|
||||||
)
|
volume.Name,
|
||||||
|
)
|
||||||
|
|
||||||
|
ch <- prometheus.MustNewConstMetric(
|
||||||
|
c.SplitIOPerSec,
|
||||||
|
prometheus.GaugeValue,
|
||||||
|
float64(volume.SplitIOPerSec),
|
||||||
|
volume.Name,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user