func handleStats()

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
	}
}