Skip to content

Commit

Permalink
Merge pull request #79 from Saza-ku/fix/config
Browse files Browse the repository at this point in the history
fix overwriting of config by default value
  • Loading branch information
tkuchiki committed Sep 2, 2023
2 parents 3b24a87 + 0ede93c commit 4b0eab1
Show file tree
Hide file tree
Showing 9 changed files with 835 additions and 306 deletions.
16 changes: 15 additions & 1 deletion cmd/alp/cmd/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"os"

"github.com/spf13/cobra"
"github.com/tkuchiki/alp/options"
"github.com/tkuchiki/alp/stats"
)

Expand All @@ -15,7 +16,20 @@ func NewDiffCmd(rootCmd *cobra.Command) *cobra.Command {
Long: `Show the difference between the two profile results`,
RunE: func(cmd *cobra.Command, args []string) error {
sortOptions := stats.NewSortOptions()
opts, err := createOptions(cmd, sortOptions)
var opts *options.Options

config, err := cmd.PersistentFlags().GetString("config")
if err != nil {
return err
}

if config != "" {
bindCommonFlags(cmd)
opts, err = createOptionsFromConfig(cmd, sortOptions, config)
} else {
opts, err = createCommonOptionsFromFlags(cmd, sortOptions)
}

if err != nil {
return err
}
Expand Down
122 changes: 76 additions & 46 deletions cmd/alp/cmd/json.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/tkuchiki/alp/profiler"

"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/tkuchiki/alp/stats"
)

Expand All @@ -18,56 +19,11 @@ func NewJSONCmd(rootCmd *cobra.Command) *cobra.Command {
Long: `Profile the logs for JSON`,
RunE: func(cmd *cobra.Command, args []string) error {
sortOptions := stats.NewSortOptions()
opts, err := createOptions(cmd, sortOptions)
opts, err := createJSONOptions(cmd, sortOptions)
if err != nil {
return err
}

uriKey, err := cmd.PersistentFlags().GetString("uri-key")
if err != nil {
return err
}

methodKey, err := cmd.PersistentFlags().GetString("method-key")
if err != nil {
return err
}

timeKey, err := cmd.PersistentFlags().GetString("time-key")
if err != nil {
return err
}

responseTimeKey, err := cmd.PersistentFlags().GetString("restime-key")
if err != nil {
return err
}

requestTimeKey, err := cmd.PersistentFlags().GetString("reqtime-key")
if err != nil {
return err
}

bodyBytesKey, err := cmd.PersistentFlags().GetString("body-bytes-key")
if err != nil {
return err
}

statusKey, err := cmd.PersistentFlags().GetString("status-key")
if err != nil {
return err
}

opts = options.SetOptions(opts,
options.UriKey(uriKey),
options.MethodKey(methodKey),
options.TimeKey(timeKey),
options.ResponseTimeKey(responseTimeKey),
options.RequestTimeKey(requestTimeKey),
options.BodyBytesKey(bodyBytesKey),
options.StatusKey(statusKey),
)

prof := profiler.NewProfiler(os.Stdout, os.Stderr, opts)

f, err := prof.Open(opts.File)
Expand All @@ -87,6 +43,7 @@ func NewJSONCmd(rootCmd *cobra.Command) *cobra.Command {
}

defineOptions(jsonCmd)

jsonCmd.PersistentFlags().StringP("uri-key", "", options.DefaultUriKeyOption, "Change the uri key")
jsonCmd.PersistentFlags().StringP("method-key", "", options.DefaultMethodKeyOption, "Change the method key")
jsonCmd.PersistentFlags().StringP("time-key", "", options.DefaultTimeKeyOption, "Change the time key")
Expand All @@ -97,3 +54,76 @@ func NewJSONCmd(rootCmd *cobra.Command) *cobra.Command {

return jsonCmd
}

func createJSONOptions(cmd *cobra.Command, sortOptions *stats.SortOptions) (*options.Options, error) {
config, err := cmd.PersistentFlags().GetString("config")
if err != nil {
return nil, err
}
if config != "" {
bindCommonFlags(cmd)
bindJSONFlags(cmd)
return createOptionsFromConfig(cmd, sortOptions, config)
}

opts, err := createCommonOptionsFromFlags(cmd, sortOptions)
if err != nil {
return nil, err
}

uriKey, err := cmd.PersistentFlags().GetString("uri-key")
if err != nil {
return nil, err
}

methodKey, err := cmd.PersistentFlags().GetString("method-key")
if err != nil {
return nil, err
}

timeKey, err := cmd.PersistentFlags().GetString("time-key")
if err != nil {
return nil, err
}

responseTimeKey, err := cmd.PersistentFlags().GetString("restime-key")
if err != nil {
return nil, err
}

requestTimeKey, err := cmd.PersistentFlags().GetString("reqtime-key")
if err != nil {
return nil, err
}

bodyBytesKey, err := cmd.PersistentFlags().GetString("body-bytes-key")
if err != nil {
return nil, err
}

statusKey, err := cmd.PersistentFlags().GetString("status-key")
if err != nil {
return nil, err
}

return options.SetOptions(opts,
options.UriKey(uriKey),
options.MethodKey(methodKey),
options.TimeKey(timeKey),
options.ResponseTimeKey(responseTimeKey),
options.RequestTimeKey(requestTimeKey),
options.BodyBytesKey(bodyBytesKey),
options.StatusKey(statusKey),
), nil
}

func bindJSONFlags(cmd *cobra.Command) {
viper.BindPFlag("json.uri_key", cmd.PersistentFlags().Lookup("uri-key"))
viper.BindPFlag("json.method_key", cmd.PersistentFlags().Lookup("method-key"))
viper.BindPFlag("json.time_key", cmd.PersistentFlags().Lookup("time-key"))
viper.BindPFlag("json.restime_key", cmd.PersistentFlags().Lookup("restime-key"))
viper.BindPFlag("json.reqtime_key", cmd.PersistentFlags().Lookup("reqtime-key"))
viper.BindPFlag("json.body_bytes_key", cmd.PersistentFlags().Lookup("body-bytes-key"))
viper.BindPFlag("json.status_key", cmd.PersistentFlags().Lookup("status-key"))

}
121 changes: 75 additions & 46 deletions cmd/alp/cmd/ltsv.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/tkuchiki/alp/profiler"

"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/tkuchiki/alp/stats"
)

Expand All @@ -18,56 +19,11 @@ func NewLTSVCmd(rootCmd *cobra.Command) *cobra.Command {
Long: `Profile the logs for LTSV`,
RunE: func(cmd *cobra.Command, args []string) error {
sortOptions := stats.NewSortOptions()
opts, err := createOptions(cmd, sortOptions)
opts, err := createLTSVOptions(cmd, sortOptions)
if err != nil {
return err
}

uriLabel, err := cmd.PersistentFlags().GetString("uri-label")
if err != nil {
return err
}

methodLabel, err := cmd.PersistentFlags().GetString("method-label")
if err != nil {
return err
}

timeLabel, err := cmd.PersistentFlags().GetString("time-label")
if err != nil {
return err
}

appTimeLabel, err := cmd.PersistentFlags().GetString("apptime-label")
if err != nil {
return err
}

reqTimeLabel, err := cmd.PersistentFlags().GetString("reqtime-label")
if err != nil {
return err
}

sizeLabel, err := cmd.PersistentFlags().GetString("size-label")
if err != nil {
return err
}

statusLabel, err := cmd.PersistentFlags().GetString("status-label")
if err != nil {
return err
}

opts = options.SetOptions(opts,
options.UriLabel(uriLabel),
options.MethodLabel(methodLabel),
options.TimeLabel(timeLabel),
options.ApptimeLabel(appTimeLabel),
options.ReqtimeLabel(reqTimeLabel),
options.SizeLabel(sizeLabel),
options.StatusLabel(statusLabel),
)

prof := profiler.NewProfiler(os.Stdout, os.Stderr, opts)

f, err := prof.Open(opts.File)
Expand Down Expand Up @@ -99,3 +55,76 @@ func NewLTSVCmd(rootCmd *cobra.Command) *cobra.Command {

return ltsvCmd
}

func createLTSVOptions(cmd *cobra.Command, sortOptions *stats.SortOptions) (*options.Options, error) {
config, err := cmd.PersistentFlags().GetString("config")
if err != nil {
return nil, err
}
if config != "" {
bindCommonFlags(cmd)
bindLTSVFlags(cmd)
return createOptionsFromConfig(cmd, sortOptions, config)
}

opts, err := createCommonOptionsFromFlags(cmd, sortOptions)
if err != nil {
return nil, err
}

uriLabel, err := cmd.PersistentFlags().GetString("uri-label")
if err != nil {
return nil, err
}

methodLabel, err := cmd.PersistentFlags().GetString("method-label")
if err != nil {
return nil, err
}

timeLabel, err := cmd.PersistentFlags().GetString("time-label")
if err != nil {
return nil, err
}

appTimeLabel, err := cmd.PersistentFlags().GetString("apptime-label")
if err != nil {
return nil, err
}

reqTimeLabel, err := cmd.PersistentFlags().GetString("reqtime-label")
if err != nil {
return nil, err
}

sizeLabel, err := cmd.PersistentFlags().GetString("size-label")
if err != nil {
return nil, err
}

statusLabel, err := cmd.PersistentFlags().GetString("status-label")
if err != nil {
return nil, err
}

return options.SetOptions(opts,
// ltsv
options.UriLabel(uriLabel),
options.MethodLabel(methodLabel),
options.TimeLabel(timeLabel),
options.ApptimeLabel(appTimeLabel),
options.ReqtimeLabel(reqTimeLabel),
options.SizeLabel(sizeLabel),
options.StatusLabel(statusLabel),
), nil
}

func bindLTSVFlags(cmd *cobra.Command) {
viper.BindPFlag("ltsv.uri_label", cmd.PersistentFlags().Lookup("uri-label"))
viper.BindPFlag("ltsv.method_label", cmd.PersistentFlags().Lookup("method-label"))
viper.BindPFlag("ltsv.time_label", cmd.PersistentFlags().Lookup("time-label"))
viper.BindPFlag("ltsv.apptime_label", cmd.PersistentFlags().Lookup("apptime-label"))
viper.BindPFlag("ltsv.reqtime_label", cmd.PersistentFlags().Lookup("reqtime-label"))
viper.BindPFlag("ltsv.size_label", cmd.PersistentFlags().Lookup("size-label"))
viper.BindPFlag("ltsv.status_label", cmd.PersistentFlags().Lookup("status-label"))
}
Loading

0 comments on commit 4b0eab1

Please sign in to comment.