From 93cdc94a94eaa30faecea0a8f4a881a46475caee Mon Sep 17 00:00:00 2001 From: Serge Zaitsev Date: Mon, 4 Sep 2023 22:25:43 +0200 Subject: [PATCH] Chore: capitalise logs in other backend packages (#74344) * capitalise logs in observability logs * capitalise oss-bit-tent packages * capitalise logs in aws-datasources * capitalise logs for traces and profiling * capitalise logs for partner datasources * capitalise logs in plugins platform * capitalise logs for observability metrics --- pkg/plugins/storage/fs.go | 4 ++-- pkg/services/datasources/service/datasource.go | 2 +- .../clientmiddleware/caching_middleware.go | 4 ++-- .../keyretriever/dynamic/dynamic_retriever.go | 4 ++-- .../azure-log-analytics-datasource_test.go | 2 +- pkg/tsdb/cloud-monitoring/utils.go | 2 +- pkg/tsdb/cloudwatch/log_actions.go | 4 ++-- pkg/tsdb/cloudwatch/models/cloudwatch_query.go | 2 +- pkg/tsdb/cloudwatch/routes/middleware.go | 4 ++-- .../pyroscopeClient.go | 14 +++++++------- pkg/tsdb/grafana-pyroscope-datasource/query.go | 4 ++-- pkg/tsdb/graphite/graphite.go | 6 +++--- pkg/tsdb/influxdb/healthcheck.go | 2 +- pkg/tsdb/loki/loki.go | 2 +- pkg/tsdb/loki/streaming.go | 16 ++++++++-------- pkg/tsdb/mysql/macros.go | 2 +- pkg/tsdb/prometheus/healthcheck.go | 6 +++--- pkg/tsdb/prometheus/heuristics.go | 2 +- pkg/tsdb/prometheus/prometheus.go | 2 +- pkg/tsdb/prometheus/querydata/request.go | 6 +++--- pkg/tsdb/tempo/trace.go | 2 +- pkg/tsdb/testdatasource/testdata.go | 2 +- 22 files changed, 47 insertions(+), 47 deletions(-) diff --git a/pkg/plugins/storage/fs.go b/pkg/plugins/storage/fs.go index 6abe2dd3add..9fb1ba899cf 100644 --- a/pkg/plugins/storage/fs.go +++ b/pkg/plugins/storage/fs.go @@ -79,7 +79,7 @@ func (fs *FS) extractFiles(_ context.Context, pluginArchive *zip.ReadCloser, plu defer func() { if err := pluginArchive.Close(); err != nil { - fs.log.Warn("failed to close zip file", "error", err) + fs.log.Warn("Failed to close zip file", "error", err) } }() @@ -121,7 +121,7 @@ func (fs *FS) extractFiles(_ context.Context, pluginArchive *zip.ReadCloser, plu if isSymlink(zf) { if err := extractSymlink(installDir, zf, dstPath); err != nil { - fs.log.Warn("failed to extract symlink", "error", err) + fs.log.Warn("Failed to extract symlink", "error", err) continue } continue diff --git a/pkg/services/datasources/service/datasource.go b/pkg/services/datasources/service/datasource.go index eb09acadaae..6761b71ceb0 100644 --- a/pkg/services/datasources/service/datasource.go +++ b/pkg/services/datasources/service/datasource.go @@ -360,7 +360,7 @@ func (s *Service) DecryptedValues(ctx context.Context, ds *datasources.DataSourc if exist { err = json.Unmarshal([]byte(secret), &decryptedValues) if err != nil { - s.logger.Debug("failed to unmarshal secret value, using legacy secrets", "err", err) + s.logger.Debug("Failed to unmarshal secret value, using legacy secrets", "err", err) } } diff --git a/pkg/services/pluginsintegration/clientmiddleware/caching_middleware.go b/pkg/services/pluginsintegration/clientmiddleware/caching_middleware.go index d9fc7b62aee..ffbf17bcac8 100644 --- a/pkg/services/pluginsintegration/clientmiddleware/caching_middleware.go +++ b/pkg/services/pluginsintegration/clientmiddleware/caching_middleware.go @@ -29,10 +29,10 @@ func NewCachingMiddleware(cachingService caching.CachingService) plugins.ClientM func NewCachingMiddlewareWithFeatureManager(cachingService caching.CachingService, features *featuremgmt.FeatureManager) plugins.ClientMiddleware { log := log.New("caching_middleware") if err := prometheus.Register(QueryCachingRequestHistogram); err != nil { - log.Error("error registering prometheus collector 'QueryRequestHistogram'", "error", err) + log.Error("Error registering prometheus collector 'QueryRequestHistogram'", "error", err) } if err := prometheus.Register(ResourceCachingRequestHistogram); err != nil { - log.Error("error registering prometheus collector 'ResourceRequestHistogram'", "error", err) + log.Error("Error registering prometheus collector 'ResourceRequestHistogram'", "error", err) } return plugins.ClientMiddlewareFunc(func(next plugins.Client) plugins.Client { return &CachingMiddleware{ diff --git a/pkg/services/pluginsintegration/keyretriever/dynamic/dynamic_retriever.go b/pkg/services/pluginsintegration/keyretriever/dynamic/dynamic_retriever.go index 36ad2d6cab1..ebccb824479 100644 --- a/pkg/services/pluginsintegration/keyretriever/dynamic/dynamic_retriever.go +++ b/pkg/services/pluginsintegration/keyretriever/dynamic/dynamic_retriever.go @@ -131,7 +131,7 @@ func (kr *KeyRetriever) downloadKeys(ctx context.Context) error { defer func() { err := resp.Body.Close() if err != nil { - kr.log.Warn("error closing response body", "error", err) + kr.log.Warn("Error closing response body", "error", err) } }() @@ -145,7 +145,7 @@ func (kr *KeyRetriever) downloadKeys(ctx context.Context) error { } if err := json.Unmarshal(body, &data); err != nil { - kr.log.Debug("error unmarshalling response body", "error", err, "body", string(body)) + kr.log.Debug("Error unmarshalling response body", "error", err, "body", string(body)) return fmt.Errorf("error unmarshalling response body: %w", err) } diff --git a/pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource_test.go b/pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource_test.go index b09f141bb1e..a904f158d37 100644 --- a/pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource_test.go +++ b/pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource_test.go @@ -1537,6 +1537,6 @@ func Test_executeQueryErrorWithDifferentLogAnalyticsCreds(t *testing.T) { tracer := tracing.InitializeTracerForTest() _, err := ds.executeQuery(ctx, query, dsInfo, &http.Client{}, dsInfo.Services["Azure Log Analytics"].URL, tracer) if !strings.Contains(err.Error(), "credentials for Log Analytics are no longer supported") { - t.Error("expecting the error to inform of bad credentials") + t.Error("Expecting the error to inform of bad credentials") } } diff --git a/pkg/tsdb/cloud-monitoring/utils.go b/pkg/tsdb/cloud-monitoring/utils.go index 474879b8a9d..d6c7b891890 100644 --- a/pkg/tsdb/cloud-monitoring/utils.go +++ b/pkg/tsdb/cloud-monitoring/utils.go @@ -89,7 +89,7 @@ func doRequestPage(ctx context.Context, logger log.Logger, r *http.Request, dsIn defer func() { if err = res.Body.Close(); err != nil { - logger.Warn("failed to close response body", "error", err) + logger.Warn("Failed to close response body", "error", err) } }() diff --git a/pkg/tsdb/cloudwatch/log_actions.go b/pkg/tsdb/cloudwatch/log_actions.go index a37019ccb92..cc21cb77aa2 100644 --- a/pkg/tsdb/cloudwatch/log_actions.go +++ b/pkg/tsdb/cloudwatch/log_actions.go @@ -228,7 +228,7 @@ func (e *cloudWatchExecutor) executeStartQuery(ctx context.Context, logsClient c startQueryInput.Limit = aws.Int64(*logsQuery.Limit) } - logger.Debug("calling startquery with context with input", "input", startQueryInput) + logger.Debug("Calling startquery with context with input", "input", startQueryInput) return logsClient.StartQueryWithContext(ctx, startQueryInput) } @@ -238,7 +238,7 @@ func (e *cloudWatchExecutor) handleStartQuery(ctx context.Context, logger log.Lo if err != nil { var awsErr awserr.Error if errors.As(err, &awsErr) && awsErr.Code() == "LimitExceededException" { - logger.Debug("executeStartQuery limit exceeded", "err", awsErr) + logger.Debug("ExecuteStartQuery limit exceeded", "err", awsErr) return nil, &AWSError{Code: limitExceededException, Message: err.Error()} } return nil, err diff --git a/pkg/tsdb/cloudwatch/models/cloudwatch_query.go b/pkg/tsdb/cloudwatch/models/cloudwatch_query.go index a16de125543..ddf00f2b939 100644 --- a/pkg/tsdb/cloudwatch/models/cloudwatch_query.go +++ b/pkg/tsdb/cloudwatch/models/cloudwatch_query.go @@ -84,7 +84,7 @@ func (q *CloudWatchQuery) GetGetMetricDataAPIMode() GMDApiMode { return GMDApiModeSQLExpression } - q.logger.Warn("could not resolve CloudWatch metric query type. Falling back to metric stat.", "query", q) + q.logger.Warn("Could not resolve CloudWatch metric query type. Falling back to metric stat.", "query", q) return GMDApiModeMetricStat } diff --git a/pkg/tsdb/cloudwatch/routes/middleware.go b/pkg/tsdb/cloudwatch/routes/middleware.go index 878f62b5ce2..3ab5ca08160 100644 --- a/pkg/tsdb/cloudwatch/routes/middleware.go +++ b/pkg/tsdb/cloudwatch/routes/middleware.go @@ -20,7 +20,7 @@ func ResourceRequestMiddleware(handleFunc models.RouteHandlerFunc, logger log.Lo pluginContext := httpadapter.PluginConfigFromContext(ctx) json, httpError := handleFunc(ctx, pluginContext, reqCtxFactory, req.URL.Query()) if httpError != nil { - logger.Error("error handling resource request", "error", httpError.Message) + logger.Error("Error handling resource request", "error", httpError.Message) respondWithError(rw, httpError) return } @@ -28,7 +28,7 @@ func ResourceRequestMiddleware(handleFunc models.RouteHandlerFunc, logger log.Lo rw.Header().Set("Content-Type", "application/json") _, err := rw.Write(json) if err != nil { - logger.Error("error handling resource request", "error", err) + logger.Error("Error handling resource request", "error", err) respondWithError(rw, models.NewHttpError("error writing response in resource request middleware", http.StatusInternalServerError, err)) } } diff --git a/pkg/tsdb/grafana-pyroscope-datasource/pyroscopeClient.go b/pkg/tsdb/grafana-pyroscope-datasource/pyroscopeClient.go index 60b69473cbf..a614c73be19 100644 --- a/pkg/tsdb/grafana-pyroscope-datasource/pyroscopeClient.go +++ b/pkg/tsdb/grafana-pyroscope-datasource/pyroscopeClient.go @@ -33,7 +33,7 @@ func (c *PyroscopeClient) ProfileTypes(ctx context.Context) ([]*ProfileType, err } defer func() { if err := resp.Body.Close(); err != nil { - logger.Error("failed to close response body", "err", err) + logger.Error("Failed to close response body", "err", err) } }() @@ -97,7 +97,7 @@ func (c *PyroscopeClient) getProfileData(ctx context.Context, profileTypeID, lab } url := c.URL + "/render?" + params.Encode() - logger.Debug("calling /render", "url", url) + logger.Debug("Calling /render", "url", url) resp, err := c.httpClient.Get(url) if err != nil { @@ -105,7 +105,7 @@ func (c *PyroscopeClient) getProfileData(ctx context.Context, profileTypeID, lab } defer func() { if err := resp.Body.Close(); err != nil { - logger.Error("failed to close response body", "err", err) + logger.Error("Failed to close response body", "err", err) } }() @@ -118,7 +118,7 @@ func (c *PyroscopeClient) getProfileData(ctx context.Context, profileTypeID, lab err = json.Unmarshal(body, &respData) if err != nil { - logger.Debug("flamegraph data", "body", string(body)) + logger.Debug("Flamegraph data", "body", string(body)) return nil, fmt.Errorf("error decoding flamegraph data: %v", err) } @@ -230,7 +230,7 @@ func (c *PyroscopeClient) LabelNames(ctx context.Context, query string, start in } defer func() { if err := resp.Body.Close(); err != nil { - logger.Error("failed to close response body", "err", err) + logger.Error("Failed to close response body", "err", err) } }() @@ -264,7 +264,7 @@ func (c *PyroscopeClient) LabelValues(ctx context.Context, query string, label s } defer func() { if err := resp.Body.Close(); err != nil { - logger.Error("failed to close response body", "err", err) + logger.Error("Failed to close response body", "err", err) } }() var values []string @@ -274,7 +274,7 @@ func (c *PyroscopeClient) LabelValues(ctx context.Context, query string, label s } err = json.Unmarshal(body, &values) if err != nil { - logger.Debug("response", "body", string(body)) + logger.Debug("Response", "body", string(body)) return nil, fmt.Errorf("error unmarshaling response %v", err) } diff --git a/pkg/tsdb/grafana-pyroscope-datasource/query.go b/pkg/tsdb/grafana-pyroscope-datasource/query.go index 022e0e5ceb0..f5cc798c091 100644 --- a/pkg/tsdb/grafana-pyroscope-datasource/query.go +++ b/pkg/tsdb/grafana-pyroscope-datasource/query.go @@ -176,7 +176,7 @@ func levelsToTree(levels []*Level, names []string) *ProfileTree { // If we still have levels to go, this should not happen. Something is probably wrong with the flamebearer data. if len(parentsStack) == 0 { - logger.Error("parentsStack is empty but we are not at the the last level", "currentLevel", currentLevel) + logger.Error("ParentsStack is empty but we are not at the the last level", "currentLevel", currentLevel) break } @@ -220,7 +220,7 @@ func levelsToTree(levels []*Level, names []string) *ProfileTree { // We went out of parents bounds so lets move to next parent. We will evaluate the same item again, but // we will check if it is a child of the next parent item in line. if len(parentsStack) == 0 { - logger.Error("parentsStack is empty but there are still items in current level", "currentLevel", currentLevel, "itemIndex", itemIndex) + logger.Error("ParentsStack is empty but there are still items in current level", "currentLevel", currentLevel, "itemIndex", itemIndex) break } currentParent = parentsStack[:1][0] diff --git a/pkg/tsdb/graphite/graphite.go b/pkg/tsdb/graphite/graphite.go index 98136bca5b4..ef8083601ac 100644 --- a/pkg/tsdb/graphite/graphite.go +++ b/pkg/tsdb/graphite/graphite.go @@ -164,7 +164,7 @@ func (s *Service) QueryData(ctx context.Context, req *backend.QueryDataRequest) defer func() { err := res.Body.Close() if err != nil { - logger.Warn("failed to close response body", "error", err) + logger.Warn("Failed to close response body", "error", err) } }() @@ -206,7 +206,7 @@ func (s *Service) processQueries(logger log.Logger, queries []backend.DataQuery) if err != nil { return nil, nil, nil, err } - logger.Debug("graphite", "query", model) + logger.Debug("Graphite", "query", model) currTarget := "" if fullTarget, err := model.Get(TargetFullModelField).String(); err == nil { currTarget = fullTarget @@ -214,7 +214,7 @@ func (s *Service) processQueries(logger log.Logger, queries []backend.DataQuery) currTarget = model.Get(TargetModelField).MustString() } if currTarget == "" { - logger.Debug("graphite", "empty query target", model) + logger.Debug("Graphite", "empty query target", model) emptyQueries = append(emptyQueries, fmt.Sprintf("Query: %v has no target", model)) continue } diff --git a/pkg/tsdb/influxdb/healthcheck.go b/pkg/tsdb/influxdb/healthcheck.go index aefde0e70cc..6cbe7f3694e 100644 --- a/pkg/tsdb/influxdb/healthcheck.go +++ b/pkg/tsdb/influxdb/healthcheck.go @@ -154,7 +154,7 @@ func getHealthCheckMessage(logger log.Logger, message string, err error) (*backe }, nil } - logger.Warn("error performing influxdb healthcheck", "err", err.Error()) + logger.Warn("Error performing influxdb healthcheck", "err", err.Error()) errorMessage := fmt.Sprintf("%s %s", err.Error(), message) return &backend.CheckHealthResult{ diff --git a/pkg/tsdb/loki/loki.go b/pkg/tsdb/loki/loki.go index f5f007a4fa2..a250334bf3e 100644 --- a/pkg/tsdb/loki/loki.go +++ b/pkg/tsdb/loki/loki.go @@ -101,7 +101,7 @@ func (s *Service) CallResource(ctx context.Context, req *backend.CallResourceReq dsInfo, err := s.getDSInfo(ctx, req.PluginContext) logger := logger.FromContext(ctx).New("api", "CallResource") if err != nil { - logger.Error("failed to get data source info", "err", err) + logger.Error("Failed to get data source info", "err", err) return err } return callResource(ctx, req, sender, dsInfo, logger, s.tracer) diff --git a/pkg/tsdb/loki/streaming.go b/pkg/tsdb/loki/streaming.go index 46989eb4b37..a8d5ad0af31 100644 --- a/pkg/tsdb/loki/streaming.go +++ b/pkg/tsdb/loki/streaming.go @@ -93,10 +93,10 @@ func (s *Service) RunStream(ctx context.Context, req *backend.RunStreamRequest, } wsurl.RawQuery = params.Encode() - logger.Info("connecting to websocket", "url", wsurl) + logger.Info("Connecting to websocket", "url", wsurl) c, r, err := websocket.DefaultDialer.Dial(wsurl.String(), nil) if err != nil { - logger.Error("error connecting to websocket", "err", err) + logger.Error("Error connecting to websocket", "err", err) return fmt.Errorf("error connecting to websocket") } @@ -108,7 +108,7 @@ func (s *Service) RunStream(ctx context.Context, req *backend.RunStreamRequest, _ = r.Body.Close() } err = c.Close() - logger.Error("closing loki websocket", "err", err) + logger.Error("Closing loki websocket", "err", err) }() prev := data.FrameJSONCache{} @@ -120,7 +120,7 @@ func (s *Service) RunStream(ctx context.Context, req *backend.RunStreamRequest, for { _, message, err := c.ReadMessage() if err != nil { - logger.Error("websocket read:", "err", err) + logger.Error("Websocket read:", "err", err) return } @@ -143,7 +143,7 @@ func (s *Service) RunStream(ctx context.Context, req *backend.RunStreamRequest, } if err != nil { - logger.Error("websocket write:", "err", err, "raw", message) + logger.Error("Websocket write:", "err", err, "raw", message) return } } @@ -155,14 +155,14 @@ func (s *Service) RunStream(ctx context.Context, req *backend.RunStreamRequest, for { select { case <-done: - logger.Info("socket done") + logger.Info("Socket done") return nil case <-ctx.Done(): - logger.Info("stop streaming (context canceled)") + logger.Info("Stop streaming (context canceled)") return nil case t := <-ticker.C: count++ - logger.Error("loki websocket ping?", "time", t, "count", count) + logger.Error("Loki websocket ping?", "time", t, "count", count) } } } diff --git a/pkg/tsdb/mysql/macros.go b/pkg/tsdb/mysql/macros.go index b5c66dc4c35..ace4072960e 100644 --- a/pkg/tsdb/mysql/macros.go +++ b/pkg/tsdb/mysql/macros.go @@ -34,7 +34,7 @@ func newMysqlMacroEngine(logger log.Logger, cfg *setting.Cfg) sqleng.SQLMacroEng func (m *mySQLMacroEngine) Interpolate(query *backend.DataQuery, timeRange backend.TimeRange, sql string) (string, error) { matches := restrictedRegExp.FindAllStringSubmatch(sql, 1) if len(matches) > 0 { - m.logger.Error("show grants, session_user(), current_user(), system_user() or user() not allowed in query") + m.logger.Error("Show grants, session_user(), current_user(), system_user() or user() not allowed in query") return "", fmt.Errorf("invalid query - %s", m.userError) } diff --git a/pkg/tsdb/prometheus/healthcheck.go b/pkg/tsdb/prometheus/healthcheck.go index 4d75df134c6..80a85d2622e 100644 --- a/pkg/tsdb/prometheus/healthcheck.go +++ b/pkg/tsdb/prometheus/healthcheck.go @@ -37,17 +37,17 @@ func (s *Service) CheckHealth(ctx context.Context, req *backend.CheckHealthReque hc, err := healthcheck(ctx, req, ds) if err != nil { - logger.Warn("error performing prometheus healthcheck", "err", err.Error()) + logger.Warn("Error performing prometheus healthcheck", "err", err.Error()) return nil, err } heuristics, err := getHeuristics(ctx, ds) if err != nil { - logger.Warn("failed to get prometheus heuristics", "err", err.Error()) + logger.Warn("Failed to get prometheus heuristics", "err", err.Error()) } else { jsonDetails, err := json.Marshal(heuristics) if err != nil { - logger.Warn("failed to marshal heuristics", "err", err) + logger.Warn("Failed to marshal heuristics", "err", err) } else { hc.JSONDetails = jsonDetails } diff --git a/pkg/tsdb/prometheus/heuristics.go b/pkg/tsdb/prometheus/heuristics.go index 97dfaac5539..78e38c027ee 100644 --- a/pkg/tsdb/prometheus/heuristics.go +++ b/pkg/tsdb/prometheus/heuristics.go @@ -97,7 +97,7 @@ func getHeuristics(ctx context.Context, i *instance) (*Heuristics, error) { } buildInfo, err := getBuildInfo(ctx, i) if err != nil { - logger.Warn("failed to get prometheus buildinfo", "err", err.Error()) + logger.Warn("Failed to get prometheus buildinfo", "err", err.Error()) return nil, fmt.Errorf("failed to get buildinfo: %w", err) } if len(buildInfo.Data.Features) == 0 { diff --git a/pkg/tsdb/prometheus/prometheus.go b/pkg/tsdb/prometheus/prometheus.go index 3ace8cb5e73..1b6a5d54b54 100644 --- a/pkg/tsdb/prometheus/prometheus.go +++ b/pkg/tsdb/prometheus/prometheus.go @@ -38,7 +38,7 @@ type instance struct { } func ProvideService(httpClientProvider httpclient.Provider, cfg *setting.Cfg, features featuremgmt.FeatureToggles, tracer tracing.Tracer) *Service { - plog.Debug("initializing") + plog.Debug("Initializing") return &Service{ im: datasource.NewInstanceManager(newInstanceSettings(httpClientProvider, cfg, features, tracer)), features: features, diff --git a/pkg/tsdb/prometheus/querydata/request.go b/pkg/tsdb/prometheus/querydata/request.go index e0616a705f4..d59692c87cf 100644 --- a/pkg/tsdb/prometheus/querydata/request.go +++ b/pkg/tsdb/prometheus/querydata/request.go @@ -162,7 +162,7 @@ func (s *QueryData) rangeQuery(ctx context.Context, c *client.Client, q *models. defer func() { err := res.Body.Close() if err != nil { - s.log.Warn("failed to close query range response body", "error", err) + s.log.Warn("Failed to close query range response body", "error", err) } }() @@ -187,7 +187,7 @@ func (s *QueryData) instantQuery(ctx context.Context, c *client.Client, q *model defer func() { err := res.Body.Close() if err != nil { - s.log.Warn("failed to close response body", "error", err) + s.log.Warn("Failed to close response body", "error", err) } }() @@ -205,7 +205,7 @@ func (s *QueryData) exemplarQuery(ctx context.Context, c *client.Client, q *mode defer func() { err := res.Body.Close() if err != nil { - s.log.Warn("failed to close response body", "error", err) + s.log.Warn("Failed to close response body", "error", err) } }() return s.parseResponse(ctx, q, res) diff --git a/pkg/tsdb/tempo/trace.go b/pkg/tsdb/tempo/trace.go index ac1095daa47..271d7146720 100644 --- a/pkg/tsdb/tempo/trace.go +++ b/pkg/tsdb/tempo/trace.go @@ -40,7 +40,7 @@ func (s *Service) getTrace(ctx context.Context, pCtx backend.PluginContext, quer defer func() { if err := resp.Body.Close(); err != nil { - s.logger.FromContext(ctx).Warn("failed to close response body", "err", err) + s.logger.FromContext(ctx).Warn("Failed to close response body", "err", err) } }() diff --git a/pkg/tsdb/testdatasource/testdata.go b/pkg/tsdb/testdatasource/testdata.go index f6792f636ea..44fc238ce45 100644 --- a/pkg/tsdb/testdatasource/testdata.go +++ b/pkg/tsdb/testdatasource/testdata.go @@ -35,7 +35,7 @@ func ProvideService() *Service { var err error s.sims, err = sims.NewSimulationEngine() if err != nil { - s.logger.Error("unable to initialize SimulationEngine", "err", err) + s.logger.Error("Unable to initialize SimulationEngine", "err", err) } s.registerScenarios()