Skip to content

Commit

Permalink
Feature/base options (#269)
Browse files Browse the repository at this point in the history
* refactor: wrapper jaeger with telemetry

Signed-off-by: zuozheng.hzz <zuozheng.hzz@alibaba-inc.com>

* fix: viper parse common flags

Signed-off-by: zuozheng.hzz <zuozheng.hzz@alibaba-inc.com>
  • Loading branch information
garfield009 authored May 27, 2021
1 parent 724deb6 commit accfef0
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 28 deletions.
1 change: 0 additions & 1 deletion client/config/peerhost.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ type PeerHostOption struct {
Proxy *ProxyOption `mapstructure:"proxy" yaml:"proxy"`
Upload UploadOption `mapstructure:"upload" yaml:"upload"`
Storage StorageOption `mapstructure:"storage" yaml:"storage"`
Telemetry TelemetryOption `mapstructure:"telemetry" yaml:"telemetry"`
ConfigServer string `mapstructure:"configServer" yaml:"configServer"`
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/cdn/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ func runCdnSystem() error {
s, _ := yaml.Marshal(cfg)
logger.Infof("cdn system configuration:\n%s", string(s))

ff := dependency.InitMonitor(cfg.Verbose, cfg.PProfPort, cfg.Jaeger)
ff := dependency.InitMonitor(cfg.Verbose, cfg.PProfPort, cfg.Telemetry.Jaeger)
defer ff()

svr, err := server.New(cfg)
Expand Down
13 changes: 9 additions & 4 deletions cmd/dependency/base/option.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@
package base

type Options struct {
Console bool `yaml:"console" mapstructure:"console"`
Verbose bool `yaml:"verbose" mapstructure:"verbose"`
PProfPort int `yaml:"pprof-port" mapstructure:"pprof-port"`
Jaeger string `yaml:"jaeger" mapstructure:"jaeger"`
Console bool `yaml:"console" mapstructure:"console"`
Verbose bool `yaml:"verbose" mapstructure:"verbose"`
PProfPort int `yaml:"pprof-port" mapstructure:"pprof-port"`
Telemetry TelemetryOption `yaml:",inline" mapstructure:",squash"`
}

// TelemetryOption is the option for telemetry
type TelemetryOption struct {
Jaeger string `yaml:"jaeger" mapstructure:"jaeger"`
}
36 changes: 18 additions & 18 deletions cmd/dependency/dependency.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,26 +58,26 @@ func InitCobra(cmd *cobra.Command, useConfigFile bool, config interface{}) {
rootName := cmd.Root().Name()
cobra.OnInitialize(func() { initConfig(useConfigFile, rootName, config) })

// Add common flags
flags := cmd.Flags()
flags.Bool("console", false, "whether logger output records to the stdout")
flags.Bool("verbose", false, "whether logger use debug level")
flags.Int("pprof-port", -1, "listen port for pprof, 0 represents random port")
flags.String("jaeger", "", "jaeger endpoint url, like: http://localhost:14250/api/traces")
flags.String("config", "", fmt.Sprintf("the path of configuration file with yaml extension name, default is %s, it can also be set by env var:%s", filepath.Join(dfpath.DefaultConfigDir, rootName+".yaml"), strings.ToUpper(rootName+"_config")))

// Bind common flags
if err := viper.BindPFlags(flags); err != nil {
panic(errors.Wrap(err, "bind common flags to viper"))
}
if !cmd.HasParent() {
// Add common flags
flags := cmd.PersistentFlags()
flags.Bool("console", false, "whether logger output records to the stdout")
flags.Bool("verbose", false, "whether logger use debug level")
flags.Int("pprof-port", -1, "listen port for pprof, 0 represents random port")
flags.String("jaeger", "", "jaeger endpoint url, like: http://localhost:14250/api/traces")
flags.String("config", "", fmt.Sprintf("the path of configuration file with yaml extension name, default is %s, it can also be set by env var:%s", filepath.Join(dfpath.DefaultConfigDir, rootName+".yaml"), strings.ToUpper(rootName+"_config")))

// Bind common flags
if err := viper.BindPFlags(flags); err != nil {
panic(errors.Wrap(err, "bind common flags to viper"))
}

// Config for binding env
viper.SetEnvPrefix(rootName)
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
_ = viper.BindEnv("config")
// Config for binding env
viper.SetEnvPrefix(rootName)
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
_ = viper.BindEnv("config")

// Add common cmds only on root cmd
if !cmd.HasParent() {
// Add common cmds only on root cmd
cmd.AddCommand(VersionCmd)
cmd.AddCommand(newDocCommand(cmd.Name()))
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/dfget/cmd/daemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ func runDaemon() error {
s, _ := yaml.Marshal(cfg)
logger.Infof("client daemon configuration:\n%s", string(s))

ff := dependency.InitMonitor(cfg.Verbose, cfg.PProfPort, cfg.Jaeger)
ff := dependency.InitMonitor(cfg.Verbose, cfg.PProfPort, cfg.Telemetry.Jaeger)
defer ff()

svr, err := server.New(cfg)
Expand Down
2 changes: 1 addition & 1 deletion cmd/dfget/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ func runDfget() error {
s, _ := yaml.Marshal(dfgetConfig)
logger.Infof("client dfget configuration:\n%s", string(s))

ff := dependency.InitMonitor(dfgetConfig.Verbose, dfgetConfig.PProfPort, dfgetConfig.Jaeger)
ff := dependency.InitMonitor(dfgetConfig.Verbose, dfgetConfig.PProfPort, dfgetConfig.Telemetry.Jaeger)
defer ff()

logger.Info("start to check and spawn daemon")
Expand Down
2 changes: 1 addition & 1 deletion cmd/manager/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func runManager() error {
s, _ := yaml.Marshal(cfg)
logger.Infof("manager configuration:\n%s", string(s))

ff := dependency.InitMonitor(cfg.Verbose, cfg.PProfPort, cfg.Jaeger)
ff := dependency.InitMonitor(cfg.Verbose, cfg.PProfPort, cfg.Telemetry.Jaeger)
defer ff()

svr, err := server.New(cfg)
Expand Down
2 changes: 1 addition & 1 deletion cmd/scheduler/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func runScheduler() error {
s, _ := yaml.Marshal(cfg)
logger.Infof("scheduler configuration:\n%s", string(s))

ff := dependency.InitMonitor(cfg.Verbose, cfg.PProfPort, cfg.Jaeger)
ff := dependency.InitMonitor(cfg.Verbose, cfg.PProfPort, cfg.Telemetry.Jaeger)
defer ff()

svr, err := server.New(cfg)
Expand Down

0 comments on commit accfef0

Please sign in to comment.