func CollectionConfigCommand()

in internal/onetime/configure/sqlserver/collectionconfig.go [31:69]


func CollectionConfigCommand(cfg *cliconfig.Configure) *cobra.Command {
	var (
		collectGuestOSMetrics bool
		collectSQLMetrics     bool
		collectionFrequency   time.Duration
	)
	collectionConfigCmd := &cobra.Command{
		Use:   "collection-config",
		Short: "Configure SQL Server collection settings",
		Run: func(cmd *cobra.Command, args []string) {
			cfg.ValidateSQLServerCollectionConfig()

			if cmd.Flags().Changed("collect-guest-os-metrics") {
				msg := fmt.Sprintf("SQL Server Collect Guest OS Metrics: %v", collectGuestOSMetrics)
				cfg.LogToBoth(cmd.Context(), msg)
				cfg.Configuration.SqlserverConfiguration.CollectionConfiguration.CollectGuestOsMetrics = collectGuestOSMetrics
				cfg.SQLServerConfigModified = true
			}
			if cmd.Flags().Changed("collect-sql-metrics") {
				msg := fmt.Sprintf("SQL Server Collect SQL Metrics: %v", collectSQLMetrics)
				cfg.LogToBoth(cmd.Context(), msg)
				cfg.Configuration.SqlserverConfiguration.CollectionConfiguration.CollectSqlMetrics = collectSQLMetrics
				cfg.SQLServerConfigModified = true
			}
			if cmd.Flags().Changed("collection-frequency") {
				msg := fmt.Sprintf("SQL Server Collection Frequency: %v", collectionFrequency)
				cfg.LogToBoth(cmd.Context(), msg)
				cfg.Configuration.SqlserverConfiguration.CollectionConfiguration.CollectionFrequency = dpb.New(collectionFrequency)
				cfg.SQLServerConfigModified = true
			}
		},
	}

	collectionConfigCmd.Flags().BoolVar(&collectGuestOSMetrics, "collect-guest-os-metrics", true, "Enables guest os collection")
	collectionConfigCmd.Flags().BoolVar(&collectSQLMetrics, "collect-sql-metrics", true, "Enables SQL Server collection")
	collectionConfigCmd.Flags().DurationVar(&collectionFrequency, "collection-frequency", time.Duration(configuration.DefaultSQLServerCollectionFrequency), "Collection frequency (e.g., 5m, 1h)")

	return collectionConfigCmd
}