Skip to content

Commit

Permalink
[COMTROLLER/RECORDER] optimizes message metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
zhengya authored and SongZhen0704 committed May 29, 2024
1 parent 61ac007 commit 48f8bc5
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 14 deletions.
4 changes: 2 additions & 2 deletions server/controller/db/mysql/common/const.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
package common

const (
NONE_DEFAULT_ORG_DATABASE_SUFFIX = "_deepflow"
DATABASE_PREFIX_ALIGNMENT = "%04d"
NON_DEFAULT_ORG_DATABASE_SUFFIX = "_deepflow"
DATABASE_PREFIX_ALIGNMENT = "%04d"
)

const (
Expand Down
2 changes: 1 addition & 1 deletion server/controller/db/mysql/common/org.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ var log = logging.MustGetLogger("db.mysql.common")

// ORGIDToDatabaseName convert organization id to database name, format: 0002_deepflow
func ORGIDToDatabaseName(id int) string {
return fmt.Sprintf(DATABASE_PREFIX_ALIGNMENT, id) + NONE_DEFAULT_ORG_DATABASE_SUFFIX
return fmt.Sprintf(DATABASE_PREFIX_ALIGNMENT, id) + NON_DEFAULT_ORG_DATABASE_SUFFIX
}

func ReplaceConfigDatabaseName(cfg config.MySqlConfig, orgID int) config.MySqlConfig {
Expand Down
2 changes: 1 addition & 1 deletion server/controller/db/mysql/migrator/common/migrator.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ func InitCETables(dc *DBConfig) error {
}

// 通过判断数据库名称后缀,判断数据库是否是 default 组织。
if !strings.HasSuffix(dc.Config.Database, common.NONE_DEFAULT_ORG_DATABASE_SUFFIX) {
if !strings.HasSuffix(dc.Config.Database, common.NON_DEFAULT_ORG_DATABASE_SUFFIX) {
if err := initCEDefaultORGTables(dc); err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion server/controller/http/service/resource/domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -649,7 +649,7 @@ func deleteDomain(domain *mysql.Domain, db *mysql.DB, userInfo *svc.UserInfo, cf
db.Delete(&domain)

// pub to tagrecorder
metadata := message.NewMetadata(db.ORGID, domain.TeamID, domain.ID, 0)
metadata := message.NewMetadata(db.ORGID, domain.TeamID, domain.ID)
for _, s := range tagrecorder.GetSubscriberManager().GetSubscribers("domain") {
s.OnDomainDeleted(metadata)
}
Expand Down
4 changes: 2 additions & 2 deletions server/controller/recorder/cleaner.go
Original file line number Diff line number Diff line change
Expand Up @@ -496,15 +496,15 @@ func (t *toolData) load(db *mysql.DB) error {
domainLcuuidToID := make(map[string]int)
for _, domain := range domains {
domainLcuuidToID[domain.Lcuuid] = domain.ID
t.domainLcuuidToMsgMetadata[domain.Lcuuid] = message.NewMetadata(db.ORGID, domain.TeamID, domain.ID, 0)
t.domainLcuuidToMsgMetadata[domain.Lcuuid] = message.NewMetadata(db.ORGID, domain.TeamID, domain.ID)
}
var subDomains []*mysql.SubDomain
if err := db.Find(&subDomains).Error; err != nil {
log.Error(db.Logf("failed to get sub_domain: %s", err.Error()))
return err
}
for _, subDomain := range subDomains {
t.subDomainLcuuidToMsgMetadata[subDomain.Lcuuid] = message.NewMetadata(db.ORGID, subDomain.TeamID, domainLcuuidToID[subDomain.Domain], subDomain.ID)
t.subDomainLcuuidToMsgMetadata[subDomain.Lcuuid] = message.NewMetadata(db.ORGID, subDomain.TeamID, domainLcuuidToID[subDomain.Domain], message.MetadataSubDomainID(subDomain.ID))
}
return nil
}
21 changes: 15 additions & 6 deletions server/controller/recorder/pubsub/message/metadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,20 @@ type Metadata struct {
SubDomainID int
}

func NewMetadata(orgID, teamID, domainID, subDomainID int) *Metadata {
return &Metadata{
ORGID: orgID,
TeamID: teamID,
DomainID: domainID,
SubDomainID: subDomainID,
func NewMetadata(orgID, teamID, domainID int, options ...func(*Metadata)) *Metadata {
md := &Metadata{
ORGID: orgID,
TeamID: teamID,
DomainID: domainID,
}
for _, option := range options {
option(md)
}
return md
}

func MetadataSubDomainID(id int) func(*Metadata) {
return func(m *Metadata) {
m.SubDomainID = id
}
}
3 changes: 2 additions & 1 deletion server/controller/recorder/updater/updater.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,8 @@ func newUpdaterBase[
diffBaseData: diffBaseData,
cloudData: cloudData,
}
u.msgMetadata = message.NewMetadata(u.metadata.GetORGID(), u.metadata.Domain.TeamID, u.metadata.Domain.ID, u.metadata.SubDomain.ID)
u.msgMetadata = message.NewMetadata(u.metadata.GetORGID(), u.metadata.Domain.TeamID, u.metadata.Domain.ID, message.MetadataSubDomainID(u.metadata.SubDomain.ID))

log.Infof(u.metadata.Logf("new updater for resource type: %s, message metadata: %#v", resourceType, u.msgMetadata)) // TODO debug
u.initPubSub()
return u
Expand Down

0 comments on commit 48f8bc5

Please sign in to comment.