github.com/vseinstrumentiru/lego@v1.0.2/internal/lego/monitor/config.go (about) 1 package monitor 2 3 import ( 4 "emperror.dev/errors" 5 "github.com/spf13/pflag" 6 "github.com/spf13/viper" 7 "github.com/vseinstrumentiru/lego/internal/lego/monitor/errorhandler" 8 "github.com/vseinstrumentiru/lego/internal/lego/monitor/exporter" 9 "github.com/vseinstrumentiru/lego/internal/lego/monitor/log" 10 "github.com/vseinstrumentiru/lego/internal/lego/monitor/telemetry" 11 "github.com/vseinstrumentiru/lego/internal/lego/monitor/tracer" 12 ) 13 14 type Config struct { 15 Log log.Config 16 Errorhandler errorhandler.Config 17 Exporter exporter.Config 18 Trace tracer.Config 19 Telemetry telemetry.Config 20 } 21 22 func (c Config) SetDefaults(env *viper.Viper, flag *pflag.FlagSet) { 23 c.Log.SetDefaults(env, flag) 24 c.Errorhandler.SetDefaults(env, flag) 25 c.Exporter.SetDefaults(env, flag) 26 c.Trace.SetDefaults(env, flag) 27 c.Telemetry.SetDefaults(env, flag) 28 } 29 30 func (c Config) Validate() (err error) { 31 err = errors.Append(err, c.Log.Validate()) 32 err = errors.Append(err, c.Errorhandler.Validate()) 33 err = errors.Append(err, c.Exporter.Validate()) 34 err = errors.Append(err, c.Trace.Validate()) 35 err = errors.Append(err, c.Telemetry.Validate()) 36 37 return 38 }