@@ -73,28 +73,26 @@ func CollectProcessMetrics(refresh time.Duration) {
7373 diskstats [i ] = new (DiskStats )
7474 }
7575 // Define the various metrics to collect
76- cpuSysLoad := GetOrRegisterGauge ( "system/cpu/sysload" , DefaultRegistry )
77- cpuSysWait : = GetOrRegisterGauge ("system/cpu/syswait " , DefaultRegistry )
78- cpuProcLoad : = GetOrRegisterGauge ("system/cpu/procload " , DefaultRegistry )
79-
80- memPauses := GetOrRegisterMeter ("system/memory/pauses " , DefaultRegistry )
81- memAllocs := GetOrRegisterMeter ("system/memory/allocs " , DefaultRegistry )
82- memFrees := GetOrRegisterMeter ( "system/memory/frees" , DefaultRegistry )
83- memHeld := GetOrRegisterGauge ("system/memory/held " , DefaultRegistry )
84- memUsed := GetOrRegisterGauge ("system/memory/used " , DefaultRegistry )
85-
86- var diskReads , diskReadBytes , diskWrites , diskWriteBytes Meter
87- var diskReadBytesCounter , diskWriteBytesCounter Counter
88- if err := ReadDiskStats ( diskstats [ 0 ]); err == nil {
89- diskReads = GetOrRegisterMeter ("system/disk/readcount" , DefaultRegistry )
90- diskReadBytes = GetOrRegisterMeter ("system/disk/readdata" , DefaultRegistry )
91- diskReadBytesCounter = GetOrRegisterCounter ("system/disk/readbytes" , DefaultRegistry )
92- diskWrites = GetOrRegisterMeter ("system/disk/writecount" , DefaultRegistry )
93- diskWriteBytes = GetOrRegisterMeter ("system/disk/writedata" , DefaultRegistry )
76+ var (
77+ cpuSysLoad = GetOrRegisterGauge ("system/cpu/sysload " , DefaultRegistry )
78+ cpuSysWait = GetOrRegisterGauge ("system/cpu/syswait " , DefaultRegistry )
79+ cpuProcLoad = GetOrRegisterGauge ( "system/cpu/procload" , DefaultRegistry )
80+ cpuThreads = GetOrRegisterGauge ("system/cpu/threads " , DefaultRegistry )
81+ cpuGoroutines = GetOrRegisterGauge ("system/cpu/goroutines " , DefaultRegistry )
82+
83+ memPauses = GetOrRegisterMeter ("system/memory/pauses " , DefaultRegistry )
84+ memAllocs = GetOrRegisterMeter ("system/memory/allocs " , DefaultRegistry )
85+ memFrees = GetOrRegisterMeter ( "system/memory/frees" , DefaultRegistry )
86+ memHeld = GetOrRegisterGauge ( "system/memory/held" , DefaultRegistry )
87+ memUsed = GetOrRegisterGauge ( "system/memory/used" , DefaultRegistry )
88+
89+ diskReads = GetOrRegisterMeter ("system/disk/readcount" , DefaultRegistry )
90+ diskReadBytes = GetOrRegisterMeter ("system/disk/readdata" , DefaultRegistry )
91+ diskReadBytesCounter = GetOrRegisterCounter ("system/disk/readbytes" , DefaultRegistry )
92+ diskWrites = GetOrRegisterMeter ("system/disk/writecount" , DefaultRegistry )
93+ diskWriteBytes = GetOrRegisterMeter ("system/disk/writedata" , DefaultRegistry )
9494 diskWriteBytesCounter = GetOrRegisterCounter ("system/disk/writebytes" , DefaultRegistry )
95- } else {
96- log .Debug ("Failed to read disk metrics" , "err" , err )
97- }
95+ )
9896 // Iterate loading the different stats and updating the meters
9997 for i := 1 ; ; i ++ {
10098 location1 := i % 2
@@ -104,6 +102,8 @@ func CollectProcessMetrics(refresh time.Duration) {
104102 cpuSysLoad .Update ((cpuStats [location1 ].GlobalTime - cpuStats [location2 ].GlobalTime ) / refreshFreq )
105103 cpuSysWait .Update ((cpuStats [location1 ].GlobalWait - cpuStats [location2 ].GlobalWait ) / refreshFreq )
106104 cpuProcLoad .Update ((cpuStats [location1 ].LocalTime - cpuStats [location2 ].LocalTime ) / refreshFreq )
105+ cpuThreads .Update (int64 (threadCreateProfile .Count ()))
106+ cpuGoroutines .Update (int64 (runtime .NumGoroutine ()))
107107
108108 runtime .ReadMemStats (memstats [location1 ])
109109 memPauses .Mark (int64 (memstats [location1 ].PauseTotalNs - memstats [location2 ].PauseTotalNs ))
0 commit comments