fix(monitor): meter alert panic (#23920)

This commit is contained in:
Zexi Li
2025-12-12 10:20:13 +08:00
committed by GitHub
parent 4fbe43192d
commit 67d743296d
2 changed files with 26 additions and 9 deletions
+12 -3
View File
@@ -413,9 +413,18 @@ func (oc *OneCloudNotifier) newMeterRemoteMobileContent(config *monitor.Notifica
typ = "预算"
config.Title = MOBILE_DEFAULT_TOPIC_CN
}
customizeConfig := new(monitor.MeterCustomizeConfig)
evalCtx.Rule.CustomizeConfig.Unmarshal(customizeConfig)
return mobileContent(customizeConfig.Name, typ)
var name string
if evalCtx.Rule.CustomizeConfig != nil {
customizeConfig := new(monitor.MeterCustomizeConfig)
if err := evalCtx.Rule.CustomizeConfig.Unmarshal(customizeConfig); err == nil {
name = customizeConfig.Name
}
}
// 兼容旧数据:如果 CustomizeConfig 为 nil 或解析失败,使用 Rule.Name 作为后备值
if name == "" {
name = evalCtx.Rule.Name
}
return mobileContent(name, typ)
}
func GetUserLangIdsMap(ids []string) (map[string][]string, error) {
+14 -6
View File
@@ -202,10 +202,14 @@ func (f *sMeterDailyFee) ToAlertCreateInput(
level string,
) monitor.AlertCreateInput {
freq, _ := time.ParseDuration(input.Window)
customizeConfig := monitor.MeterCustomizeConfig{
Name: f.GetName(),
}
ret := monitor.AlertCreateInput{
Name: f.GetName(),
Level: level,
Frequency: int64(freq / time.Second),
Name: f.GetName(),
Level: level,
Frequency: int64(freq / time.Second),
CustomizeConfig: jsonutils.Marshal(customizeConfig),
Settings: GetMeterAlertSetting(input,
"account_daily_resfee",
"meter_db", allAccountIds, "sumDate"),
@@ -233,10 +237,14 @@ func (f *sMeterMonthFee) ToAlertCreateInput(
level string,
) monitor.AlertCreateInput {
freq, _ := time.ParseDuration(input.Window)
customizeConfig := monitor.MeterCustomizeConfig{
Name: f.GetName(),
}
ret := monitor.AlertCreateInput{
Name: f.GetName(),
Level: level,
Frequency: int64(freq / time.Second),
Name: f.GetName(),
Level: level,
Frequency: int64(freq / time.Second),
CustomizeConfig: jsonutils.Marshal(customizeConfig),
Settings: GetMeterAlertSetting(input,
"account_month_resfee",
"meter_db", allAccountIds, "sumMonth"),