aboutsummaryrefslogtreecommitdiff
path: root/collector/stat_linux.go
diff options
context:
space:
mode:
authorPaul Gier <pgier@redhat.com>2019-04-10 11:16:12 -0500
committerBen Kochie <superq@gmail.com>2019-04-10 18:16:12 +0200
commitb1298677aa13a5f48dd5303120fa4a4bd4579ab9 (patch)
treea5674890c7713d3d1bd9438a2c3629daa3ca373b /collector/stat_linux.go
parentfbe390709f5370cd9092233239208fb51f46d15f (diff)
downloadprometheus_node_collector-b1298677aa13a5f48dd5303120fa4a4bd4579ab9.tar.bz2
prometheus_node_collector-b1298677aa13a5f48dd5303120fa4a4bd4579ab9.tar.xz
prometheus_node_collector-b1298677aa13a5f48dd5303120fa4a4bd4579ab9.zip
Early init of procfs (#1315)
Minor change to match naming convention in other collectors. Initialize the proc or sys FS instance once while initializing each collector instead of re-creating for each metric update. Signed-off-by: Paul Gier <pgier@redhat.com>
Diffstat (limited to 'collector/stat_linux.go')
-rw-r--r--collector/stat_linux.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/collector/stat_linux.go b/collector/stat_linux.go
index 290205f..13a4b01 100644
--- a/collector/stat_linux.go
+++ b/collector/stat_linux.go
@@ -24,6 +24,7 @@ import (
24) 24)
25 25
26type statCollector struct { 26type statCollector struct {
27 fs procfs.FS
27 intr *prometheus.Desc 28 intr *prometheus.Desc
28 ctxt *prometheus.Desc 29 ctxt *prometheus.Desc
29 forks *prometheus.Desc 30 forks *prometheus.Desc
@@ -38,7 +39,12 @@ func init() {
38 39
39// NewStatCollector returns a new Collector exposing kernel/system statistics. 40// NewStatCollector returns a new Collector exposing kernel/system statistics.
40func NewStatCollector() (Collector, error) { 41func NewStatCollector() (Collector, error) {
42 fs, err := procfs.NewFS(*procPath)
43 if err != nil {
44 return nil, fmt.Errorf("failed to open procfs: %v", err)
45 }
41 return &statCollector{ 46 return &statCollector{
47 fs: fs,
42 intr: prometheus.NewDesc( 48 intr: prometheus.NewDesc(
43 prometheus.BuildFQName(namespace, "", "intr_total"), 49 prometheus.BuildFQName(namespace, "", "intr_total"),
44 "Total number of interrupts serviced.", 50 "Total number of interrupts serviced.",
@@ -74,11 +80,7 @@ func NewStatCollector() (Collector, error) {
74 80
75// Update implements Collector and exposes kernel and system statistics. 81// Update implements Collector and exposes kernel and system statistics.
76func (c *statCollector) Update(ch chan<- prometheus.Metric) error { 82func (c *statCollector) Update(ch chan<- prometheus.Metric) error {
77 fs, err := procfs.NewFS(*procPath) 83 stats, err := c.fs.NewStat()
78 if err != nil {
79 return fmt.Errorf("failed to open procfs: %v", err)
80 }
81 stats, err := fs.NewStat()
82 if err != nil { 84 if err != nil {
83 return err 85 return err
84 } 86 }