// goRuntimeMemStats provides the metrics initially provided by runtime.ReadMemStats. // From Go 1.17 those similar (and better) statistics are provided by runtime/metrics, so // while eval closure works on runtime.MemStats, the struct from Go 1.17+ is // populated using runtime/metrics. func goRuntimeMemStats() memStatsMetrics { … } type baseGoCollector … func newBaseGoCollector() baseGoCollector { … } // Describe returns all descriptions of the collector. func (c *baseGoCollector) Describe(ch chan<- *Desc) { … } // Collect returns the current state of all metrics of the collector. func (c *baseGoCollector) Collect(ch chan<- Metric) { … } func memstatNamespace(s string) string { … } type memStatsMetrics …