in cmd/main.go [31:90]
func main() {
flags, output, proceed := sqlservermetrics.Init()
if output != "" {
fmt.Println(output)
}
if !proceed {
return
}
ctx := context.Background()
// Load default logging configuration.
sqlservermetrics.LoggingSetupDefault(ctx, sqlservermetrics.LogPrefix())
// Load configuration.
cfg, err := sqlservermetrics.LoadConfiguration(sqlservermetrics.ConfigPath())
if cfg == nil {
log.Logger.Fatalw("Failed to load configuration", "error", err)
}
if err != nil {
log.Logger.Errorw("Failed to load configuration. Using default configurations", "error", err)
}
// Load logging configuration based on the configuration file.
sqlservermetrics.LoggingSetup(ctx, sqlservermetrics.LogPrefix(), cfg)
// onetime collection
if flags.Onetime {
if err := sqlservermetrics.OSCollection(ctx, sqlservermetrics.AgentFilePath(), sqlservermetrics.LogPrefix(), cfg, true); err != nil {
log.Logger.Errorw("Failed to complete os collection", "error", err)
}
if err := sqlservermetrics.SQLCollection(ctx, sqlservermetrics.AgentFilePath(), sqlservermetrics.LogPrefix(), cfg, true); err != nil {
log.Logger.Errorw("Failed to complete sql collection", "error", err)
}
return
}
// Init UsageMetricsLogger by reading "disable_log_usage" from the configuration file.
sqlservermetrics.UsageMetricsLogger = sqlservermetrics.UsageMetricsLoggerInit(sqlservermetrics.ServiceName, sqlservermetrics.AgentVersion, sqlservermetrics.AgentUsageLogPrefix, !cfg.GetDisableLogUsage())
osCollectionFunc := func(cfg *configpb.Configuration, onetime bool) error {
return sqlservermetrics.OSCollection(ctx, sqlservermetrics.AgentFilePath(), sqlservermetrics.LogPrefix(), cfg, onetime)
}
sqlCollectionFunc := func(cfg *configpb.Configuration, onetime bool) error {
return sqlservermetrics.SQLCollection(ctx, sqlservermetrics.AgentFilePath(), sqlservermetrics.LogPrefix(), cfg, onetime)
}
s, err := daemon.CreateService(
func() {
sqlservermetrics.CollectionService(sqlservermetrics.ConfigPath(), osCollectionFunc, sqlservermetrics.OS)
},
func() {
sqlservermetrics.CollectionService(sqlservermetrics.ConfigPath(), sqlCollectionFunc, sqlservermetrics.SQL)
},
daemon.CreateConfig(sqlservermetrics.ServiceName, sqlservermetrics.ServiceDisplayName, sqlservermetrics.Description),
sqlservermetrics.UsageMetricsLogger)
if err != nil {
log.Logger.Fatalw("Failed to create the service", "error", err)
}
if err = daemon.Control(s, flags.Action, sqlservermetrics.UsageMetricsLogger); err != nil {
log.Logger.Fatal(err)
}
}