From 288b06b64c5ee84f35ebfb5e53a5419fd23608d1 Mon Sep 17 00:00:00 2001 From: Fabrizio <135109076+fabrizio-grafana@users.noreply.github.com> Date: Wed, 20 Mar 2024 10:25:35 +0100 Subject: [PATCH] Loki: Replace imports of `infra/log` with SDK (#84336) --- pkg/tsdb/loki/api.go | 2 +- pkg/tsdb/loki/api_mock.go | 7 ++++--- pkg/tsdb/loki/framing_test.go | 8 ++++---- pkg/tsdb/loki/healthcheck.go | 9 +++++---- pkg/tsdb/loki/healthcheck_test.go | 5 ++--- pkg/tsdb/loki/loki.go | 11 +++++------ pkg/tsdb/loki/loki_bench_test.go | 4 ++-- pkg/tsdb/loki/streaming.go | 2 +- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/pkg/tsdb/loki/api.go b/pkg/tsdb/loki/api.go index aa6c9d88396..83f8c1919ea 100644 --- a/pkg/tsdb/loki/api.go +++ b/pkg/tsdb/loki/api.go @@ -21,7 +21,7 @@ import ( "github.com/grafana/grafana-plugin-sdk-go/backend" - "github.com/grafana/grafana/pkg/infra/log" + "github.com/grafana/grafana-plugin-sdk-go/backend/log" "github.com/grafana/grafana/pkg/infra/tracing" "github.com/grafana/grafana/pkg/promlib/converter" "github.com/grafana/grafana/pkg/tsdb/loki/instrumentation" diff --git a/pkg/tsdb/loki/api_mock.go b/pkg/tsdb/loki/api_mock.go index 773057724a4..1f9ebfcefef 100644 --- a/pkg/tsdb/loki/api_mock.go +++ b/pkg/tsdb/loki/api_mock.go @@ -5,7 +5,8 @@ import ( "io" "net/http" - "github.com/grafana/grafana/pkg/infra/log" + "github.com/grafana/grafana-plugin-sdk-go/backend" + "github.com/grafana/grafana/pkg/infra/tracing" ) @@ -65,7 +66,7 @@ func makeMockedAPIWithUrl(url string, statusCode int, contentType string, respon Transport: &mockedRoundTripper{statusCode: statusCode, contentType: contentType, responseBytes: responseBytes, requestCallback: requestCallback}, } - return newLokiAPI(&client, url, log.New("test"), tracing.InitializeTracerForTest(), structuredMetadata) + return newLokiAPI(&client, url, backend.NewLoggerWith("logger", "test"), tracing.InitializeTracerForTest(), structuredMetadata) } func makeCompressedMockedAPIWithUrl(url string, statusCode int, contentType string, responseBytes []byte, requestCallback mockRequestCallback) *LokiAPI { @@ -73,5 +74,5 @@ func makeCompressedMockedAPIWithUrl(url string, statusCode int, contentType stri Transport: &mockedCompressedRoundTripper{statusCode: statusCode, contentType: contentType, responseBytes: responseBytes, requestCallback: requestCallback}, } - return newLokiAPI(&client, url, log.New("test"), tracing.InitializeTracerForTest(), false) + return newLokiAPI(&client, url, backend.NewLoggerWith("logger", "test"), tracing.InitializeTracerForTest(), false) } diff --git a/pkg/tsdb/loki/framing_test.go b/pkg/tsdb/loki/framing_test.go index fff9f446d88..34e2773eb80 100644 --- a/pkg/tsdb/loki/framing_test.go +++ b/pkg/tsdb/loki/framing_test.go @@ -10,7 +10,7 @@ import ( "github.com/grafana/grafana-plugin-sdk-go/backend" "github.com/grafana/grafana-plugin-sdk-go/experimental" - "github.com/grafana/grafana/pkg/infra/log" + "github.com/stretchr/testify/require" ) @@ -64,7 +64,7 @@ func TestSuccessResponse(t *testing.T) { bytes, err := os.ReadFile(responseFileName) require.NoError(t, err) - dr, err := runQuery(context.Background(), makeMockedAPI(http.StatusOK, "application/json", bytes, nil, false), &query, responseOpts, log.New("test")) + dr, err := runQuery(context.Background(), makeMockedAPI(http.StatusOK, "application/json", bytes, nil, false), &query, responseOpts, backend.NewLoggerWith("logger", "test")) require.NoError(t, err) experimental.CheckGoldenJSONResponse(t, folder, goldenFileName, dr, false) @@ -125,7 +125,7 @@ func TestErrorResponse(t *testing.T) { for _, test := range tt { t.Run(test.name, func(t *testing.T) { - dr, err := runQuery(context.Background(), makeMockedAPI(400, test.contentType, test.body, nil, false), &lokiQuery{QueryType: QueryTypeRange, Direction: DirectionBackward}, ResponseOpts{}, log.New("test")) + dr, err := runQuery(context.Background(), makeMockedAPI(400, test.contentType, test.body, nil, false), &lokiQuery{QueryType: QueryTypeRange, Direction: DirectionBackward}, ResponseOpts{}, backend.NewLoggerWith("logger", "test")) require.NoError(t, err) require.Len(t, dr.Frames, 0) require.Equal(t, dr.Error.Error(), test.errorMessage) @@ -172,7 +172,7 @@ func TestErrorsFromResponseCodes(t *testing.T) { for _, test := range tt { t.Run(test.name, func(t *testing.T) { - dr, _ := runQuery(context.Background(), makeMockedAPI(test.statusCode, contentType, []byte(errorString), nil, false), &lokiQuery{QueryType: QueryTypeRange, Direction: DirectionBackward}, ResponseOpts{}, log.New("test")) + dr, _ := runQuery(context.Background(), makeMockedAPI(test.statusCode, contentType, []byte(errorString), nil, false), &lokiQuery{QueryType: QueryTypeRange, Direction: DirectionBackward}, ResponseOpts{}, backend.NewLoggerWith("logger", "test")) require.Len(t, dr.Frames, 0) require.Equal(t, dr.Error.Error(), errorString) require.Equal(t, dr.ErrorSource, test.errorSource) diff --git a/pkg/tsdb/loki/healthcheck.go b/pkg/tsdb/loki/healthcheck.go index b3c798c971b..fe7e56661b2 100644 --- a/pkg/tsdb/loki/healthcheck.go +++ b/pkg/tsdb/loki/healthcheck.go @@ -8,7 +8,8 @@ import ( "time" "github.com/grafana/grafana-plugin-sdk-go/backend" - "github.com/grafana/grafana/pkg/infra/log" + "github.com/grafana/grafana-plugin-sdk-go/backend/log" + "github.com/grafana/grafana/pkg/tsdb/loki/kinds/dataquery" ) @@ -18,7 +19,7 @@ const ( func (s *Service) CheckHealth(ctx context.Context, req *backend.CheckHealthRequest) (*backend.CheckHealthResult, error) { - logger := s.logger.New("endpoint", "CheckHealth") + logger := s.logger.With("endpoint", "CheckHealth") ds, err := s.im.Get(ctx, req.PluginContext) // check that the datasource exists if err != nil { @@ -34,7 +35,7 @@ func (s *Service) CheckHealth(ctx context.Context, req *backend.CheckHealthReque return hc, nil } -func healthcheck(ctx context.Context, req *backend.CheckHealthRequest, s *Service, logger *log.ConcreteLogger) *backend.CheckHealthResult { +func healthcheck(ctx context.Context, req *backend.CheckHealthRequest, s *Service, logger log.Logger) *backend.CheckHealthResult { step := "1s" qt := "instant" qm := dataquery.LokiDataQuery{ @@ -88,7 +89,7 @@ func healthcheck(ctx context.Context, req *backend.CheckHealthRequest, s *Servic return getHealthCheckMessage(nil, logger) } -func getHealthCheckMessage(err error, logger *log.ConcreteLogger) *backend.CheckHealthResult { +func getHealthCheckMessage(err error, logger log.Logger) *backend.CheckHealthResult { if err == nil { return &backend.CheckHealthResult{ Status: backend.HealthStatusOk, diff --git a/pkg/tsdb/loki/healthcheck_test.go b/pkg/tsdb/loki/healthcheck_test.go index f4e8db583eb..2d99e042699 100644 --- a/pkg/tsdb/loki/healthcheck_test.go +++ b/pkg/tsdb/loki/healthcheck_test.go @@ -12,7 +12,6 @@ import ( "github.com/grafana/grafana-plugin-sdk-go/backend/datasource" "github.com/grafana/grafana-plugin-sdk-go/backend/httpclient" - "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/infra/tracing" "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/stretchr/testify/assert" @@ -97,7 +96,7 @@ func Test_healthcheck(t *testing.T) { im: datasource.NewInstanceManager(newInstanceSettings(httpProvider)), features: featuremgmt.WithFeatures(featuremgmt.FlagLokiLogsDataplane, featuremgmt.FlagLokiMetricDataplane), tracer: tracing.InitializeTracerForTest(), - logger: log.New("loki test"), + logger: backend.NewLoggerWith("logger", "loki test"), } req := &backend.CheckHealthRequest{ @@ -116,7 +115,7 @@ func Test_healthcheck(t *testing.T) { im: datasource.NewInstanceManager(newInstanceSettings(httpProvider)), features: featuremgmt.WithFeatures(featuremgmt.FlagLokiLogsDataplane, featuremgmt.FlagLokiMetricDataplane), tracer: tracing.InitializeTracerForTest(), - logger: log.New("loki test"), + logger: backend.NewLoggerWith("logger", "loki test"), } req := &backend.CheckHealthRequest{ diff --git a/pkg/tsdb/loki/loki.go b/pkg/tsdb/loki/loki.go index f62bee56d78..94d2d6d2891 100644 --- a/pkg/tsdb/loki/loki.go +++ b/pkg/tsdb/loki/loki.go @@ -14,26 +14,25 @@ import ( "github.com/grafana/grafana-plugin-sdk-go/backend" "github.com/grafana/grafana-plugin-sdk-go/backend/datasource" "github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt" + "github.com/grafana/grafana-plugin-sdk-go/backend/log" "github.com/grafana/grafana-plugin-sdk-go/data" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/trace" "github.com/grafana/grafana-plugin-sdk-go/backend/httpclient" - "github.com/grafana/grafana/pkg/infra/log" + "github.com/grafana/grafana/pkg/infra/tracing" "github.com/grafana/grafana/pkg/services/featuremgmt" ngalertmodels "github.com/grafana/grafana/pkg/services/ngalert/models" "github.com/grafana/grafana/pkg/tsdb/loki/kinds/dataquery" ) -var logger = log.New("tsdb.loki") - type Service struct { im instancemgmt.InstanceManager features featuremgmt.FeatureToggles tracer tracing.Tracer - logger *log.ConcreteLogger + logger log.Logger } var ( @@ -47,7 +46,7 @@ func ProvideService(httpClientProvider *httpclient.Provider, features featuremgm im: datasource.NewInstanceManager(newInstanceSettings(httpClientProvider)), features: features, tracer: tracer, - logger: logger, + logger: backend.NewLoggerWith("logger", "tsdb.loki"), } } @@ -165,7 +164,7 @@ func callResource(ctx context.Context, req *backend.CallResourceRequest, sender func (s *Service) QueryData(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error) { dsInfo, err := s.getDSInfo(ctx, req.PluginContext) _, fromAlert := req.Headers[ngalertmodels.FromAlertHeaderName] - logger := logger.FromContext(ctx).New("fromAlert", fromAlert) + logger := s.logger.FromContext(ctx).With("fromAlert", fromAlert) if err != nil { logger.Error("Failed to get data source info", "err", err) result := backend.NewQueryDataResponse() diff --git a/pkg/tsdb/loki/loki_bench_test.go b/pkg/tsdb/loki/loki_bench_test.go index bebc4ada270..f9c5e15f293 100644 --- a/pkg/tsdb/loki/loki_bench_test.go +++ b/pkg/tsdb/loki/loki_bench_test.go @@ -8,7 +8,7 @@ import ( "strings" "testing" - "github.com/grafana/grafana/pkg/infra/log" + "github.com/grafana/grafana-plugin-sdk-go/backend" ) // when memory-profiling these benchmarks these commands are recommended @@ -19,7 +19,7 @@ func BenchmarkMatrixJson(b *testing.B) { b.ResetTimer() for n := 0; n < b.N; n++ { - _, _ = runQuery(context.Background(), makeMockedAPI(http.StatusOK, "application/json", bytes, nil, false), &lokiQuery{}, ResponseOpts{}, log.New("test")) + _, _ = runQuery(context.Background(), makeMockedAPI(http.StatusOK, "application/json", bytes, nil, false), &lokiQuery{}, ResponseOpts{}, backend.NewLoggerWith("logger", "test")) } } diff --git a/pkg/tsdb/loki/streaming.go b/pkg/tsdb/loki/streaming.go index a8d5ad0af31..49eb287e9d3 100644 --- a/pkg/tsdb/loki/streaming.go +++ b/pkg/tsdb/loki/streaming.go @@ -73,7 +73,7 @@ func (s *Service) RunStream(ctx context.Context, req *backend.RunStreamRequest, return fmt.Errorf("missing expr in cuannel") } - logger := logger.FromContext(ctx) + logger := s.logger.FromContext(ctx) count := int64(0) interrupt := make(chan os.Signal, 1)