|
- package repo
-
- import (
- "time"
-
- "code.gitea.io/gitea/models"
- "code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/setting"
- "code.gitea.io/gitea/services/mailer"
- )
-
- func CloudbrainStatisticAuto() {
- yesterday := time.Now().AddDate(0, 0, -1).Format("2006-01-02")
- CloudbrainStatisticDaily(yesterday)
- }
-
- func CloudbrainStatisticDaily(date string) {
- log.Info("%s", date)
- log.Info("begin Cloudbrain Statistic")
- warnEmailMessage := "云脑任务统计信息入库失败,请尽快定位。"
- if err := models.DeleteCloudbrainStatisticDaily(date); err != nil {
- log.Error("DeleteCloudbrainStatisticDaily failed: %v", err.Error())
- mailer.SendWarnNotifyMail(setting.Warn_Notify_Mails, warnEmailMessage)
- return
- }
-
- //0 to 23 for each hour, 25 for all 24 hours
- var WhichHour [25]int64 = [25]int64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25}
- for _, whichHour := range WhichHour {
- log.Info("start statistic: %s", date)
- var beginTime, endTime time.Time
- beginTime, endTime = models.GetHourStatTime(date, whichHour)
- if whichHour == 25 {
- beginTime, endTime = models.GetDayStatTime(date)
- }
- numDubugOne, err := models.GetDebugOneCount(beginTime, endTime)
- if err != nil {
- log.Error("GetDebugOneCount failed(%s): %v", numDubugOne, err)
- }
- numBenchmarkOne, err := models.GetBenchmarkOneCount(beginTime, endTime)
- if err != nil {
- log.Error("GetBenchmarkOneCount failed(%s): %v", numBenchmarkOne, err)
- }
- numTrainOne, err := models.GetTrainOneCount(beginTime, endTime)
- if err != nil {
- log.Error("GetTrainOneCount failed(%s): %v", numTrainOne, err)
- }
- numDebugTwo, err := models.GetDebugTwoCount(beginTime, endTime)
- if err != nil {
- log.Error("GetDebugTwoCount failed(%s): %v", numDebugTwo, err)
- }
- numTrainTwo, err := models.GetTrainTwoCount(beginTime, endTime)
- if err != nil {
- log.Error("GetTrainTwoCount failed(%s): %v", numTrainTwo, err)
- }
- numInferenceTwo, err := models.GetInferenceTwoCount(beginTime, endTime)
- if err != nil {
- log.Error("GetInferenceTwoCount failed(%s): %v", numInferenceTwo, err)
- }
- numCloudOneAll := numDubugOne + numBenchmarkOne + numTrainOne
- numCloudTwoAll := numDebugTwo + numTrainTwo + numInferenceTwo
-
- durationDubugOne, err := models.GetDebugOneDuration(beginTime, endTime)
- if err != nil {
- log.Error("GetDebugOneDuration failed(%s): %v", durationDubugOne, err)
- }
- durationBenchmarkOne, err := models.GetBenchmarkOneDuration(beginTime, endTime)
- if err != nil {
- log.Error("GetBenchmarkOneDuration failed(%s): %v", durationBenchmarkOne, err)
- }
- durationTrainOne, err := models.GetTrainOneDuration(beginTime, endTime)
- if err != nil {
- log.Error("GetTrainOneDuration failed(%s): %v", durationTrainOne, err)
- }
- durationDebugTwo, err := models.GetDebugTwoDuration(beginTime, endTime)
- if err != nil {
- log.Error("GetDebugTwoDuration failed(%s): %v", durationDebugTwo, err)
- }
- durationTrainTwo, err := models.GetTrainTwoDuration(beginTime, endTime)
- if err != nil {
- log.Error("GetTrainTwoDuration failed(%s): %v", durationTrainTwo, err)
- }
- durationInferenceTwo, err := models.GetInferenceTwoDuration(beginTime, endTime)
- if err != nil {
- log.Error("GetInferenceTwoDuration failed(%s): %v", durationInferenceTwo, err)
- }
- durationCloudOneAll := durationDubugOne + durationBenchmarkOne + durationTrainOne
- durationCloudTwoAll := durationDebugTwo + durationTrainTwo + durationInferenceTwo
-
- err = models.CreateCloudbrainStatistic(&models.CloudbrainStatistic{
- Date: date,
- WhichHour: whichHour,
- NumDubugOne: numDubugOne,
- NumBenchmarkOne: numBenchmarkOne,
- NumTrainOne: numTrainOne,
- NumDubugTwo: numDebugTwo,
- NumTrainTwo: numTrainTwo,
- NumInferenceTwo: numInferenceTwo,
- NumCloudOneAll: numCloudOneAll,
- NumCloudTwoAll: numCloudTwoAll,
- DurationDubugOne: durationDubugOne,
- DurationBenchmarkOne: durationBenchmarkOne,
- DurationTrainOne: durationTrainOne,
- DurationDebugTwo: durationDebugTwo,
- DurationTrainTwo: durationTrainTwo,
- DurationInferenceTwo: durationInferenceTwo,
- DurationCloudOneAll: durationCloudOneAll,
- DurationCloudTwoAll: durationCloudTwoAll,
- })
- if err != nil {
- log.Error("CreateCloudbrainStatistic(%s) failed:%v", date, err.Error())
- return
- }
- }
- }
|