in tool/preprocess/match.go [105:146]
func findAvailableRules() []resource.InstRule {
util.GuaranteeInPreprocess()
// Disable all instrumentation rules and rebuild the whole project to restore
// all instrumentation actions, this also reverts the modification on Golang
// runtime package.
if config.GetConf().Restore {
return nil
}
rules := make([]resource.InstRule, 0)
// Load default rules unless explicitly disabled
if !config.GetConf().IsDisableDefault() {
defaultRules := loadDefaultRules()
rules = append(rules, defaultRules...)
}
// If rule files are provided, load them
if config.GetConf().RuleJsonFiles != "" {
// Load multiple rule files
if strings.Contains(config.GetConf().RuleJsonFiles, ",") {
ruleFiles := strings.Split(config.GetConf().RuleJsonFiles, ",")
for _, ruleFile := range ruleFiles {
r, err := loadRuleFile(ruleFile)
if err != nil {
util.Log("Failed to load rules: %v", err)
continue
}
rules = append(rules, r...)
}
return rules
}
// Load the one rule file
rs, err := loadRuleFile(config.GetConf().RuleJsonFiles)
if err != nil {
util.Log("Failed to load rules: %v", err)
return nil
}
rules = append(rules, rs...)
}
return rules
}