in stats_handler.go [32:64]
func handleStats(rp *Ringpop) map[string]interface{} {
var memStats runtime.MemStats
runtime.ReadMemStats(&memStats)
servers := rp.ring.Servers()
type stats map[string]interface{}
uptime, _ := rp.Uptime()
return stats{
"hooks": nil,
"membership": rp.node.MemberStats(),
"process": stats{
"memory": stats{
"rss": memStats.Sys,
"heapTotal": memStats.HeapSys,
"heapUsed": memStats.HeapInuse,
},
"pid": os.Getpid(),
},
"protocol": rp.node.ProtocolStats(),
"ring": stats{
"servers": servers,
"checksum": rp.ring.Checksum(),
"checksums": rp.ring.Checksums(),
},
"version": "???", // TODO: version!
"timestamp": time.Now().Unix(),
"uptime": uptime,
"tchannelVersion": strconv.Itoa(tchannel.CurrentProtocolVersion), // get proper version
}
}