const ( ExitCodeOK int32 = iota ExitCodeConfigError ExitCodeCmdError ExitCodeWebUIError ExitCodeUpgradeError ExitCodeUserCancel ExitCodeShutdownCommand ExitCodeFatalError )
func addCommands(parser *flags.Parser, opts *Options)
func validateConfig(c *Options) error
type ConfigCommand struct { owner *Options Init ConfigInitCommand `command:"init" description:"Initialize configuration"` Upgrade ConfigUpgradeCommand `command:"upgrade" description:"Upgrade configuration schema"` }
func NewConfigCommand(owner *Options) *ConfigCommand
type ConfigInitCommand struct { owner *Options }
func (cmd *ConfigInitCommand) Execute([]string) error
func (cmd *ConfigInitCommand) InitMetrics()
func (cmd *ConfigInitCommand) InitSources()
type ConfigUpgradeCommand struct { owner *Options }
func (cmd *ConfigUpgradeCommand) Execute([]string) (err error)
type Kind int
const ( ConfigPgURL Kind = iota ConfigFile ConfigFolder ConfigError )
type MetricCommand struct { owner *Options PrintInit MetricPrintInitCommand `command:"print-init" description:"Get and print init SQL for a given metric or preset"` PrintSQL MetricPrintSQLCommand `command:"print-sql" description:"Get and print SQL for a given metric"` }
func NewMetricCommand(owner *Options) *MetricCommand
type MetricPrintInitCommand struct { owner *Options }
func (cmd *MetricPrintInitCommand) Execute(args []string) error
type MetricPrintSQLCommand struct { owner *Options Version int `short:"v" long:"version" description:"PostgreSQL version to get SQL for"` }
func (cmd *MetricPrintSQLCommand) Execute(args []string) error
Options contains the command line options.
type Options struct { Sources sources.CmdOpts `group:"Sources"` Metrics metrics.CmdOpts `group:"Metrics"` Sinks sinks.CmdOpts `group:"Sinks"` Logging log.CmdOpts `group:"Logging"` WebUI webserver.CmdOpts `group:"WebUI"` Help bool // sourcesReaderWriter reads/writes the monitored sources (databases, patroni clusters, pgpools, etc.) information SourcesReaderWriter sources.ReaderWriter // metricsReaderWriter reads/writes the metric and preset definitions MetricsReaderWriter metrics.ReaderWriter ExitCode int32 CommandCompleted bool }
func New(writer io.Writer) (cmdOpts *Options, err error)
New returns a new instance of Options and immediately executes the subcommand if specified. Errors are returned for parsing only, if the command line arguments are invalid. Subcommands execution errors (if any) do not affect error returned. Subcommands are responsible for setting exit code only.
func (c *Options) CompleteCommand(code int32)
func (c *Options) GetConfigKind(arg string) (_ Kind, err error)
func (c *Options) InitConfigReaders(ctx context.Context) error
InitConfigReaders creates the configuration readers based on the configuration kind from the options.
func (c *Options) InitMetricReader(ctx context.Context) (err error)
InitMetricReader creates a new source reader based on the configuration kind from the options.
func (c *Options) InitSourceReader(ctx context.Context) (err error)
InitSourceReader creates a new source reader based on the configuration kind from the options.
func (c *Options) InitWebUI(fs fs.FS, logger log.LoggerIface) error
InitWebUI initializes the web UI server
func (c *Options) IsPgConnStr(arg string) bool
func (c *Options) NeedsSchemaUpgrade() (upgrade bool, err error)
NeedsSchemaUpgrade checks if the configuration database schema needs an upgrade.
func (c *Options) Verbose() bool
Verbose returns true if the debug log is enabled
type SourceCommand struct { owner *Options Ping SourcePingCommand `command:"ping" description:"Try to connect to configured sources, report errors if any and then exit"` }
func NewSourceCommand(owner *Options) *SourceCommand
type SourcePingCommand struct { owner *Options }
func (cmd *SourcePingCommand) Execute(args []string) error