Merge pull request 'support refer env variables in alert template' (#88) from alert_env_support into master

This commit is contained in:
silenceqi 2023-05-17 12:19:12 +08:00
commit d76b2295b4
2 changed files with 30 additions and 2 deletions

View File

@ -894,6 +894,10 @@ func newParameterCtx(rule *alerting.Rule, checkResults *alerting.ConditionResult
alerting2.ParamRelationValues: resultItem.RelationValues,
})
}
envVariables, err := alerting2.GetEnvVariables()
if err != nil {
log.Errorf("get env variables error: %v", err)
}
paramsCtx := util.MapStr{
alerting2.ParamRuleID: rule.ID,
alerting2.ParamResourceID: rule.Resource.ID,
@ -903,8 +907,9 @@ func newParameterCtx(rule *alerting.Rule, checkResults *alerting.ConditionResult
"first_threshold": firstThreshold,
"rule_name": rule.Name,
"priority": priority,
"env": envVariables,
}
err := util.MergeFields(paramsCtx, extraParams, true)
err = util.MergeFields(paramsCtx, extraParams, true)
if err != nil {
log.Errorf("merge template params error: %v", err)
}
@ -982,8 +987,14 @@ func performChannel(channel *alerting.Channel, ctx map[string]interface{}) ([]by
if err != nil {
return nil, err, message
}
wh := *channel.Webhook
urlBytes, err := resolveMessage(wh.URL, ctx)
if err != nil {
return nil, err, message
}
wh.URL = string(urlBytes)
act = &action.WebhookAction{
Data: channel.Webhook,
Data: &wh,
Message: string(message),
}
default:

17
service/alerting/env.go Normal file
View File

@ -0,0 +1,17 @@
/* Copyright © INFINI Ltd. All rights reserved.
* Web: https://infinilabs.com
* Email: hello#infini.ltd */
package alerting
import (
"infini.sh/framework/core/config"
"infini.sh/framework/core/global"
)
func GetEnvVariables() (map[string]interface{}, error){
configFile := global.Env().GetConfigFile()
envVariables, err := config.LoadEnvVariables(configFile)
//todo override env variables with the variables defined in console ui
return envVariables, err
}