2018-10-29 19:21:47 +00:00
// returns data points from Win32_PerfRawData_PerfOS_Memory
// <add link to documentation here> - Win32_PerfRawData_PerfOS_Memory class
2018-11-30 00:51:12 +00:00
// +build windows
2018-10-29 19:21:47 +00:00
package collector
import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/common/log"
)
func init ( ) {
2020-02-09 20:09:26 +00:00
registerCollector ( "memory" , NewMemoryCollector , "Memory" )
2018-10-29 19:21:47 +00:00
}
2019-09-23 09:50:14 +00:00
// A MemoryCollector is a Prometheus collector for perflib Memory metrics
2018-11-18 17:19:18 +00:00
type MemoryCollector struct {
2018-10-29 19:21:47 +00:00
AvailableBytes * prometheus . Desc
CacheBytes * prometheus . Desc
CacheBytesPeak * prometheus . Desc
2018-11-18 17:19:18 +00:00
CacheFaultsTotal * prometheus . Desc
2018-10-29 19:21:47 +00:00
CommitLimit * prometheus . Desc
CommittedBytes * prometheus . Desc
2018-11-18 17:19:18 +00:00
DemandZeroFaultsTotal * prometheus . Desc
2018-10-29 19:21:47 +00:00
FreeAndZeroPageListBytes * prometheus . Desc
FreeSystemPageTableEntries * prometheus . Desc
ModifiedPageListBytes * prometheus . Desc
2018-11-18 17:19:18 +00:00
PageFaultsTotal * prometheus . Desc
SwapPageReadsTotal * prometheus . Desc
SwapPagesReadTotal * prometheus . Desc
SwapPagesWrittenTotal * prometheus . Desc
SwapPageOperationsTotal * prometheus . Desc
SwapPageWritesTotal * prometheus . Desc
PoolNonpagedAllocsTotal * prometheus . Desc
2018-10-29 19:21:47 +00:00
PoolNonpagedBytes * prometheus . Desc
2018-11-18 17:19:18 +00:00
PoolPagedAllocsTotal * prometheus . Desc
2018-10-29 19:21:47 +00:00
PoolPagedBytes * prometheus . Desc
PoolPagedResidentBytes * prometheus . Desc
StandbyCacheCoreBytes * prometheus . Desc
StandbyCacheNormalPriorityBytes * prometheus . Desc
StandbyCacheReserveBytes * prometheus . Desc
SystemCacheResidentBytes * prometheus . Desc
SystemCodeResidentBytes * prometheus . Desc
SystemCodeTotalBytes * prometheus . Desc
SystemDriverResidentBytes * prometheus . Desc
SystemDriverTotalBytes * prometheus . Desc
2018-11-18 17:19:18 +00:00
TransitionFaultsTotal * prometheus . Desc
TransitionPagesRepurposedTotal * prometheus . Desc
WriteCopiesTotal * prometheus . Desc
2018-10-29 19:21:47 +00:00
}
2018-11-18 17:19:18 +00:00
// NewMemoryCollector ...
func NewMemoryCollector ( ) ( Collector , error ) {
const subsystem = "memory"
2018-10-29 19:21:47 +00:00
2018-11-18 17:19:18 +00:00
return & MemoryCollector {
2018-10-29 19:21:47 +00:00
AvailableBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "available_bytes" ) ,
2018-11-18 17:19:18 +00:00
"The amount of physical memory immediately available for allocation to a process or for system use. It is equal to the sum of memory assigned to" +
" the standby (cached), free and zero page lists (AvailableBytes)" ,
2018-10-29 19:21:47 +00:00
nil ,
nil ,
) ,
CacheBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "cache_bytes" ) ,
"(CacheBytes)" ,
nil ,
nil ,
) ,
CacheBytesPeak : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "cache_bytes_peak" ) ,
"(CacheBytesPeak)" ,
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
CacheFaultsTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "cache_faults_total" ) ,
2018-10-29 19:21:47 +00:00
"(CacheFaultsPersec)" ,
nil ,
nil ,
) ,
CommitLimit : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "commit_limit" ) ,
"(CommitLimit)" ,
nil ,
nil ,
) ,
CommittedBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "committed_bytes" ) ,
"(CommittedBytes)" ,
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
DemandZeroFaultsTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "demand_zero_faults_total" ) ,
"The number of zeroed pages required to satisfy faults. Zeroed pages, pages emptied of previously stored data and filled with zeros, are a security" +
" feature of Windows that prevent processes from seeing data stored by earlier processes that used the memory space (DemandZeroFaults)" ,
2018-10-29 19:21:47 +00:00
nil ,
nil ,
) ,
FreeAndZeroPageListBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "free_and_zero_page_list_bytes" ) ,
"(FreeAndZeroPageListBytes)" ,
nil ,
nil ,
) ,
FreeSystemPageTableEntries : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "free_system_page_table_entries" ) ,
"(FreeSystemPageTableEntries)" ,
nil ,
nil ,
) ,
ModifiedPageListBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "modified_page_list_bytes" ) ,
"(ModifiedPageListBytes)" ,
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
PageFaultsTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "page_faults_total" ) ,
2018-10-29 19:21:47 +00:00
"(PageFaultsPersec)" ,
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
SwapPageReadsTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "swap_page_reads_total" ) ,
"Number of disk page reads (a single read operation reading several pages is still only counted once) (PageReadsPersec)" ,
2018-10-29 19:21:47 +00:00
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
SwapPagesReadTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "swap_pages_read_total" ) ,
"Number of pages read across all page reads (ie counting all pages read even if they are read in a single operation) (PagesInputPersec)" ,
2018-10-29 19:21:47 +00:00
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
SwapPagesWrittenTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "swap_pages_written_total" ) ,
"Number of pages written across all page writes (ie counting all pages written even if they are written in a single operation) (PagesOutputPersec)" ,
2018-10-29 19:21:47 +00:00
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
SwapPageOperationsTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "swap_page_operations_total" ) ,
"Total number of swap page read and writes (PagesPersec)" ,
2018-10-29 19:21:47 +00:00
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
SwapPageWritesTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "swap_page_writes_total" ) ,
"Number of disk page writes (a single write operation writing several pages is still only counted once) (PageWritesPersec)" ,
2018-10-29 19:21:47 +00:00
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
PoolNonpagedAllocsTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "pool_nonpaged_allocs_total" ) ,
"The number of calls to allocate space in the nonpaged pool. The nonpaged pool is an area of system memory area for objects that cannot be written" +
" to disk, and must remain in physical memory as long as they are allocated (PoolNonpagedAllocs)" ,
2018-10-29 19:21:47 +00:00
nil ,
nil ,
) ,
PoolNonpagedBytes : prometheus . NewDesc (
2018-11-18 17:19:18 +00:00
prometheus . BuildFQName ( Namespace , subsystem , "pool_nonpaged_bytes_total" ) ,
2018-10-29 19:21:47 +00:00
"(PoolNonpagedBytes)" ,
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
PoolPagedAllocsTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "pool_paged_allocs_total" ) ,
2018-10-29 19:21:47 +00:00
"(PoolPagedAllocs)" ,
nil ,
nil ,
) ,
PoolPagedBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "pool_paged_bytes" ) ,
"(PoolPagedBytes)" ,
nil ,
nil ,
) ,
PoolPagedResidentBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "pool_paged_resident_bytes" ) ,
"(PoolPagedResidentBytes)" ,
nil ,
nil ,
) ,
StandbyCacheCoreBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "standby_cache_core_bytes" ) ,
"(StandbyCacheCoreBytes)" ,
nil ,
nil ,
) ,
StandbyCacheNormalPriorityBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "standby_cache_normal_priority_bytes" ) ,
"(StandbyCacheNormalPriorityBytes)" ,
nil ,
nil ,
) ,
StandbyCacheReserveBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "standby_cache_reserve_bytes" ) ,
"(StandbyCacheReserveBytes)" ,
nil ,
nil ,
) ,
SystemCacheResidentBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "system_cache_resident_bytes" ) ,
"(SystemCacheResidentBytes)" ,
nil ,
nil ,
) ,
SystemCodeResidentBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "system_code_resident_bytes" ) ,
"(SystemCodeResidentBytes)" ,
nil ,
nil ,
) ,
SystemCodeTotalBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "system_code_total_bytes" ) ,
"(SystemCodeTotalBytes)" ,
nil ,
nil ,
) ,
SystemDriverResidentBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "system_driver_resident_bytes" ) ,
"(SystemDriverResidentBytes)" ,
nil ,
nil ,
) ,
SystemDriverTotalBytes : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "system_driver_total_bytes" ) ,
"(SystemDriverTotalBytes)" ,
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
TransitionFaultsTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "transition_faults_total" ) ,
2018-10-29 19:21:47 +00:00
"(TransitionFaultsPersec)" ,
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
TransitionPagesRepurposedTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "transition_pages_repurposed_total" ) ,
2018-10-29 19:21:47 +00:00
"(TransitionPagesRePurposedPersec)" ,
nil ,
nil ,
) ,
2018-11-18 17:19:18 +00:00
WriteCopiesTotal : prometheus . NewDesc (
prometheus . BuildFQName ( Namespace , subsystem , "write_copies_total" ) ,
"The number of page faults caused by attempting to write that were satisfied by copying the page from elsewhere in physical memory (WriteCopiesPersec)" ,
2018-10-29 19:21:47 +00:00
nil ,
nil ,
) ,
} , nil
}
// Collect sends the metric values for each metric
// to the provided prometheus Metric channel.
2019-04-05 13:59:40 +00:00
func ( c * MemoryCollector ) Collect ( ctx * ScrapeContext , ch chan <- prometheus . Metric ) error {
2019-09-23 09:50:14 +00:00
if desc , err := c . collect ( ctx , ch ) ; err != nil {
2018-11-18 17:19:18 +00:00
log . Error ( "failed collecting memory metrics:" , desc , err )
2018-10-29 19:21:47 +00:00
return err
}
return nil
}
2019-09-23 09:50:14 +00:00
type memory struct {
AvailableBytes float64 ` perflib:"Available Bytes" `
AvailableKBytes float64 ` perflib:"Available KBytes" `
AvailableMBytes float64 ` perflib:"Available MBytes" `
CacheBytes float64 ` perflib:"Cache Bytes" `
CacheBytesPeak float64 ` perflib:"Cache Bytes Peak" `
CacheFaultsPersec float64 ` perflib:"Cache Faults/sec" `
CommitLimit float64 ` perflib:"Commit Limit" `
CommittedBytes float64 ` perflib:"Committed Bytes" `
DemandZeroFaultsPersec float64 ` perflib:"Demand Zero Faults/sec" `
FreeAndZeroPageListBytes float64 ` perflib:"Free & Zero Page List Bytes" `
FreeSystemPageTableEntries float64 ` perflib:"Free System Page Table Entries" `
ModifiedPageListBytes float64 ` perflib:"Modified Page List Bytes" `
PageFaultsPersec float64 ` perflib:"Page Faults/sec" `
PageReadsPersec float64 ` perflib:"Page Reads/sec" `
PagesInputPersec float64 ` perflib:"Pages Input/sec" `
PagesOutputPersec float64 ` perflib:"Pages Output/sec" `
PagesPersec float64 ` perflib:"Pages/sec" `
PageWritesPersec float64 ` perflib:"Page Writes/sec" `
PoolNonpagedAllocs float64 ` perflib:"Pool Nonpaged Allocs" `
PoolNonpagedBytes float64 ` perflib:"Pool Nonpaged Bytes" `
PoolPagedAllocs float64 ` perflib:"Pool Paged Allocs" `
PoolPagedBytes float64 ` perflib:"Pool Paged Bytes" `
PoolPagedResidentBytes float64 ` perflib:"Pool Paged Resident Bytes" `
StandbyCacheCoreBytes float64 ` perflib:"Standby Cache Core Bytes" `
StandbyCacheNormalPriorityBytes float64 ` perflib:"Standby Cache Normal Priority Bytes" `
StandbyCacheReserveBytes float64 ` perflib:"Standby Cache Reserve Bytes" `
SystemCacheResidentBytes float64 ` perflib:"System Cache Resident Bytes" `
SystemCodeResidentBytes float64 ` perflib:"System Code Resident Bytes" `
SystemCodeTotalBytes float64 ` perflib:"System Code Total Bytes" `
SystemDriverResidentBytes float64 ` perflib:"System Driver Resident Bytes" `
SystemDriverTotalBytes float64 ` perflib:"System Driver Total Bytes" `
TransitionFaultsPersec float64 ` perflib:"Transition Faults/sec" `
TransitionPagesRePurposedPersec float64 ` perflib:"Transition Pages RePurposed/sec" `
WriteCopiesPersec float64 ` perflib:"Write Copies/sec" `
2018-10-29 19:21:47 +00:00
}
2019-09-23 09:50:14 +00:00
func ( c * MemoryCollector ) collect ( ctx * ScrapeContext , ch chan <- prometheus . Metric ) ( * prometheus . Desc , error ) {
var dst [ ] memory
if err := unmarshalObject ( ctx . perfObjects [ "Memory" ] , & dst ) ; err != nil {
2018-10-29 19:21:47 +00:00
return nil , err
}
ch <- prometheus . MustNewConstMetric (
c . AvailableBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . AvailableBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . CacheBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . CacheBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . CacheBytesPeak ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . CacheBytesPeak ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . CacheFaultsTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . CacheFaultsPersec ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . CommitLimit ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . CommitLimit ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . CommittedBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . CommittedBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . DemandZeroFaultsTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . DemandZeroFaultsPersec ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . FreeAndZeroPageListBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . FreeAndZeroPageListBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . FreeSystemPageTableEntries ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . FreeSystemPageTableEntries ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . ModifiedPageListBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . ModifiedPageListBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . PageFaultsTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PageFaultsPersec ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . SwapPageReadsTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PageReadsPersec ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . SwapPagesReadTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PagesInputPersec ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . SwapPagesWrittenTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PagesOutputPersec ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . SwapPageOperationsTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PagesPersec ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . SwapPageWritesTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PageWritesPersec ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . PoolNonpagedAllocsTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PoolNonpagedAllocs ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . PoolNonpagedBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PoolNonpagedBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . PoolPagedAllocsTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PoolPagedAllocs ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . PoolPagedBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PoolPagedBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . PoolPagedResidentBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . PoolPagedResidentBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . StandbyCacheCoreBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . StandbyCacheCoreBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . StandbyCacheNormalPriorityBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . StandbyCacheNormalPriorityBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . StandbyCacheReserveBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . StandbyCacheReserveBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . SystemCacheResidentBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . SystemCacheResidentBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . SystemCodeResidentBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . SystemCodeResidentBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . SystemCodeTotalBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . SystemCodeTotalBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . SystemDriverResidentBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . SystemDriverResidentBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
c . SystemDriverTotalBytes ,
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . SystemDriverTotalBytes ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . TransitionFaultsTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . TransitionFaultsPersec ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . TransitionPagesRepurposedTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . TransitionPagesRePurposedPersec ,
2018-10-29 19:21:47 +00:00
)
ch <- prometheus . MustNewConstMetric (
2018-11-18 17:19:18 +00:00
c . WriteCopiesTotal ,
2018-10-29 19:21:47 +00:00
prometheus . GaugeValue ,
2019-09-23 09:50:14 +00:00
dst [ 0 ] . WriteCopiesPersec ,
2018-10-29 19:21:47 +00:00
)
return nil , nil
}