// getActualResources returns the actual resource usage of the allocations. func getActualResources(client *api.Client, runningAllocs []*api.Allocation, node *api.Node) ([]string, error) { // Compute the total total := computeNodeTotalResources(node) // Get Resources var cpu float64 var mem uint64 for _, alloc := range runningAllocs { // Make the call to the client to get the actual usage. stats, err := client.Allocations().Stats(alloc, nil) if err != nil { return nil, err } cpu += stats.ResourceUsage.CpuStats.TotalTicks mem += stats.ResourceUsage.MemoryStats.RSS } resources := make([]string, 2) resources[0] = "CPU|Memory" resources[1] = fmt.Sprintf("%v/%v MHz|%v/%v", math.Floor(cpu), total.CPU, humanize.IBytes(mem), humanize.IBytes(uint64(total.MemoryMB*bytesPerMegabyte))) return resources, nil }