func (this *configRpc) loadConfig(section *conf.Conf) { this.listenAddr = section.String("listen_addr", "") if this.listenAddr == "" { panic("Empty listen_addr") } this.clientSlowThreshold = section.Float("client_slow_threshold", 5) this.callSlowThreshold = section.Float("call_slow_threshold", 5) this.clientTimeout = time.Duration(section.Int("client_timeout", 0)) * time.Second this.framed = section.Bool("framed", false) this.protocol = section.String("protocol", "binary") log.Debug("rpc: %+v", *this) }
func (this *alarmWorkerConfig) init(config *conf.Conf) { this.camelName = config.String("camel_name", "") if this.camelName == "" { panic("empty 'camel_name'") } this.title = config.String("title", "") if this.title == "" { this.title = this.camelName } this.colors = config.StringList("colors", nil) this.printFormat = config.String("printf", "") this.instantFormat = config.String("iprintf", "") if this.printFormat == "" && this.instantFormat == "" { panic(fmt.Sprintf("%s empty 'printf' and 'iprintf'", this.title)) } this.severity = config.Int("severity", 1) this.windowSize = time.Duration(config.Int("window_size", 0)) * time.Second this.showSummary = config.Bool("show_summary", false) this.beepThreshold = config.Int("beep_threshold", 0) this.abnormalBase = config.Int("abnormal_base", 10) this.abnormalSeverityFactor = config.Int("abnormal_severity_factor", 2) this.abnormalPercent = config.Float("abnormal_percent", 1.5) this.dbName = config.String("dbname", "") this.tableName = this.dbName // table name is db name this.createTable = config.String("create_table", "") this.insertStmt = config.String("insert_stmt", "") this.statsStmt = config.String("stats_stmt", "") this.fields = make([]alarmWorkerConfigField, 0, 5) for i := 0; i < len(config.List("fields", nil)); i++ { section, err := config.Section(fmt.Sprintf("fields[%d]", i)) if err != nil { panic(err) } field := alarmWorkerConfigField{} field.init(section) this.fields = append(this.fields, field) } if len(this.fields) == 0 { panic(fmt.Sprintf("%s empty 'fields'", this.title)) } }