Merge pull request #1 from carlpett/f-perf-volume-names

Perf: Add volume name label
This commit is contained in:
Martin Lindhe
2016-08-27 11:14:10 +02:00
committed by GitHub

View File

@@ -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
} }