diff --git a/internal/db/models/metric_item_dao.go b/internal/db/models/metric_item_dao.go index 9b3942ea..7064dd85 100644 --- a/internal/db/models/metric_item_dao.go +++ b/internal/db/models/metric_item_dao.go @@ -108,10 +108,10 @@ func (this *MetricItemDAO) FindMetricItemName(tx *dbs.Tx, id int64) (string, err } // CreateItem 创建指标 -func (this *MetricItemDAO) CreateItem(tx *dbs.Tx, code string, category string, name string, keys []string, period int32, periodUnit string, value string, isPublic bool) (int64, error) { +func (this *MetricItemDAO) CreateItem(tx *dbs.Tx, code string, category string, name string, keys []string, period int32, periodUnit string, expiresPeriod int32, value string, isPublic bool) (int64, error) { sort.Strings(keys) - op := NewMetricItemOperator() + var op = NewMetricItemOperator() op.Code = code op.Category = category op.Name = name @@ -126,6 +126,7 @@ func (this *MetricItemDAO) CreateItem(tx *dbs.Tx, code string, category string, } op.Period = period op.PeriodUnit = periodUnit + op.ExpiresPeriod = expiresPeriod op.Value = value op.IsPublic = isPublic op.IsOn = true @@ -146,7 +147,7 @@ func (this *MetricItemDAO) CreateItem(tx *dbs.Tx, code string, category string, } // UpdateItem 修改\指标 -func (this *MetricItemDAO) UpdateItem(tx *dbs.Tx, itemId int64, name string, keys []string, period int32, periodUnit string, value string, isOn bool, isPublic bool) error { +func (this *MetricItemDAO) UpdateItem(tx *dbs.Tx, itemId int64, name string, keys []string, period int32, periodUnit string, expiresPeriod int32, value string, isOn bool, isPublic bool) error { if itemId <= 0 { return errors.New("invalid itemId") } @@ -168,7 +169,7 @@ func (this *MetricItemDAO) UpdateItem(tx *dbs.Tx, itemId int64, name string, key } // 保存 - op := NewMetricItemOperator() + var op = NewMetricItemOperator() op.Id = itemId op.Name = name if len(keys) > 0 { @@ -182,6 +183,7 @@ func (this *MetricItemDAO) UpdateItem(tx *dbs.Tx, itemId int64, name string, key } op.Period = period op.PeriodUnit = periodUnit + op.ExpiresPeriod = expiresPeriod op.Value = value op.IsOn = isOn if versionChanged { @@ -282,14 +284,15 @@ func (this *MetricItemDAO) ComposeItemConfig(tx *dbs.Tx, itemId int64) (*serverc } var item = one.(*MetricItem) var config = &serverconfigs.MetricItemConfig{ - Id: int64(item.Id), - IsOn: item.IsOn, - Period: types.Int(item.Period), - PeriodUnit: item.PeriodUnit, - Category: item.Category, - Value: item.Value, - Keys: item.DecodeKeys(), - Version: types.Int32(item.Version), + Id: int64(item.Id), + IsOn: item.IsOn, + Period: types.Int(item.Period), + PeriodUnit: item.PeriodUnit, + ExpiresPeriod: types.Int(item.ExpiresPeriod), + Category: item.Category, + Value: item.Value, + Keys: item.DecodeKeys(), + Version: types.Int32(item.Version), } return config, nil @@ -301,14 +304,15 @@ func (this *MetricItemDAO) ComposeItemConfigWithItem(item *MetricItem) *serverco return nil } var config = &serverconfigs.MetricItemConfig{ - Id: int64(item.Id), - IsOn: item.IsOn, - Period: types.Int(item.Period), - PeriodUnit: item.PeriodUnit, - Category: item.Category, - Value: item.Value, - Keys: item.DecodeKeys(), - Version: types.Int32(item.Version), + Id: int64(item.Id), + IsOn: item.IsOn, + Period: types.Int(item.Period), + PeriodUnit: item.PeriodUnit, + ExpiresPeriod: types.Int(item.ExpiresPeriod), + Category: item.Category, + Value: item.Value, + Keys: item.DecodeKeys(), + Version: types.Int32(item.Version), } return config diff --git a/internal/db/models/metric_item_dao_test.go b/internal/db/models/metric_item_dao_test.go index 224e9db7..a3c2d5ad 100644 --- a/internal/db/models/metric_item_dao_test.go +++ b/internal/db/models/metric_item_dao_test.go @@ -1,6 +1,13 @@ -package models +package models_test import ( + "github.com/TeaOSLab/EdgeAPI/internal/db/models" _ "github.com/go-sql-driver/mysql" _ "github.com/iwind/TeaGo/bootstrap" + "testing" ) + +func TestMetricStatDAO_Clean(t *testing.T) { + var dao = models.NewMetricStatDAO() + t.Log(dao.Clean(nil)) +} diff --git a/internal/db/models/metric_stat_dao.go b/internal/db/models/metric_stat_dao.go index 14856ed1..e852aea4 100644 --- a/internal/db/models/metric_stat_dao.go +++ b/internal/db/models/metric_stat_dao.go @@ -3,12 +3,12 @@ package models import ( "encoding/json" "github.com/TeaOSLab/EdgeAPI/internal/goman" + "github.com/TeaOSLab/EdgeAPI/internal/remotelogs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" _ "github.com/go-sql-driver/mysql" "github.com/iwind/TeaGo/Tea" "github.com/iwind/TeaGo/dbs" "github.com/iwind/TeaGo/lists" - "github.com/iwind/TeaGo/logs" "github.com/iwind/TeaGo/maps" "github.com/iwind/TeaGo/rands" timeutil "github.com/iwind/TeaGo/utils/time" @@ -26,7 +26,7 @@ func init() { for range ticker.C { err := SharedMetricStatDAO.Clean(nil) if err != nil { - logs.Println("SharedMetricStatDAO: clean expired data failed: " + err.Error()) + remotelogs.Error("SharedMetricStatDAO", "clean expired data failed: "+err.Error()) } } }) @@ -474,9 +474,10 @@ func (this *MetricStatDAO) Clean(tx *dbs.Tx) error { } for _, item := range items { var config = &serverconfigs.MetricItemConfig{ - Id: int64(item.Id), - Period: int(item.Period), - PeriodUnit: item.PeriodUnit, + Id: int64(item.Id), + Period: int(item.Period), + PeriodUnit: item.PeriodUnit, + ExpiresPeriod: int(item.ExpiresPeriod), } var expiresDay = config.ServerExpiresDay() _, err := this.Query(tx). diff --git a/internal/db/models/metric_sum_stat_dao.go b/internal/db/models/metric_sum_stat_dao.go index c402b185..52ebaf2c 100644 --- a/internal/db/models/metric_sum_stat_dao.go +++ b/internal/db/models/metric_sum_stat_dao.go @@ -2,11 +2,11 @@ package models import ( "github.com/TeaOSLab/EdgeAPI/internal/goman" + "github.com/TeaOSLab/EdgeAPI/internal/remotelogs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" _ "github.com/go-sql-driver/mysql" "github.com/iwind/TeaGo/Tea" "github.com/iwind/TeaGo/dbs" - "github.com/iwind/TeaGo/logs" "github.com/iwind/TeaGo/maps" "github.com/iwind/TeaGo/rands" timeutil "github.com/iwind/TeaGo/utils/time" @@ -23,7 +23,7 @@ func init() { for range ticker.C { err := SharedMetricSumStatDAO.Clean(nil) if err != nil { - logs.Println("SharedMetricSumStatDAO: clean expired data failed: " + err.Error()) + remotelogs.Error("SharedMetricSumStatDAO", "clean expired data failed: "+err.Error()) } } }) @@ -180,9 +180,10 @@ func (this *MetricSumStatDAO) Clean(tx *dbs.Tx) error { } for _, item := range items { var config = &serverconfigs.MetricItemConfig{ - Id: int64(item.Id), - Period: int(item.Period), - PeriodUnit: item.PeriodUnit, + Id: int64(item.Id), + Period: int(item.Period), + PeriodUnit: item.PeriodUnit, + ExpiresPeriod: int(item.ExpiresPeriod), } var expiresDay = config.ServerExpiresDay() _, err := this.Query(tx). diff --git a/internal/rpc/services/service_metric_item.go b/internal/rpc/services/service_metric_item.go index 385998fb..df6d171a 100644 --- a/internal/rpc/services/service_metric_item.go +++ b/internal/rpc/services/service_metric_item.go @@ -22,7 +22,7 @@ func (this *MetricItemService) CreateMetricItem(ctx context.Context, req *pb.Cre } var tx = this.NullTx() - itemId, err := models.SharedMetricItemDAO.CreateItem(tx, req.Code, req.Category, req.Name, req.Keys, req.Period, req.PeriodUnit, req.Value, req.IsPublic) + itemId, err := models.SharedMetricItemDAO.CreateItem(tx, req.Code, req.Category, req.Name, req.Keys, req.Period, req.PeriodUnit, req.ExpiresPeriod, req.Value, req.IsPublic) if err != nil { return nil, err } @@ -37,7 +37,7 @@ func (this *MetricItemService) UpdateMetricItem(ctx context.Context, req *pb.Upd } var tx = this.NullTx() - err = models.SharedMetricItemDAO.UpdateItem(tx, req.MetricItemId, req.Name, req.Keys, req.Period, req.PeriodUnit, req.Value, req.IsOn, req.IsPublic) + err = models.SharedMetricItemDAO.UpdateItem(tx, req.MetricItemId, req.Name, req.Keys, req.Period, req.PeriodUnit, req.ExpiresPeriod, req.Value, req.IsOn, req.IsPublic) if err != nil { return nil, err } @@ -60,16 +60,17 @@ func (this *MetricItemService) FindEnabledMetricItem(ctx context.Context, req *p return &pb.FindEnabledMetricItemResponse{MetricItem: nil}, nil } return &pb.FindEnabledMetricItemResponse{MetricItem: &pb.MetricItem{ - Id: int64(item.Id), - IsOn: item.IsOn, - Code: item.Code, - Category: item.Category, - Name: item.Name, - Keys: item.DecodeKeys(), - Period: types.Int32(item.Period), - PeriodUnit: item.PeriodUnit, - Value: item.Value, - IsPublic: item.IsPublic, + Id: int64(item.Id), + IsOn: item.IsOn, + Code: item.Code, + Category: item.Category, + Name: item.Name, + Keys: item.DecodeKeys(), + Period: types.Int32(item.Period), + PeriodUnit: item.PeriodUnit, + ExpiresPeriod: types.Int32(item.ExpiresPeriod), + Value: item.Value, + IsPublic: item.IsPublic, }}, nil } @@ -103,16 +104,17 @@ func (this *MetricItemService) ListEnabledMetricItems(ctx context.Context, req * var pbItems = []*pb.MetricItem{} for _, item := range items { pbItems = append(pbItems, &pb.MetricItem{ - Id: int64(item.Id), - IsOn: item.IsOn, - Code: item.Code, - Category: item.Category, - Name: item.Name, - Keys: item.DecodeKeys(), - Period: types.Int32(item.Period), - PeriodUnit: item.PeriodUnit, - Value: item.Value, - IsPublic: item.IsPublic, + Id: int64(item.Id), + IsOn: item.IsOn, + Code: item.Code, + Category: item.Category, + Name: item.Name, + Keys: item.DecodeKeys(), + Period: types.Int32(item.Period), + PeriodUnit: item.PeriodUnit, + ExpiresPeriod: types.Int32(item.ExpiresPeriod), + Value: item.Value, + IsPublic: item.IsPublic, }) }