disable traffic charts if set to zero
This commit is contained in:
@@ -90,6 +90,10 @@ func (a *ApiService) getData(c *gin.Context) (interface{}, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
trafficAge, err := a.SettingService.GetTrafficAge()
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
data["config"] = json.RawMessage(config)
|
data["config"] = json.RawMessage(config)
|
||||||
data["clients"] = clients
|
data["clients"] = clients
|
||||||
data["tls"] = tlsConfigs
|
data["tls"] = tlsConfigs
|
||||||
@@ -98,6 +102,7 @@ func (a *ApiService) getData(c *gin.Context) (interface{}, error) {
|
|||||||
data["endpoints"] = endpoints
|
data["endpoints"] = endpoints
|
||||||
data["services"] = services
|
data["services"] = services
|
||||||
data["subURI"] = subURI
|
data["subURI"] = subURI
|
||||||
|
data["enableTraffic"] = trafficAge > 0
|
||||||
data["onlines"] = onlines
|
data["onlines"] = onlines
|
||||||
} else {
|
} else {
|
||||||
data["onlines"] = onlines
|
data["onlines"] = onlines
|
||||||
|
|||||||
+3
-1
@@ -20,11 +20,13 @@ func (c *CronJob) Start(loc *time.Location, trafficAge int) error {
|
|||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
// Start stats job
|
// Start stats job
|
||||||
c.cron.AddJob("@every 10s", NewStatsJob())
|
c.cron.AddJob("@every 10s", NewStatsJob(trafficAge > 0))
|
||||||
// Start expiry job
|
// Start expiry job
|
||||||
c.cron.AddJob("@every 1m", NewDepleteJob())
|
c.cron.AddJob("@every 1m", NewDepleteJob())
|
||||||
// Start deleting old stats
|
// Start deleting old stats
|
||||||
|
if trafficAge > 0 {
|
||||||
c.cron.AddJob("@daily", NewDelStatsJob(trafficAge))
|
c.cron.AddJob("@daily", NewDelStatsJob(trafficAge))
|
||||||
|
}
|
||||||
// Start core if it is not running
|
// Start core if it is not running
|
||||||
c.cron.AddJob("@every 5s", NewCheckCoreJob())
|
c.cron.AddJob("@every 5s", NewCheckCoreJob())
|
||||||
}()
|
}()
|
||||||
|
|||||||
+6
-3
@@ -7,14 +7,17 @@ import (
|
|||||||
|
|
||||||
type StatsJob struct {
|
type StatsJob struct {
|
||||||
service.StatsService
|
service.StatsService
|
||||||
|
enableTraffic bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewStatsJob() *StatsJob {
|
func NewStatsJob(saveTraffic bool) *StatsJob {
|
||||||
return &StatsJob{}
|
return &StatsJob{
|
||||||
|
enableTraffic: saveTraffic,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StatsJob) Run() {
|
func (s *StatsJob) Run() {
|
||||||
err := s.StatsService.SaveStats()
|
err := s.StatsService.SaveStats(s.enableTraffic)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Warning("Get stats failed: ", err)
|
logger.Warning("Get stats failed: ", err)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -391,6 +391,13 @@ func (s *SettingService) Save(tx *gorm.DB, data json.RawMessage) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete all stats if it is set to 0
|
||||||
|
if key == "trafficAge" && obj == "0" {
|
||||||
|
err = tx.Where("id > 0").Delete(model.Stats{}).Error
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
err = tx.Model(model.Setting{}).Where("key = ?", key).Update("value", obj).Error
|
err = tx.Model(model.Setting{}).Where("key = ?", key).Update("value", obj).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
+5
-3
@@ -19,7 +19,7 @@ var onlineResources = &onlines{}
|
|||||||
type StatsService struct {
|
type StatsService struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StatsService) SaveStats() error {
|
func (s *StatsService) SaveStats(enableTraffic bool) error {
|
||||||
if !corePtr.IsRunning() {
|
if !corePtr.IsRunning() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -70,8 +70,10 @@ func (s *StatsService) SaveStats() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = tx.Create(&stats).Error
|
if !enableTraffic {
|
||||||
return err
|
return nil
|
||||||
|
}
|
||||||
|
return tx.Create(&stats).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StatsService) GetStats(resource string, tag string, limit int) ([]model.Stats, error) {
|
func (s *StatsService) GetStats(resource string, tag string, limit int) ([]model.Stats, error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user