|
|
@@ -63,7 +63,31 @@ func CloudbrainDurationStatisticHour(ctx *context.Context) { |
|
|
|
models.LoadSpecs4CloudbrainInfo(ciTasks) |
|
|
|
log.Info("ciTasks here: %s", ciTasks) |
|
|
|
log.Info("count here: %s", len(ciTasks)) |
|
|
|
cloudBrainCardRes := getCloudBrainCardRes(ciTasks, beginTime, endTime) |
|
|
|
cloudBrainCenterCodeAndCardTypeInfo := getcloudBrainCenterCodeAndCardTypeInfo(ciTasks, beginTime, endTime) |
|
|
|
for centerCode, CardTypeInfo := range cloudBrainCenterCodeAndCardTypeInfo { |
|
|
|
for cardType, cardDuration := range CardTypeInfo { |
|
|
|
cloudbrain, err := models.GetSpecByAiCenterCodeAndType(centerCode, cardType) |
|
|
|
if err != nil { |
|
|
|
log.Info("GetSpecByAiCenterCodeAndType err: %v", err) |
|
|
|
return |
|
|
|
} |
|
|
|
cloudbrainDurationStat := models.CloudbrainDurationStatistic{ |
|
|
|
DateTime: date, |
|
|
|
HourTime: userNumber, |
|
|
|
Cluster: cloudbrain[0].Cluster, |
|
|
|
AiCenterName: cloudbrain[0].AiCenterName, |
|
|
|
AiCenterCode: centerCode, |
|
|
|
ComputeResource: cloudbrain[0].ComputeResource, |
|
|
|
AccCardType: cardType, |
|
|
|
CardsTotalNum: mirrorRepositoryNumber, |
|
|
|
CardsTotalDuration: cardDuration, |
|
|
|
QueueCode: cloudbrain[0].QueueCode, |
|
|
|
CreatedTime: privateRepositoryNumer, |
|
|
|
UpdatedTime: publicRepositoryNumer, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//根据云脑任务列表获取云脑任务已使用的卡时,并区分是哪个智算中心,哪个卡类型的卡时,将这些信息存入新表 |
|
|
|
|
|
|
@@ -89,21 +113,21 @@ func CloudbrainDurationStatisticHour(ctx *context.Context) { |
|
|
|
// cloudBrainDurationRes = append(cloudBrainDurationRes, cloudBrainOneCardRes) |
|
|
|
// log.Info("cloudBrainDurationRes: %s", cloudBrainDurationRes) |
|
|
|
// log.Info("cloudBrainOneCardRes: %s", cloudBrainOneCardRes) |
|
|
|
log.Info("cloudBrainCardRes: %s", cloudBrainCardRes) |
|
|
|
// log.Info("cloudBrainCardRes: %s", cloudBrainCardRes) |
|
|
|
// log.Info("c2NetCardRes: %s", c2NetCardRes) |
|
|
|
log.Info("finish summary cloudbrainDurationStat") |
|
|
|
} |
|
|
|
|
|
|
|
func getCloudBrainCardRes(ciTasks []*models.CloudbrainInfo, beginTime int64, endTime int64) map[string]map[string]int { |
|
|
|
func getcloudBrainCenterCodeAndCardTypeInfo(ciTasks []*models.CloudbrainInfo, beginTime int64, endTime int64) map[string]map[string]int { |
|
|
|
var WorkServerNumber int |
|
|
|
var AccCardsNum int |
|
|
|
// cloudBrainCardRes := make(map[string]int) |
|
|
|
cloudBrainAicenterNameList := make(map[string]string) |
|
|
|
cloudBrainAiCenterCodeList := make(map[string]string) |
|
|
|
cloudBrainCardTypeList := make(map[string]string) |
|
|
|
cloudBrainCenterNameAndCardType := make(map[string]map[string]int) |
|
|
|
cloudBrainCenterCodeAndCardType := make(map[string]map[string]int) |
|
|
|
for _, cloudbrain := range ciTasks { |
|
|
|
if _, ok := cloudBrainAicenterNameList[cloudbrain.Cloudbrain.Spec.AiCenterName]; !ok { |
|
|
|
cloudBrainAicenterNameList[cloudbrain.Cloudbrain.Spec.AiCenterName] = cloudbrain.Cloudbrain.Spec.AiCenterName |
|
|
|
if _, ok := cloudBrainAiCenterCodeList[cloudbrain.Cloudbrain.Spec.AiCenterCode]; !ok { |
|
|
|
cloudBrainAiCenterCodeList[cloudbrain.Cloudbrain.Spec.AiCenterCode] = cloudbrain.Cloudbrain.Spec.AiCenterCode |
|
|
|
} |
|
|
|
|
|
|
|
if cloudbrain.Cloudbrain.StartTime == 0 { |
|
|
@@ -122,11 +146,11 @@ func getCloudBrainCardRes(ciTasks []*models.CloudbrainInfo, beginTime int64, end |
|
|
|
} else { |
|
|
|
AccCardsNum = cloudbrain.Cloudbrain.Spec.AccCardsNum |
|
|
|
} |
|
|
|
for k, _ := range cloudBrainAicenterNameList { |
|
|
|
if cloudBrainCenterNameAndCardType[cloudBrainAicenterNameList[k]] == nil { |
|
|
|
cloudBrainCenterNameAndCardType[cloudBrainAicenterNameList[k]] = make(map[string]int) |
|
|
|
for k, _ := range cloudBrainAiCenterCodeList { |
|
|
|
if cloudBrainCenterCodeAndCardType[cloudBrainAiCenterCodeList[k]] == nil { |
|
|
|
cloudBrainCenterCodeAndCardType[cloudBrainAiCenterCodeList[k]] = make(map[string]int) |
|
|
|
} |
|
|
|
if cloudbrain.Cloudbrain.Spec.AiCenterName == cloudBrainAicenterNameList[k] { |
|
|
|
if cloudbrain.Cloudbrain.Spec.AiCenterCode == cloudBrainAiCenterCodeList[k] { |
|
|
|
if _, ok := cloudBrainCardTypeList[cloudbrain.Cloudbrain.Spec.AccCardType]; !ok { |
|
|
|
cloudBrainCardTypeList[cloudbrain.Cloudbrain.Spec.AccCardType] = cloudbrain.Cloudbrain.Spec.AccCardType |
|
|
|
} |
|
|
@@ -134,15 +158,15 @@ func getCloudBrainCardRes(ciTasks []*models.CloudbrainInfo, beginTime int64, end |
|
|
|
if cloudbrain.Cloudbrain.Spec.AccCardType == cloudBrainCardTypeList[i] { |
|
|
|
if cloudbrain.Cloudbrain.Status == string(models.ModelArtsRunning) { |
|
|
|
if int64(cloudbrain.Cloudbrain.StartTime) < beginTime { |
|
|
|
cloudBrainCenterNameAndCardType[cloudBrainAicenterNameList[k]][cloudBrainCardTypeList[i]] += AccCardsNum * WorkServerNumber * (int(endTime) - int(beginTime)) |
|
|
|
cloudBrainCenterCodeAndCardType[cloudBrainAiCenterCodeList[k]][cloudBrainCardTypeList[i]] += AccCardsNum * WorkServerNumber * (int(endTime) - int(beginTime)) |
|
|
|
} else { |
|
|
|
cloudBrainCenterNameAndCardType[cloudBrainAicenterNameList[k]][cloudBrainCardTypeList[i]] += AccCardsNum * WorkServerNumber * (int(endTime) - int(cloudbrain.Cloudbrain.StartTime)) |
|
|
|
cloudBrainCenterCodeAndCardType[cloudBrainAiCenterCodeList[k]][cloudBrainCardTypeList[i]] += AccCardsNum * WorkServerNumber * (int(endTime) - int(cloudbrain.Cloudbrain.StartTime)) |
|
|
|
} |
|
|
|
} else { |
|
|
|
if int64(cloudbrain.Cloudbrain.StartTime) < beginTime && int64(cloudbrain.Cloudbrain.EndTime) < endTime { |
|
|
|
cloudBrainCenterNameAndCardType[cloudBrainAicenterNameList[k]][cloudBrainCardTypeList[i]] += AccCardsNum * WorkServerNumber * (int(cloudbrain.Cloudbrain.EndTime) - int(beginTime)) |
|
|
|
cloudBrainCenterCodeAndCardType[cloudBrainAiCenterCodeList[k]][cloudBrainCardTypeList[i]] += AccCardsNum * WorkServerNumber * (int(cloudbrain.Cloudbrain.EndTime) - int(beginTime)) |
|
|
|
} else { |
|
|
|
cloudBrainCenterNameAndCardType[cloudBrainAicenterNameList[k]][cloudBrainCardTypeList[i]] += AccCardsNum * WorkServerNumber * (int(cloudbrain.Cloudbrain.EndTime) - int(cloudbrain.Cloudbrain.StartTime)) |
|
|
|
cloudBrainCenterCodeAndCardType[cloudBrainAiCenterCodeList[k]][cloudBrainCardTypeList[i]] += AccCardsNum * WorkServerNumber * (int(cloudbrain.Cloudbrain.EndTime) - int(cloudbrain.Cloudbrain.StartTime)) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@@ -151,5 +175,5 @@ func getCloudBrainCardRes(ciTasks []*models.CloudbrainInfo, beginTime int64, end |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return cloudBrainCenterNameAndCardType |
|
|
|
return cloudBrainCenterCodeAndCardType |
|
|
|
} |