|
|
@@ -40,7 +40,10 @@ var (
|
|
|
NumGoroutine Gauge
|
|
|
ReadMemStats Timer
|
|
|
}
|
|
|
- numGC uint32
|
|
|
+ numGC uint32
|
|
|
+ numMallocs uint64
|
|
|
+ numFrees uint64
|
|
|
+ numLookups uint64
|
|
|
)
|
|
|
|
|
|
// Capture new values for the Go runtime statistics exported in
|
|
|
@@ -77,7 +80,8 @@ func CaptureRuntimeMemStatsOnce(r Registry) {
|
|
|
} else {
|
|
|
runtimeMetrics.MemStats.EnableGC.Update(0)
|
|
|
}
|
|
|
- runtimeMetrics.MemStats.Frees.Update(int64(memStats.Frees))
|
|
|
+
|
|
|
+ runtimeMetrics.MemStats.Frees.Update(int64(memStats.Frees - numFrees))
|
|
|
runtimeMetrics.MemStats.HeapAlloc.Update(int64(memStats.HeapAlloc))
|
|
|
runtimeMetrics.MemStats.HeapIdle.Update(int64(memStats.HeapIdle))
|
|
|
runtimeMetrics.MemStats.HeapInuse.Update(int64(memStats.HeapInuse))
|
|
|
@@ -85,14 +89,14 @@ func CaptureRuntimeMemStatsOnce(r Registry) {
|
|
|
runtimeMetrics.MemStats.HeapReleased.Update(int64(memStats.HeapReleased))
|
|
|
runtimeMetrics.MemStats.HeapSys.Update(int64(memStats.HeapSys))
|
|
|
runtimeMetrics.MemStats.LastGC.Update(int64(memStats.LastGC))
|
|
|
- runtimeMetrics.MemStats.Lookups.Update(int64(memStats.Lookups))
|
|
|
- runtimeMetrics.MemStats.Mallocs.Update(int64(memStats.Mallocs))
|
|
|
+ runtimeMetrics.MemStats.Lookups.Update(int64(memStats.Lookups - numLookups))
|
|
|
+ runtimeMetrics.MemStats.Mallocs.Update(int64(memStats.Mallocs - numMallocs))
|
|
|
runtimeMetrics.MemStats.MCacheInuse.Update(int64(memStats.MCacheInuse))
|
|
|
runtimeMetrics.MemStats.MCacheSys.Update(int64(memStats.MCacheSys))
|
|
|
runtimeMetrics.MemStats.MSpanInuse.Update(int64(memStats.MSpanInuse))
|
|
|
runtimeMetrics.MemStats.MSpanSys.Update(int64(memStats.MSpanSys))
|
|
|
runtimeMetrics.MemStats.NextGC.Update(int64(memStats.NextGC))
|
|
|
- runtimeMetrics.MemStats.NumGC.Update(int64(memStats.NumGC))
|
|
|
+ runtimeMetrics.MemStats.NumGC.Update(int64(memStats.NumGC - numGC))
|
|
|
|
|
|
// <https://code.google.com/p/go/source/browse/src/pkg/runtime/mgc0.c>
|
|
|
i := numGC % uint32(len(memStats.PauseNs))
|
|
|
@@ -113,6 +117,9 @@ func CaptureRuntimeMemStatsOnce(r Registry) {
|
|
|
}
|
|
|
}
|
|
|
numGC = memStats.NumGC
|
|
|
+ numMallocs = memStats.Mallocs
|
|
|
+ numFrees = memStats.Frees
|
|
|
+ numLookups = memStats.Lookups
|
|
|
|
|
|
runtimeMetrics.MemStats.PauseTotalNs.Update(int64(memStats.PauseTotalNs))
|
|
|
runtimeMetrics.MemStats.StackInuse.Update(int64(memStats.StackInuse))
|