in smlogs-kubectl-plugin/pkg/cmd/smlogs.go [124:218]
func NewCmdSmLogs(streams genericclioptions.IOStreams) *cobra.Command {
oTraining := NewSmLogsOptions(streams)
subcmdTraining := &cobra.Command{
Use: "TrainingJob RESOURCE_NAME",
Aliases: []string{"Trainingjob", "trainingjob", "trainingjobs", "TrainingJobs"},
Short: "View TrainingJob logs via Kubernetes",
Example: fmt.Sprintf(smlogsTrainingExample, "kubectl"),
SilenceUsage: true,
RunE: func(c *cobra.Command, args []string) error {
if err := oTraining.CompleteTraining(c, args); err != nil {
return err
}
if err := oTraining.ValidateTraining(c, args); err != nil {
return err
}
if err := oTraining.RunTraining(c, args); err != nil {
return err
}
return nil
},
}
flagsTraining := subcmdTraining.Flags()
flagsTraining.BoolVar(&oTraining.hideLogStreamName, "hide-log-stream-name", false, "Whether or not to show the log stream name with each log line.")
flagsTraining.BoolVarP(&oTraining.tail, "follow", "f", false, "Whether or not to tail AWS CloudWatchLogs")
flagsTraining.StringVarP(&oTraining.logSearchPrefix, "logSearchPrefix", "p", "", "Filters the results to include only events from instances that have names starting with this logSearchPrefix e.g. `-p algo-4` will only return logs from SageMaker instances whose name matches the log search prefix.")
oTraining.configFlags.AddFlags(flagsTraining)
subcmdHPO := &cobra.Command{
Use: "HyperParameterTuningJob RESOURCE_NAME",
Aliases: []string{"hyperparametertuningjob", "HyperparametertuningJob", "HyperParameterTuningJobs", "hyperparameterTuningjobs", "HyperparametertuningJobs"},
Short: "View HyperParameterTuningJob logs via Kubernetes",
Hidden: true,
SilenceUsage: true,
RunE: func(c *cobra.Command, args []string) error {
return fmt.Errorf(
"For HPO logs, Refer to the the Spawned Training Jobs. Use `kubectl get %s` to list resource names.",
reflect.TypeOf(trainingjobv1.TrainingJob{}).Name())
},
}
oTransform := NewSmLogsOptions(streams)
oTransform.logGroupName = sagemakerTransformJobsLogGroupName
subcmdTransform := &cobra.Command{
Use: "BatchTransformJob RESOURCE_NAME",
Aliases: []string{"batchtransformjob", "BatchtransformJob", "batchtransformjobs", "BatchTransformJobs", "BatchtransformJobs"},
Short: "View BatchTransformJob logs via Kubernetes",
Example: fmt.Sprintf(smlogsTransformExample, "kubectl"),
SilenceUsage: true,
RunE: func(c *cobra.Command, args []string) error {
if err := oTransform.CompleteTransform(c, args); err != nil {
return err
}
if err := oTransform.ValidateTransform(c, args); err != nil {
return err
}
if err := oTransform.RunTransform(c, args); err != nil {
return err
}
return nil
},
}
flagsTransform := subcmdTransform.Flags()
flagsTransform.BoolVar(&oTransform.hideLogStreamName, "hide-log-stream-name", false, "Whether or not to show the log stream name with each log line.")
flagsTransform.BoolVarP(&oTransform.tail, "follow", "f", false, "Whether or not to tail AWS CloudWatchLogs")
flagsTransform.StringVarP(&oTransform.logSearchPrefix, "logSearchPrefix", "p", "", "Filters the results to include only events from instances that have names starting with this logSearchPrefix e.g. `-p algo-4` will only return logs from SageMaker instances whose name matches the log search prefix.")
oTransform.configFlags.AddFlags(flagsTransform)
cmd := &cobra.Command{
Use: "smlogs [subcommand] RESOURCE_NAME",
Aliases: []string{"SMLogs", "Smlogs"},
Short: "View Amazon SageMaker logs via Kubernetes",
SilenceUsage: true,
}
cmd.AddCommand(subcmdTraining)
cmd.AddCommand(subcmdHPO)
cmd.AddCommand(subcmdTransform)
return cmd
}