Unified storage: Respect GF_DATABASE_URL override (#105331)

* Database for unified storage resources now reuses DB code that respects URL override.

Access instrument_queries via section getter.
This commit is contained in:
Peter Štibraný
2025-07-03 11:57:40 +02:00
committed by GitHub
parent 9652f07e56
commit 041c343a86
3 changed files with 91 additions and 37 deletions
+7 -20
View File
@@ -12,7 +12,6 @@ import (
"github.com/grafana/grafana/pkg/util/xorm"
"github.com/grafana/grafana/pkg/services/sqlstore"
"github.com/grafana/grafana/pkg/setting"
"github.com/grafana/grafana/pkg/storage/unified/sql/db"
)
@@ -20,33 +19,21 @@ import (
// driver.
const tlsConfigName = "db_engine_tls"
func getEngine(cfg *setting.Cfg) (*xorm.Engine, error) {
dbSection := cfg.SectionWithEnvOverrides("database")
dbType := dbSection.Key("type").String()
if dbType == "" {
return nil, fmt.Errorf("no database type specified")
}
switch dbType {
func getEngine(config *sqlstore.DatabaseConfig) (*xorm.Engine, error) {
switch config.Type {
case dbTypeMySQL, dbTypePostgres, dbTypeSQLite:
config, err := sqlstore.NewDatabaseConfig(cfg, nil)
if err != nil {
return nil, nil
}
engine, err := xorm.NewEngine(dbType, config.ConnectionString)
engine, err := xorm.NewEngine(config.Type, config.ConnectionString)
if err != nil {
return nil, fmt.Errorf("open database: %w", err)
}
engine.SetMaxOpenConns(dbSection.Key("max_open_conn").MustInt(0))
engine.SetMaxIdleConns(dbSection.Key("max_idle_conn").MustInt(4))
maxLifetime := time.Duration(dbSection.Key("conn_max_lifetime").MustInt(14400)) * time.Second
engine.SetConnMaxLifetime(maxLifetime)
engine.SetMaxOpenConns(config.MaxOpenConn)
engine.SetMaxIdleConns(config.MaxIdleConn)
engine.SetConnMaxLifetime(time.Duration(config.ConnMaxLifetime) * time.Second)
return engine, nil
default:
return nil, fmt.Errorf("unsupported database type: %s", dbType)
return nil, fmt.Errorf("unsupported database type: %s", config.Type)
}
}