mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
postgres: refactor logs-handling (#79147)
* postgres: refactor logs-handling * fixed unit test
This commit is contained in:
parent
550746be71
commit
92044a9009
@ -21,11 +21,11 @@ import (
|
|||||||
"github.com/grafana/grafana/pkg/tsdb/sqleng/proxyutil"
|
"github.com/grafana/grafana/pkg/tsdb/sqleng/proxyutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
var logger = log.New("tsdb.postgres")
|
|
||||||
|
|
||||||
func ProvideService(cfg *setting.Cfg) *Service {
|
func ProvideService(cfg *setting.Cfg) *Service {
|
||||||
|
logger := log.New("tsdb.postgres")
|
||||||
s := &Service{
|
s := &Service{
|
||||||
tlsManager: newTLSManager(logger, cfg.DataPath),
|
tlsManager: newTLSManager(logger, cfg.DataPath),
|
||||||
|
logger: logger,
|
||||||
}
|
}
|
||||||
s.im = datasource.NewInstanceManager(s.newInstanceSettings(cfg))
|
s.im = datasource.NewInstanceManager(s.newInstanceSettings(cfg))
|
||||||
return s
|
return s
|
||||||
@ -34,6 +34,7 @@ func ProvideService(cfg *setting.Cfg) *Service {
|
|||||||
type Service struct {
|
type Service struct {
|
||||||
tlsManager tlsSettingsProvider
|
tlsManager tlsSettingsProvider
|
||||||
im instancemgmt.InstanceManager
|
im instancemgmt.InstanceManager
|
||||||
|
logger log.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) getDSInfo(ctx context.Context, pluginCtx backend.PluginContext) (*sqleng.DataSourceHandler, error) {
|
func (s *Service) getDSInfo(ctx context.Context, pluginCtx backend.PluginContext) (*sqleng.DataSourceHandler, error) {
|
||||||
@ -54,6 +55,7 @@ func (s *Service) QueryData(ctx context.Context, req *backend.QueryDataRequest)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) newInstanceSettings(cfg *setting.Cfg) datasource.InstanceFactoryFunc {
|
func (s *Service) newInstanceSettings(cfg *setting.Cfg) datasource.InstanceFactoryFunc {
|
||||||
|
logger := s.logger
|
||||||
return func(_ context.Context, settings backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
return func(_ context.Context, settings backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
logger.Debug("Creating Postgres query endpoint")
|
logger.Debug("Creating Postgres query endpoint")
|
||||||
jsonData := sqleng.JsonData{
|
jsonData := sqleng.JsonData{
|
||||||
@ -133,6 +135,7 @@ func escape(input string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) generateConnectionString(dsInfo sqleng.DataSourceInfo) (string, error) {
|
func (s *Service) generateConnectionString(dsInfo sqleng.DataSourceInfo) (string, error) {
|
||||||
|
logger := s.logger
|
||||||
var host string
|
var host string
|
||||||
var port int
|
var port int
|
||||||
if strings.HasPrefix(dsInfo.URL, "/") {
|
if strings.HasPrefix(dsInfo.URL, "/") {
|
||||||
@ -219,8 +222,8 @@ func (s *Service) CheckHealth(ctx context.Context, req *backend.CheckHealthReque
|
|||||||
err = dsHandler.Ping()
|
err = dsHandler.Ping()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("Check health failed", "error", err)
|
s.logger.Error("Check health failed", "error", err)
|
||||||
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
|
||||||
|
@ -15,6 +15,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"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"
|
||||||
|
|
||||||
@ -140,6 +141,7 @@ func TestIntegrationGenerateConnectionString(t *testing.T) {
|
|||||||
t.Run(tt.desc, func(t *testing.T) {
|
t.Run(tt.desc, func(t *testing.T) {
|
||||||
svc := Service{
|
svc := Service{
|
||||||
tlsManager: &tlsTestManager{settings: tt.tlsSettings},
|
tlsManager: &tlsTestManager{settings: tt.tlsSettings},
|
||||||
|
logger: log.New("tsdb.postgres"),
|
||||||
}
|
}
|
||||||
|
|
||||||
ds := sqleng.DataSourceInfo{
|
ds := sqleng.DataSourceInfo{
|
||||||
@ -224,6 +226,7 @@ func TestIntegrationPostgres(t *testing.T) {
|
|||||||
|
|
||||||
queryResultTransformer := postgresQueryResultTransformer{}
|
queryResultTransformer := postgresQueryResultTransformer{}
|
||||||
|
|
||||||
|
logger := log.New("postgres.test")
|
||||||
exe, err := sqleng.NewQueryDataHandler(cfg, config, &queryResultTransformer, newPostgresMacroEngine(dsInfo.JsonData.Timescaledb),
|
exe, err := sqleng.NewQueryDataHandler(cfg, config, &queryResultTransformer, newPostgresMacroEngine(dsInfo.JsonData.Timescaledb),
|
||||||
logger)
|
logger)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user