|
- package models
-
- import (
- "fmt"
- "strconv"
- "time"
-
- "code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/timeutil"
- )
-
- // Cloudbrain statistic info of all CloudbrainTasks
- type CloudbrainStatistic struct {
- ID int64 `xorm:"pk autoincr" json:"-"`
- Date string `xorm:"NOT NULL DEFAULT 0" json:"date"`
- WhichHour int64 `xorm:"NOT NULL DEFAULT -1" json:"whichHour"`
- NumDubugOne int64 `xorm:"NOT NULL DEFAULT 0" json:"numDubugOne"`
- NumBenchmarkOne int64 `xorm:"NOT NULL DEFAULT 0" json:"numBenchmarkOne"`
- NumTrainOne int64 `xorm:"NOT NULL DEFAULT 0" json:"numTrainOne"`
- NumDubugTwo int64 `xorm:"NOT NULL DEFAULT 0" json:"numDubugTwo"`
- NumTrainTwo int64 `xorm:"NOT NULL DEFAULT 0" json:"numTrainTwo"`
- NumInferenceTwo int64 `xorm:"NOT NULL DEFAULT 0" json:"numInferenceTwo"`
- NumCloudOneAll int64 `xorm:"NOT NULL DEFAULT 0" json:"numCloudOneAll"`
- NumCloudTwoAll int64 `xorm:"NOT NULL DEFAULT 0" json:"numCloudTwoAll"`
-
- DurationDubugOne int64 `xorm:"NOT NULL DEFAULT 0" json:"durationDubugOne"`
- DurationBenchmarkOne int64 `xorm:"NOT NULL DEFAULT 0" json:"durationBenchmarkOne"`
- DurationTrainOne int64 `xorm:"NOT NULL DEFAULT 0" json:"durationTrainOne"`
- DurationDebugTwo int64 `xorm:"NOT NULL DEFAULT 0" json:"durationDebugTwo"`
- DurationTrainTwo int64 `xorm:"NOT NULL DEFAULT 0" json:"durationTrainTwo"`
- DurationInferenceTwo int64 `xorm:"NOT NULL DEFAULT 0" json:"durationInferenceTwo"`
- DurationCloudOneAll int64 `xorm:"NOT NULL DEFAULT 0" json:"durationCloudOneAll"`
- DurationCloudTwoAll int64 `xorm:"NOT NULL DEFAULT 0" json:"durationCloudTwoAll"`
-
- CreatedUnix timeutil.TimeStamp `xorm:"INDEX created" json:"-"`
- UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated" json:"-"`
- }
-
- func GetJobWaitingPeriodCount(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 GetJobRunningPeriodCount(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 GetJobStoppedPeriodCount(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(JobStopped) + "'"
-
- return x.SQL(countSql).Count()
- }
- func GetJobSucceededPeriodCount(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 GetJobFailedPeriodCount(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(JobFailed) + "'"
-
- return x.SQL(countSql).Count()
- }
-
- func GetDebugOnePeriodCount(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 job_type ='" + string(JobTypeDebug) + "'" +
- " and type='" + strconv.Itoa(TypeCloudBrainOne) + "'"
-
- return x.SQL(countSql).Count()
- }
- func GetDebugOnePeriodDuration(beginTime time.Time, endTime time.Time) (int64, error) {
- total, err := x.Where("created_unix >= ? And created_unix < ? And job_type = ? And type = ? ", strconv.FormatInt(beginTime.Unix(), 10), strconv.FormatInt(endTime.Unix(), 10), JobTypeDebug, TypeCloudBrainOne).SumInt(&Cloudbrain{}, "duration")
- if err != nil {
- return 0, err
- }
-
- return total, nil
- }
-
- func GetTrainOnePeriodCount(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 job_type ='" + string(JobTypeTrain) + "'" +
- " and type='" + strconv.Itoa(TypeCloudBrainOne) + "'"
-
- return x.SQL(countSql).Count()
- }
- func GetTrainOnePeriodDuration(beginTime time.Time, endTime time.Time) (int64, error) {
- total, err := x.Where("created_unix >= ? And created_unix < ? And job_type = ? And type = ? ", strconv.FormatInt(beginTime.Unix(), 10), strconv.FormatInt(endTime.Unix(), 10), JobTypeTrain, TypeCloudBrainOne).SumInt(&Cloudbrain{}, "duration")
- if err != nil {
- return 0, err
- }
-
- return total, nil
- }
-
- func GetBenchmarkOnePeriodCount(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 job_type ='" + string(JobTypeBenchmark) + "'" +
- " and type='" + strconv.Itoa(TypeCloudBrainOne) + "'"
- return x.SQL(countSql).Count()
- }
- func GetBenchmarkOnePeriodDuration(beginTime time.Time, endTime time.Time) (int64, error) {
- total, err := x.Where("created_unix >= ? And created_unix < ? And job_type = ? And type = ? ", strconv.FormatInt(beginTime.Unix(), 10), strconv.FormatInt(endTime.Unix(), 10), JobTypeBenchmark, TypeCloudBrainOne).SumInt(&Cloudbrain{}, "duration")
- if err != nil {
- return 0, err
- }
-
- return total, nil
- }
- func GetDebugTwoPeriodCount(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 job_type ='" + string(JobTypeDebug) + "'" +
- " and type='" + strconv.Itoa(TypeCloudBrainTwo) + "'"
- return x.SQL(countSql).Count()
- }
- func GetDebugTwoPeriodDuration(beginTime time.Time, endTime time.Time) (int64, error) {
- total, err := x.Where("created_unix >= ? And created_unix < ? And job_type = ? And type = ? ", strconv.FormatInt(beginTime.Unix(), 10), strconv.FormatInt(endTime.Unix(), 10), JobTypeDebug, TypeCloudBrainTwo).SumInt(&Cloudbrain{}, "duration")
- if err != nil {
- return 0, err
- }
- return total, nil
- }
- func GetTrainTwoPeriodCount(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 job_type ='" + string(JobTypeTrain) + "'" +
- " and type='" + strconv.Itoa(TypeCloudBrainTwo) + "'"
- return x.SQL(countSql).Count()
- }
- func GetTrainTwoPeriodDuration(beginTime time.Time, endTime time.Time) (int64, error) {
- total, err := x.Where("created_unix >= ? And created_unix < ? And job_type = ? And type = ? ", strconv.FormatInt(beginTime.Unix(), 10), strconv.FormatInt(endTime.Unix(), 10), JobTypeTrain, TypeCloudBrainTwo).SumInt(&Cloudbrain{}, "duration")
- if err != nil {
- return 0, err
- }
- return total, nil
- }
- func GetInferenceTwoPeriodCount(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 job_type ='" + string(JobTypeInference) + "'" +
- " and type='" + strconv.Itoa(TypeCloudBrainTwo) + "'"
- return x.SQL(countSql).Count()
- }
- func GetInferenceTwoPeriodDuration(beginTime time.Time, endTime time.Time) (int64, error) {
- total, err := x.Where("created_unix >= ? And created_unix < ? And job_type = ? And type = ? ", strconv.FormatInt(beginTime.Unix(), 10), strconv.FormatInt(endTime.Unix(), 10), JobTypeInference, TypeCloudBrainTwo).SumInt(&Cloudbrain{}, "duration")
- if err != nil {
- return 0, err
- }
- return total, nil
- }
-
- func GetCloudBrainOnePeriodCount(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 type='" + strconv.Itoa(TypeCloudBrainOne) + "'"
- return x.SQL(countSql).Count()
- }
- func GetCloudBrainOnePeriodDuration(beginTime time.Time, endTime time.Time) (int64, error) {
- total, err := x.Where("created_unix >= ? And created_unix < ? And type = ? ", strconv.FormatInt(beginTime.Unix(), 10), strconv.FormatInt(endTime.Unix(), 10), TypeCloudBrainOne).SumInt(&Cloudbrain{}, "duration")
- if err != nil {
- return 0, err
- }
- return total, nil
- }
- func GetCloudBrainTwoPeriodCount(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 type='" + strconv.Itoa(TypeCloudBrainTwo) + "'"
- return x.SQL(countSql).Count()
- }
- func GetCloudBrainTwoPeriodDuration(beginTime time.Time, endTime time.Time) (int64, error) {
- total, err := x.Where("created_unix >= ? And created_unix < ? And type = ? ", strconv.FormatInt(beginTime.Unix(), 10), strconv.FormatInt(endTime.Unix(), 10), TypeCloudBrainTwo).SumInt(&Cloudbrain{}, "duration")
- if err != nil {
- return 0, err
- }
- return total, nil
- }
-
- func GetCloudBrainOneCount() (int64, error) {
- countSql := "SELECT count(*) FROM " +
- "public.cloudbrain where type='" + strconv.Itoa(TypeCloudBrainOne) + "'"
-
- return x.SQL(countSql).Count()
- }
- func GetCloudBrainOneDuration() (int64, error) {
- total, err := x.Where("type = ? ", TypeCloudBrainOne).SumInt(&Cloudbrain{}, "duration")
- if err != nil {
- return 0, err
- }
-
- return total, nil
- }
- func GetCloudBrainTwoCount() (int64, error) {
- countSql := "SELECT count(*) FROM " +
- "public.cloudbrain where type='" + strconv.Itoa(TypeCloudBrainTwo) + "'"
-
- return x.SQL(countSql).Count()
- }
- func GetCloudBrainTwoDuration() (int64, error) {
- total, err := x.Where("type = ? ", TypeCloudBrainTwo).SumInt(&Cloudbrain{}, "duration")
- if err != nil {
- return 0, err
- }
-
- return total, nil
- }
-
- func GetCreatorPeriodCount(beginTime time.Time, endTime time.Time) (int64, error) {
- countSql := "SELECT count(distinct user_id) FROM " +
- "public.cloudbrain where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
- " and created_unix<" + strconv.FormatInt(endTime.Unix(), 10)
- return x.SQL(countSql).Count()
- }
- func GetCreatorCount() (int64, error) {
- countSql := "SELECT count(distinct user_id) FROM public.cloudbrain"
- return x.SQL(countSql).Count()
- }
-
- func DeleteCloudbrainStatisticDaily(date string) error {
- sess := xStatistic.NewSession()
- defer sess.Close()
- if err := sess.Begin(); err != nil {
- return fmt.Errorf("Begin: %v", err)
- }
-
- if _, err := sess.Where("date = ?", date).Delete(&CloudbrainStatistic{}); err != nil {
- return fmt.Errorf("Delete: %v", err)
- }
-
- if err := sess.Commit(); err != nil {
- sess.Close()
- return fmt.Errorf("Commit: %v", err)
- }
-
- sess.Close()
- return nil
- }
-
- func GetHourStatTime(timeStr string, whichHour int64) (time.Time, time.Time) {
- t, _ := time.Parse("2006-01-02", timeStr)
- timeNumber := t.Unix()
- beginTimeNumber := timeNumber - 8*60*60 + whichHour*60*60
- endTimeNumber := beginTimeNumber + 1*60*60
- beginTime := time.Unix(beginTimeNumber, 0)
- endTime := time.Unix(endTimeNumber, 0)
- log.Info("%s, %s", beginTime, endTime)
-
- return beginTime, endTime
- }
- func GetDayStatTime(timeStr string) (time.Time, time.Time) {
- t, _ := time.Parse("2006-01-02", timeStr)
- timeNumber := t.Unix()
- beginTimeNumber := timeNumber - 8*60*60
- endTimeNumber := beginTimeNumber + 16*60*60
- beginTime := time.Unix(beginTimeNumber, 0)
- endTime := time.Unix(endTimeNumber, 0)
- log.Info("%s, %s", beginTime, endTime)
-
- return beginTime, endTime
- }
-
- func CreateCloudbrainStatistic(cloudbrainStat *CloudbrainStatistic) (err error) {
- if _, err = xStatistic.Insert(cloudbrainStat); err != nil {
- return err
- }
- return nil
- }
-
- func GetJobWaitingCount() (int64, error) {
- countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobWaiting) + "'"
- return x.SQL(countSql).Count()
- }
- func GetJobStoppedCount() (int64, error) {
- countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobStopped) + "'"
- return x.SQL(countSql).Count()
- }
- func GetJobSucceededCount() (int64, error) {
- countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobSucceeded) + "'"
- return x.SQL(countSql).Count()
- }
- func GetJobFailedCount() (int64, error) {
- countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobFailed) + "'"
- return x.SQL(countSql).Count()
- }
- func GetJobRunningCount() (int64, error) {
- countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobRunning) + "'"
- return x.SQL(countSql).Count()
- }
|