mysql: refactor logs handling (#79148)

* mysql: refactor logs handling

* fixed unit test
This commit is contained in:
Gábor Farkas 2023-12-07 12:17:41 +01:00 committed by GitHub
parent 8ce4faf5ea
commit 9e71dc801d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 8 deletions

View File

@ -34,11 +34,10 @@ const (
dateTimeFormat2 = "2006-01-02T15:04:05Z" dateTimeFormat2 = "2006-01-02T15:04:05Z"
) )
var logger = log.New("tsdb.mysql")
type Service struct { type Service struct {
Cfg *setting.Cfg Cfg *setting.Cfg
im instancemgmt.InstanceManager im instancemgmt.InstanceManager
logger log.Logger
} }
func characterEscape(s string, escapeChar string) string { func characterEscape(s string, escapeChar string) string {
@ -46,12 +45,14 @@ func characterEscape(s string, escapeChar string) string {
} }
func ProvideService(cfg *setting.Cfg, httpClientProvider httpclient.Provider) *Service { func ProvideService(cfg *setting.Cfg, httpClientProvider httpclient.Provider) *Service {
logger := log.New("tsdb.mysql")
return &Service{ return &Service{
im: datasource.NewInstanceManager(newInstanceSettings(cfg)), im: datasource.NewInstanceManager(newInstanceSettings(cfg, logger)),
logger: logger,
} }
} }
func newInstanceSettings(cfg *setting.Cfg) datasource.InstanceFactoryFunc { func newInstanceSettings(cfg *setting.Cfg, logger log.Logger) datasource.InstanceFactoryFunc {
return func(ctx context.Context, settings backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { return func(ctx context.Context, settings backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
jsonData := sqleng.JsonData{ jsonData := sqleng.JsonData{
MaxOpenConns: cfg.SqlDatasourceMaxOpenConnsDefault, MaxOpenConns: cfg.SqlDatasourceMaxOpenConnsDefault,
@ -174,9 +175,9 @@ func (s *Service) CheckHealth(ctx context.Context, req *backend.CheckHealthReque
if err != nil { if err != nil {
var driverErr *mysql.MySQLError var driverErr *mysql.MySQLError
if errors.As(err, &driverErr) { if errors.As(err, &driverErr) {
return &backend.CheckHealthResult{Status: backend.HealthStatusError, Message: dsHandler.TransformQueryError(logger, driverErr).Error()}, nil return &backend.CheckHealthResult{Status: backend.HealthStatusError, Message: dsHandler.TransformQueryError(s.logger, driverErr).Error()}, nil
} }
return &backend.CheckHealthResult{Status: backend.HealthStatusError, Message: dsHandler.TransformQueryError(logger, err).Error()}, nil return &backend.CheckHealthResult{Status: backend.HealthStatusError, Message: dsHandler.TransformQueryError(s.logger, err).Error()}, nil
} }
return &backend.CheckHealthResult{Status: backend.HealthStatusOk, Message: "Database Connection OK"}, nil return &backend.CheckHealthResult{Status: backend.HealthStatusOk, Message: "Database Connection OK"}, nil
} }

View File

@ -13,6 +13,7 @@ import (
"github.com/grafana/grafana-plugin-sdk-go/data" "github.com/grafana/grafana-plugin-sdk-go/data"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/setting"
"github.com/grafana/grafana/pkg/tsdb/sqleng" "github.com/grafana/grafana/pkg/tsdb/sqleng"
) )
@ -73,6 +74,8 @@ func TestIntegrationMySQL(t *testing.T) {
rowTransformer := mysqlQueryResultTransformer{} rowTransformer := mysqlQueryResultTransformer{}
logger := log.New("mysql.test")
exe, err := sqleng.NewQueryDataHandler(setting.NewCfg(), config, &rowTransformer, newMysqlMacroEngine(logger, setting.NewCfg()), logger) exe, err := sqleng.NewQueryDataHandler(setting.NewCfg(), config, &rowTransformer, newMysqlMacroEngine(logger, setting.NewCfg()), logger)
require.NoError(t, err) require.NoError(t, err)