Browse Source

update

pull/2292/head
liuzx 3 years ago
parent
commit
fff3bc60bd
4 changed files with 102 additions and 41 deletions
  1. +40
    -6
      models/cloudbrain_static.go
  2. +2
    -1
      routers/api/v1/api.go
  3. +48
    -22
      routers/api/v1/repo/cloudbrain_dashboard.go
  4. +12
    -12
      routers/repo/cloudbrain_statistic.go

+ 40
- 6
models/cloudbrain_static.go View File

@@ -36,7 +36,41 @@ type CloudbrainStatistic struct {
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated" json:"-"`
}

func GenerateDebugOneCount(beginTime time.Time, endTime time.Time) (int64, error) {
func GetJobWaitingCount(beginTime time.Time, endTime time.Time) (int64, error) {
countSql := "SELECT count(*) FROM " +
"public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) +
" and status ='" + string(JobWaiting) + "'"

return x.SQL(countSql).Count()
}
func GetJobRunningCount(beginTime time.Time, endTime time.Time) (int64, error) {
countSql := "SELECT count(*) FROM " +
"public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) +
" and status ='" + string(JobRunning) + "'"

return x.SQL(countSql).Count()
}
func GetJobSucceededCount(beginTime time.Time, endTime time.Time) (int64, error) {
countSql := "SELECT count(*) FROM " +
"public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) +
" and status ='" + string(JobSucceeded) + "'"

return x.SQL(countSql).Count()
}

// func GetWaitingCount(beginTime time.Time, endTime time.Time) (int64, error) {
// countSql := "SELECT distinct count(*) FROM " +
// "public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
// " and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) +
// " and status ='" + string(JobWaiting) + "'"

// return x.SQL(countSql).Count()
// }

func GetDebugOneCount(beginTime time.Time, endTime time.Time) (int64, error) {
countSql := "SELECT count(*) FROM " +
"public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) +
@@ -54,7 +88,7 @@ func GetDebugOneDuration(beginTime time.Time, endTime time.Time) (int64, error)
return total, nil
}

func GenerateTrainOneCount(beginTime time.Time, endTime time.Time) (int64, error) {
func GetTrainOneCount(beginTime time.Time, endTime time.Time) (int64, error) {
countSql := "SELECT count(*) FROM " +
"public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) +
@@ -72,7 +106,7 @@ func GetTrainOneDuration(beginTime time.Time, endTime time.Time) (int64, error)
return total, nil
}

func GenerateBenchmarkOneCount(beginTime time.Time, endTime time.Time) (int64, error) {
func GetBenchmarkOneCount(beginTime time.Time, endTime time.Time) (int64, error) {
countSql := "SELECT count(*) FROM " +
"public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) +
@@ -88,7 +122,7 @@ func GetBenchmarkOneDuration(beginTime time.Time, endTime time.Time) (int64, err

return total, nil
}
func GenerateDebugTwoCount(beginTime time.Time, endTime time.Time) (int64, error) {
func GetDebugTwoCount(beginTime time.Time, endTime time.Time) (int64, error) {
countSql := "SELECT count(*) FROM " +
"public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) +
@@ -103,7 +137,7 @@ func GetDebugTwoDuration(beginTime time.Time, endTime time.Time) (int64, error)
}
return total, nil
}
func GenerateTrainTwoCount(beginTime time.Time, endTime time.Time) (int64, error) {
func GetTrainTwoCount(beginTime time.Time, endTime time.Time) (int64, error) {
countSql := "SELECT count(*) FROM " +
"public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) +
@@ -118,7 +152,7 @@ func GetTrainTwoDuration(beginTime time.Time, endTime time.Time) (int64, error)
}
return total, nil
}
func GenerateInferenceTwoCount(beginTime time.Time, endTime time.Time) (int64, error) {
func GetInferenceTwoCount(beginTime time.Time, endTime time.Time) (int64, error) {
countSql := "SELECT count(*) FROM " +
"public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) +


+ 2
- 1
routers/api/v1/api.go View File

@@ -562,8 +562,9 @@ func RegisterRoutes(m *macaron.Macaron) {
// m.Get("/downloadStatistics", repo.ServeCloudbrainPeriodStatisticsFile)
m.Get("/downloadAll", repo.DownloadCloudBrainBoard)
m.Group("/cloudbrain", func() {
m.Get("/overview", repo.GetAllCloudbrainsOverview)
m.Get("/trend", repo.GetAllCloudbrainsTrend)
m.Get("/statistics", repo.GetAllCloudbrainsPeriodStatistics)
m.Get("/distribution", repo.GetAllCloudbrainsPeriodDistribution)
})
}, operationReq)



+ 48
- 22
routers/api/v1/repo/cloudbrain_dashboard.go View File

@@ -21,6 +21,9 @@ type CloudbrainsPeriodData struct {
DebugTwoCount int64 `json:"debugTwoCount"`
TrainTwoCount int64 `json:"trainTwoCount"`
InferenceTwoCount int64 `json:"inferenceTwoCount"`
JobWaitingCount int64 `json:"jobWaitingCount"`
JobRunningCount int64 `json:"jobRunningCount"`
JobSucceededCount int64 `json:"jobRunningCount"`
}
type TimeCloudbrainsNum struct {
TimeCloudbrainNum []DateCloudbrainNum `json:"dateCloudbrainNum"`
@@ -38,6 +41,33 @@ type DateCloudbrainNum struct {
CloudbrainCount int64 `json:"cloudbrainCount"`
}

func GetAllCloudbrainsOverview(ctx *context.Context) {
now := time.Now()
//today overview
beginTime := now.AddDate(0, 0, 0)
beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location())
endTime := now
jobWaitingCount, err := models.GetJobWaitingCount(beginTime, endTime)
if err != nil {
log.Error("Can not query jobWaitingCount.", err)
}
jobRunningCount, err := models.GetJobRunningCount(beginTime, endTime)
if err != nil {
log.Error("Can not query jobRunningCount.", err)
}
jobSucceededCount, err := models.GetJobSucceededCount(beginTime, endTime)
if err != nil {
log.Error("Can not query jobSucceededCount.", err)
}
cloudbrainsPeriodData := CloudbrainsPeriodData{
JobWaitingCount: jobWaitingCount,
JobRunningCount: jobRunningCount,
JobSucceededCount: jobSucceededCount,
}

ctx.JSON(http.StatusOK, cloudbrainsPeriodData)
}

func GetAllCloudbrainsTrend(ctx *context.Context) {
brainRecordBeginTime, err := getBrainRecordBeginTime()
if err != nil {
@@ -194,7 +224,7 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {

}

func GetAllCloudbrainsPeriodStatistics(ctx *context.Context) {
func GetAllCloudbrainsPeriodDistribution(ctx *context.Context) {
recordBeginTime, err := getBrainRecordBeginTime()
if err != nil {
log.Error("Can not get record begin time", err)
@@ -215,37 +245,37 @@ func GetAllCloudbrainsPeriodStatistics(ctx *context.Context) {
if pageSize <= 0 {
pageSize = DEFAULT_PAGE_SIZE
}
debugOneCount, err := models.GenerateDebugOneCount(beginTime, endTime)
debugOneCount, err := models.GetDebugOneCount(beginTime, endTime)
if err != nil {
log.Error("Can not query debugOneCount.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("debugOneCount_get_error"))
return
}
benchmarkOneCount, err := models.GenerateBenchmarkOneCount(beginTime, endTime)
benchmarkOneCount, err := models.GetBenchmarkOneCount(beginTime, endTime)
if err != nil {
log.Error("Can not query benchmarkCount.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("benchmarkOneCount_get_error"))
return
}
trainOneCount, err := models.GenerateTrainOneCount(beginTime, endTime)
trainOneCount, err := models.GetTrainOneCount(beginTime, endTime)
if err != nil {
log.Error("Can not query trainOneCount.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("trainOneCount_get_error"))
return
}
debugTwoCount, err := models.GenerateDebugTwoCount(beginTime, endTime)
debugTwoCount, err := models.GetDebugTwoCount(beginTime, endTime)
if err != nil {
log.Error("Can not query debugTwoCount.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("debugTwoCount_get_error"))
return
}
trainTwoCount, err := models.GenerateTrainTwoCount(beginTime, endTime)
trainTwoCount, err := models.GetTrainTwoCount(beginTime, endTime)
if err != nil {
log.Error("Can not query DebugOneTotal count.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("total_count_get_error"))
return
}
inferenceTwoCount, err := models.GenerateInferenceTwoCount(beginTime, endTime)
inferenceTwoCount, err := models.GetInferenceTwoCount(beginTime, endTime)
if err != nil {
log.Error("Can not query inferenceTwoCount.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("inferenceTwoCount_get_error"))
@@ -259,44 +289,37 @@ func GetAllCloudbrainsPeriodStatistics(ctx *context.Context) {
TrainTwoCount: trainTwoCount,
InferenceTwoCount: inferenceTwoCount,
}
now := time.Now()
endTime = now
beginTime = time.Date(endTime.Year(), endTime.Month(), 2, 0, 0, 0, 0, now.Location())
testtime := now.AddDate(0, -1, 1)
fmt.Printf("beginTime is: %s", beginTime)
fmt.Printf("endTime is: %s", endTime)
fmt.Printf("testtime is:%s", testtime)

ctx.JSON(http.StatusOK, cloudbrainsPeriodData)
}

func getCloudbrainCount(beginTime time.Time, endTime time.Time) (int64, int64, int64, int64, int64, int64, int64, int64, int64, error) {
debugOneCount, err := models.GenerateDebugOneCount(beginTime, endTime)
debugOneCount, err := models.GetDebugOneCount(beginTime, endTime)
if err != nil {
log.Error("Can not query debugOneCount.", err)
return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
}
benchmarkOneCount, err := models.GenerateBenchmarkOneCount(beginTime, endTime)
benchmarkOneCount, err := models.GetBenchmarkOneCount(beginTime, endTime)
if err != nil {
log.Error("Can not query benchmarkCount.", err)
return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
}
trainOneCount, err := models.GenerateTrainOneCount(beginTime, endTime)
trainOneCount, err := models.GetTrainOneCount(beginTime, endTime)
if err != nil {
log.Error("Can not query trainOneCount.", err)
return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
}
debugTwoCount, err := models.GenerateDebugTwoCount(beginTime, endTime)
debugTwoCount, err := models.GetDebugTwoCount(beginTime, endTime)
if err != nil {
log.Error("Can not query debugTwoCount.", err)
return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
}
trainTwoCount, err := models.GenerateTrainTwoCount(beginTime, endTime)
trainTwoCount, err := models.GetTrainTwoCount(beginTime, endTime)
if err != nil {
log.Error("Can not query DebugOneTotal count.", err)
return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
}
inferenceTwoCount, err := models.GenerateInferenceTwoCount(beginTime, endTime)
inferenceTwoCount, err := models.GetInferenceTwoCount(beginTime, endTime)
if err != nil {
log.Error("Can not query inferenceTwoCount.", err)
return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
@@ -306,6 +329,7 @@ func getCloudbrainCount(beginTime time.Time, endTime time.Time) (int64, int64, i
cloudbrainCount := cloudbrainOneCount + cloudbrainTwoCount
return debugOneCount, benchmarkOneCount, trainOneCount, debugTwoCount, trainTwoCount, inferenceTwoCount, cloudbrainOneCount, cloudbrainTwoCount, cloudbrainCount, err
}

func getHourCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime time.Time) ([]DateCloudbrainNum, error) {
dayCloudbrainNum := make([]DateCloudbrainNum, 0)
for endTimeTemp.Before(endTime) || endTimeTemp.Equal(endTime) {
@@ -334,7 +358,8 @@ func getHourCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime ti
func getDayCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime time.Time) ([]DateCloudbrainNum, error) {
dayCloudbrainNum := make([]DateCloudbrainNum, 0)
for endTimeTemp.Before(endTime) {
debugOneCount, benchmarkOneCount, trainOneCount, debugTwoCount, trainTwoCount, inferenceTwoCount, cloudbrainOneCount, cloudbrainTwoCount, cloudbrainCount, err := getCloudbrainCount(beginTime, endTimeTemp)
debugOneCount, benchmarkOneCount, trainOneCount, debugTwoCount, trainTwoCount, inferenceTwoCount, cloudbrainOneCount,
cloudbrainTwoCount, cloudbrainCount, err := getCloudbrainCount(beginTime, endTimeTemp)
if err != nil {
log.Error("Can not query getCloudbrainCount.", err)
return nil, err
@@ -359,7 +384,8 @@ func getDayCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime tim
func getYearCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime time.Time) ([]DateCloudbrainNum, error) {
yearCloudbrainNum := make([]DateCloudbrainNum, 0)
for endTimeTemp.Before(endTime) {
debugOneCount, benchmarkOneCount, trainOneCount, debugTwoCount, trainTwoCount, inferenceTwoCount, cloudbrainOneCount, cloudbrainTwoCount, cloudbrainCount, err := getCloudbrainCount(beginTime, endTimeTemp)
debugOneCount, benchmarkOneCount, trainOneCount, debugTwoCount, trainTwoCount, inferenceTwoCount, cloudbrainOneCount,
cloudbrainTwoCount, cloudbrainCount, err := getCloudbrainCount(beginTime, endTimeTemp)
if err != nil {
log.Error("Can not query getCloudbrainCount.", err)
return nil, err


+ 12
- 12
routers/repo/cloudbrain_statistic.go View File

@@ -33,29 +33,29 @@ func CloudbrainStatisticDaily(date string) {
if whichHour == 25 {
beginTime, endTime = models.GetDayStatTime(date)
}
numDubugOne, err := models.GenerateDebugOneCount(beginTime, endTime)
numDubugOne, err := models.GetDebugOneCount(beginTime, endTime)
if err != nil {
log.Error("GenerateDebugOneCount failed(%s): %v", numDubugOne, err)
log.Error("GetDebugOneCount failed(%s): %v", numDubugOne, err)
}
numBenchmarkOne, err := models.GenerateBenchmarkOneCount(beginTime, endTime)
numBenchmarkOne, err := models.GetBenchmarkOneCount(beginTime, endTime)
if err != nil {
log.Error("GenerateBenchmarkOneCount failed(%s): %v", numBenchmarkOne, err)
log.Error("GetBenchmarkOneCount failed(%s): %v", numBenchmarkOne, err)
}
numTrainOne, err := models.GenerateTrainOneCount(beginTime, endTime)
numTrainOne, err := models.GetTrainOneCount(beginTime, endTime)
if err != nil {
log.Error("GenerateTrainOneCount failed(%s): %v", numTrainOne, err)
log.Error("GetTrainOneCount failed(%s): %v", numTrainOne, err)
}
numDebugTwo, err := models.GenerateDebugTwoCount(beginTime, endTime)
numDebugTwo, err := models.GetDebugTwoCount(beginTime, endTime)
if err != nil {
log.Error("GenerateDebugTwoCount failed(%s): %v", numDebugTwo, err)
log.Error("GetDebugTwoCount failed(%s): %v", numDebugTwo, err)
}
numTrainTwo, err := models.GenerateTrainTwoCount(beginTime, endTime)
numTrainTwo, err := models.GetTrainTwoCount(beginTime, endTime)
if err != nil {
log.Error("GenerateTrainTwoCount failed(%s): %v", numTrainTwo, err)
log.Error("GetTrainTwoCount failed(%s): %v", numTrainTwo, err)
}
numInferenceTwo, err := models.GenerateInferenceTwoCount(beginTime, endTime)
numInferenceTwo, err := models.GetInferenceTwoCount(beginTime, endTime)
if err != nil {
log.Error("GenerateInferenceTwoCount failed(%s): %v", numInferenceTwo, err)
log.Error("GetInferenceTwoCount failed(%s): %v", numInferenceTwo, err)
}
numCloudOneAll := numDubugOne + numBenchmarkOne + numTrainOne
numCloudTwoAll := numDebugTwo + numTrainTwo + numInferenceTwo


Loading…
Cancel
Save