From 9e71dc801d229eae5d791e89905ac864cfeb448a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Farkas?= Date: Thu, 7 Dec 2023 12:17:41 +0100 Subject: [PATCH] mysql: refactor logs handling (#79148) * mysql: refactor logs handling * fixed unit test --- pkg/tsdb/mysql/mysql.go | 17 +++++++++-------- pkg/tsdb/mysql/mysql_test.go | 3 +++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pkg/tsdb/mysql/mysql.go b/pkg/tsdb/mysql/mysql.go index 9085e46719d..f885f5c6a84 100644 --- a/pkg/tsdb/mysql/mysql.go +++ b/pkg/tsdb/mysql/mysql.go @@ -34,11 +34,10 @@ const ( dateTimeFormat2 = "2006-01-02T15:04:05Z" ) -var logger = log.New("tsdb.mysql") - type Service struct { - Cfg *setting.Cfg - im instancemgmt.InstanceManager + Cfg *setting.Cfg + im instancemgmt.InstanceManager + logger log.Logger } 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 { + logger := log.New("tsdb.mysql") 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) { jsonData := sqleng.JsonData{ MaxOpenConns: cfg.SqlDatasourceMaxOpenConnsDefault, @@ -174,9 +175,9 @@ func (s *Service) CheckHealth(ctx context.Context, req *backend.CheckHealthReque if err != nil { var driverErr *mysql.MySQLError 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 } diff --git a/pkg/tsdb/mysql/mysql_test.go b/pkg/tsdb/mysql/mysql_test.go index 812331e681e..a3c0cb73c8e 100644 --- a/pkg/tsdb/mysql/mysql_test.go +++ b/pkg/tsdb/mysql/mysql_test.go @@ -13,6 +13,7 @@ import ( "github.com/grafana/grafana-plugin-sdk-go/data" "github.com/stretchr/testify/require" + "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/tsdb/sqleng" ) @@ -73,6 +74,8 @@ func TestIntegrationMySQL(t *testing.T) { rowTransformer := mysqlQueryResultTransformer{} + logger := log.New("mysql.test") + exe, err := sqleng.NewQueryDataHandler(setting.NewCfg(), config, &rowTransformer, newMysqlMacroEngine(logger, setting.NewCfg()), logger) require.NoError(t, err)