code: func CollectHostInfo() *HostInfo {
  	info := &HostInfo{CollectionTime: time.Now().UTC().UnixNano()}
  
  	if h, err := host.Info(); err != nil {
  		info.Errors = append(info.Errors, err)
  	} else {
  		info.Host = h
  	}
  
  	if v, err := mem.VirtualMemory(); err != nil {
  		info.Errors = append(info.Errors, err)
  	} else {
  		info.Memory = v
  	}
  
  	if d, err := disk.Usage(DiskUsagePath); err != nil {
  		info.Errors = append(info.Errors, err)
  	} else {
  		info.Disk = d
  	}
  
  	if c, err := cpu.Info(); err != nil {
  		info.Errors = append(info.Errors, err)
  	} else {
  		info.CPU = c
  	}
  
  	return info
  }
docs: // CollectHostInfo queries the host system and returns HostInfo. Any
  // errors encountered will be returned in HostInfo.Errors