mirror of
https://github.com/prometheus/node_exporter.git
synced 2024-11-09 23:24:09 -08:00
Greatly reduce the metrics vmstat returns by default.
Vmstat has over 100 fields, most of which are highly detailed debug information. Trim this down to only essential fields by default, configurable by flag. Signed-off-by: Brian Brazil <brian.brazil@robustperception.io>
This commit is contained in:
parent
c8c144587e
commit
499c342fed
|
@ -2739,6 +2739,7 @@ node_scrape_collector_success{collector="qdisc"} 1
|
|||
node_scrape_collector_success{collector="sockstat"} 1
|
||||
node_scrape_collector_success{collector="stat"} 1
|
||||
node_scrape_collector_success{collector="textfile"} 1
|
||||
node_scrape_collector_success{collector="vmstat"} 1
|
||||
node_scrape_collector_success{collector="wifi"} 1
|
||||
node_scrape_collector_success{collector="xfs"} 1
|
||||
node_scrape_collector_success{collector="zfs"} 1
|
||||
|
@ -2789,6 +2790,24 @@ node_sockstat_sockets_used 229
|
|||
# HELP node_textfile_scrape_error 1 if there was an error opening or reading a file, 0 otherwise
|
||||
# TYPE node_textfile_scrape_error gauge
|
||||
node_textfile_scrape_error 0
|
||||
# HELP node_vmstat_pgfault /proc/vmstat information field pgfault.
|
||||
# TYPE node_vmstat_pgfault untyped
|
||||
node_vmstat_pgfault 2.320168809e+09
|
||||
# HELP node_vmstat_pgmajfault /proc/vmstat information field pgmajfault.
|
||||
# TYPE node_vmstat_pgmajfault untyped
|
||||
node_vmstat_pgmajfault 507162
|
||||
# HELP node_vmstat_pgpgin /proc/vmstat information field pgpgin.
|
||||
# TYPE node_vmstat_pgpgin untyped
|
||||
node_vmstat_pgpgin 7.344136e+06
|
||||
# HELP node_vmstat_pgpgout /proc/vmstat information field pgpgout.
|
||||
# TYPE node_vmstat_pgpgout untyped
|
||||
node_vmstat_pgpgout 1.541180581e+09
|
||||
# HELP node_vmstat_pswpin /proc/vmstat information field pswpin.
|
||||
# TYPE node_vmstat_pswpin untyped
|
||||
node_vmstat_pswpin 1476
|
||||
# HELP node_vmstat_pswpout /proc/vmstat information field pswpout.
|
||||
# TYPE node_vmstat_pswpout untyped
|
||||
node_vmstat_pswpout 35045
|
||||
# HELP node_wifi_interface_frequency_hertz The current frequency a WiFi interface is operating at, in hertz.
|
||||
# TYPE node_wifi_interface_frequency_hertz gauge
|
||||
node_wifi_interface_frequency_hertz{device="wlan0"} 2.412e+09
|
||||
|
|
119
collector/fixtures/proc/vmstat
Normal file
119
collector/fixtures/proc/vmstat
Normal file
|
@ -0,0 +1,119 @@
|
|||
nr_free_pages 977769
|
||||
nr_alloc_batch 4158
|
||||
nr_inactive_anon 125031
|
||||
nr_active_anon 622512
|
||||
nr_inactive_file 92317
|
||||
nr_active_file 324014
|
||||
nr_unevictable 12
|
||||
nr_mlock 12
|
||||
nr_anon_pages 713633
|
||||
nr_mapped 118021
|
||||
nr_file_pages 450840
|
||||
nr_dirty 21
|
||||
nr_writeback 0
|
||||
nr_slab_reclaimable 85763
|
||||
nr_slab_unreclaimable 431112
|
||||
nr_page_table_pages 12504
|
||||
nr_kernel_stack 1156
|
||||
nr_overhead 4956
|
||||
nr_unstable 0
|
||||
nr_bounce 0
|
||||
nr_vmscan_write 35050
|
||||
nr_vmscan_immediate_reclaim 27
|
||||
nr_writeback_temp 0
|
||||
nr_isolated_anon 0
|
||||
nr_isolated_file 0
|
||||
nr_shmem 20623
|
||||
nr_dirtied 11127183
|
||||
nr_written 11122061
|
||||
nr_pages_scanned 0
|
||||
numa_hit 2601972389
|
||||
numa_miss 0
|
||||
numa_foreign 0
|
||||
numa_interleave 32353
|
||||
numa_local 2601972389
|
||||
numa_other 0
|
||||
workingset_refault 157066
|
||||
workingset_activate 104270
|
||||
workingset_nodereclaim 0
|
||||
nr_anon_transparent_hugepages 556
|
||||
nr_free_cma 0
|
||||
nr_dirty_threshold 270390
|
||||
nr_dirty_background_threshold 135030
|
||||
pgpgin 7344136
|
||||
pgpgout 1541180581
|
||||
pswpin 1476
|
||||
pswpout 35045
|
||||
pgalloc_dma 12
|
||||
pgalloc_dma32 611781566
|
||||
pgalloc_normal 2287227526
|
||||
pgalloc_movable 0
|
||||
pgfree 2938719870
|
||||
pgactivate 152952989
|
||||
pgdeactivate 898450
|
||||
pgfault 2320168809
|
||||
pgmajfault 507162
|
||||
pgrefill_dma 0
|
||||
pgrefill_dma32 186367
|
||||
pgrefill_normal 603970
|
||||
pgrefill_movable 0
|
||||
pgsteal_kswapd_dma 0
|
||||
pgsteal_kswapd_dma32 78783
|
||||
pgsteal_kswapd_normal 254128
|
||||
pgsteal_kswapd_movable 0
|
||||
pgsteal_direct_dma 0
|
||||
pgsteal_direct_dma32 44
|
||||
pgsteal_direct_normal 6484
|
||||
pgsteal_direct_movable 0
|
||||
pgscan_kswapd_dma 0
|
||||
pgscan_kswapd_dma32 107656
|
||||
pgscan_kswapd_normal 358784
|
||||
pgscan_kswapd_movable 0
|
||||
pgscan_direct_dma 0
|
||||
pgscan_direct_dma32 67
|
||||
pgscan_direct_normal 6796
|
||||
pgscan_direct_movable 0
|
||||
pgscan_direct_throttle 0
|
||||
zone_reclaim_failed 0
|
||||
pginodesteal 412258
|
||||
slabs_scanned 14355346
|
||||
kswapd_inodesteal 288891
|
||||
kswapd_low_wmark_hit_quickly 109
|
||||
kswapd_high_wmark_hit_quickly 45
|
||||
pageoutrun 247
|
||||
allocstall 83165
|
||||
pgrotated 35014
|
||||
drop_pagecache 0
|
||||
drop_slab 0
|
||||
numa_pte_updates 0
|
||||
numa_huge_pte_updates 0
|
||||
numa_hint_faults 0
|
||||
numa_hint_faults_local 0
|
||||
numa_pages_migrated 0
|
||||
pgmigrate_success 37070309
|
||||
pgmigrate_fail 36815
|
||||
compact_migrate_scanned 830267783
|
||||
compact_free_scanned 12336622550
|
||||
compact_isolated 82707414
|
||||
compact_stall 210959
|
||||
compact_fail 164840
|
||||
compact_success 46119
|
||||
htlb_buddy_alloc_success 0
|
||||
htlb_buddy_alloc_fail 0
|
||||
unevictable_pgs_culled 2188
|
||||
unevictable_pgs_scanned 0
|
||||
unevictable_pgs_rescued 3962
|
||||
unevictable_pgs_mlocked 3994
|
||||
unevictable_pgs_munlocked 3968
|
||||
unevictable_pgs_cleared 14
|
||||
unevictable_pgs_stranded 14
|
||||
thp_fault_alloc 142261
|
||||
thp_fault_fallback 98119
|
||||
thp_collapse_alloc 88421
|
||||
thp_collapse_alloc_failed 20954
|
||||
thp_split 69984
|
||||
thp_zero_page_alloc 9
|
||||
thp_zero_page_alloc_failed 20
|
||||
balloon_inflate 0
|
||||
balloon_deflate 0
|
||||
balloon_migrate 0
|
|
@ -19,17 +19,25 @@ import (
|
|||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"gopkg.in/alecthomas/kingpin.v2"
|
||||
)
|
||||
|
||||
const (
|
||||
vmStatSubsystem = "vmstat"
|
||||
)
|
||||
|
||||
type vmStatCollector struct{}
|
||||
var (
|
||||
vmStatFields = kingpin.Flag("collector.vmstat.fields", "Regexp of fields to return for vmstat collector.").Default("^(pgpg|pswp|pg.*fault|oom_kill).*").String()
|
||||
)
|
||||
|
||||
type vmStatCollector struct {
|
||||
fieldPattern *regexp.Regexp
|
||||
}
|
||||
|
||||
func init() {
|
||||
registerCollector("vmstat", defaultEnabled, NewvmStatCollector)
|
||||
|
@ -37,7 +45,10 @@ func init() {
|
|||
|
||||
// NewvmStatCollector returns a new Collector exposing vmstat stats.
|
||||
func NewvmStatCollector() (Collector, error) {
|
||||
return &vmStatCollector{}, nil
|
||||
pattern := regexp.MustCompile(*vmStatFields)
|
||||
return &vmStatCollector{
|
||||
fieldPattern: pattern,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (c *vmStatCollector) Update(ch chan<- prometheus.Metric) error {
|
||||
|
@ -54,6 +65,9 @@ func (c *vmStatCollector) Update(ch chan<- prometheus.Metric) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !c.fieldPattern.MatchString(parts[0]) {
|
||||
continue
|
||||
}
|
||||
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
prometheus.NewDesc(
|
||||
|
|
|
@ -32,6 +32,7 @@ enabled_collectors=$(cat << COLLECTORS
|
|||
stat
|
||||
textfile
|
||||
bonding
|
||||
vmstat
|
||||
wifi
|
||||
xfs
|
||||
zfs
|
||||
|
@ -42,7 +43,6 @@ disabled_collectors=$(cat << COLLECTORS
|
|||
time
|
||||
timex
|
||||
uname
|
||||
vmstat
|
||||
COLLECTORS
|
||||
)
|
||||
cd "$(dirname $0)"
|
||||
|
@ -148,4 +148,4 @@ get "127.0.0.1:${port}/metrics" | grep -E -v "${skip_re}" > "${tmpdir}/e2e-outpu
|
|||
|
||||
diff -u \
|
||||
"${fixture}" \
|
||||
"${tmpdir}/e2e-output.txt"
|
||||
"${tmpdir}/e2e-output.txt"
|
||||
|
|
Loading…
Reference in a new issue