refactor(unified-storage): remove resource_server config option (#107649)

This commit is contained in:
Jean-Philippe Quéméner
2025-07-11 15:33:51 +02:00
committed by GitHub
parent 73ab088804
commit 602b7826c4
3 changed files with 20 additions and 500 deletions
+20 -45
View File
@@ -62,62 +62,37 @@ type resourceDBProvider struct {
initErr error
}
func newResourceDBProvider(grafanaDB infraDB.DB, cfg *setting.Cfg, tracer trace.Tracer) (p *resourceDBProvider, err error) {
// Resource API has other configs in its section besides database ones, so
// we prefix them with "db_". We use the database config from core Grafana
// as fallback, and as it uses a dedicated INI section, then keys are not
// prefixed with "db_"
getter := newConfGetter(cfg.SectionWithEnvOverrides("resource_api"), "db_")
fallbackConfig, fallbackErr := sqlstore.NewDatabaseConfig(cfg, nil)
if fallbackErr != nil {
// Ignore error here and keep going.
fallbackConfig = nil
}
logger := log.New("entity-db")
p = &resourceDBProvider{
func newResourceDBProvider(grafanaDB infraDB.DB, cfg *setting.Cfg, tracer trace.Tracer) (*resourceDBProvider, error) {
logger := log.New("resource-db")
p := &resourceDBProvider{
cfg: cfg,
log: logger,
logQueries: getter.Bool("log_queries"),
migrateFunc: migrations.MigrateResourceStore,
tracer: tracer,
}
dbType := getter.String("type")
switch {
// Deprecated: First try with the config in the "resource_api" section, which is specific to Unified Storage
case dbType == dbTypePostgres:
logger.Info("Using resource_api section", "db_type", dbType)
p.registerMetrics = true
p.engine, err = getEnginePostgres(getter)
return p, err
case dbType == dbTypeMySQL:
logger.Info("Using resource_api section", "db_type", dbType)
p.registerMetrics = true
p.engine, err = getEngineMySQL(getter)
return p, err
case dbType != "":
return p, fmt.Errorf("invalid db type specified: %s", dbType)
// If we have an empty Resource API db config, try with the core Grafana database config
case fallbackConfig != nil && fallbackConfig.Type != "":
logger.Info("Using database section", "db_type", fallbackConfig.Type)
p.registerMetrics = true
p.engine, err = getEngine(fallbackConfig)
return p, err
case grafanaDB != nil:
// try to use the grafana db connection (should only happen in tests)
// Try to use the grafana db connection, should only happen in tests.
if grafanaDB != nil {
if newConfGetter(cfg.SectionWithEnvOverrides("database"), "").Bool(grafanaDBInstrumentQueriesKey) {
return nil, errGrafanaDBInstrumentedNotSupported
}
p.engine = grafanaDB.GetEngine()
p.logQueries = cfg.SectionWithEnvOverrides("database").Key("log_queries").MustBool(false)
return p, nil
}
// If we don't provide a DB, lets build it from the config.
dbCfg, err := sqlstore.NewDatabaseConfig(cfg, nil)
if err != nil {
return nil, err
}
switch {
case dbCfg.Type != "":
logger.Info("Using database section", "db_type", dbCfg.Type)
p.registerMetrics = true
p.engine, err = getEngine(dbCfg)
return p, err
default:
if fallbackErr != nil {
return nil, fallbackErr
}
return nil, fmt.Errorf("no database type specified")
}
}