AzureMonitor: Improve errorsource (#93533)

* Improve errorsource

* Fix imports
This commit is contained in:
Andreas Christou
2024-09-24 12:45:44 -05:00
committed by GitHub
parent 76c8975b4f
commit 564ee32b04
4 changed files with 21 additions and 18 deletions
@@ -6,7 +6,6 @@ import (
"context"
"encoding/base64"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
@@ -26,6 +25,7 @@ import (
"github.com/grafana/grafana/pkg/tsdb/azuremonitor/kinds/dataquery"
"github.com/grafana/grafana/pkg/tsdb/azuremonitor/macros"
"github.com/grafana/grafana/pkg/tsdb/azuremonitor/types"
"github.com/grafana/grafana/pkg/tsdb/azuremonitor/utils"
)
func (e *AzureLogAnalyticsDatasource) ResourceRequest(rw http.ResponseWriter, req *http.Request, cli *http.Client) (http.ResponseWriter, error) {
@@ -243,11 +243,7 @@ func (e *AzureLogAnalyticsDatasource) buildQuery(ctx context.Context, query back
azureLogAnalyticsQuery, err = buildLogAnalyticsQuery(query, dsInfo, appInsightsRegExp, fromAlert)
if err != nil {
errorMessage := fmt.Errorf("failed to build azure log analytics query: %w", err)
var sourceError errorsource.Error
if errors.As(err, &sourceError) {
return nil, errorsource.SourceError(sourceError.Source(), errorMessage, false)
}
return nil, errorMessage
return nil, utils.ApplySourceFromError(errorMessage, err)
}
}
@@ -262,11 +258,7 @@ func (e *AzureLogAnalyticsDatasource) buildQuery(ctx context.Context, query back
azureAppInsightsQuery, err := buildAppInsightsQuery(ctx, query, dsInfo, appInsightsRegExp, e.Logger)
if err != nil {
errorMessage := fmt.Errorf("failed to build azure application insights query: %w", err)
var sourceError errorsource.Error
if errors.As(err, &sourceError) {
return nil, errorsource.SourceError(sourceError.Source(), errorMessage, false)
}
return nil, errorMessage
return nil, utils.ApplySourceFromError(errorMessage, err)
}
azureLogAnalyticsQuery = azureAppInsightsQuery
}
@@ -612,11 +604,11 @@ func getCorrelationWorkspaces(ctx context.Context, baseResource string, resource
res, err := azMonService.HTTPClient.Do(req)
if err != nil {
return AzureCorrelationAPIResponse{}, err
return AzureCorrelationAPIResponse{}, errorsource.DownstreamError(err, false)
}
body, err := io.ReadAll(res.Body)
if err != nil {
return AzureCorrelationAPIResponse{}, err
return AzureCorrelationAPIResponse{}, errorsource.DownstreamError(err, false)
}
defer func() {
+4 -2
View File
@@ -201,7 +201,8 @@ func buildAppInsightsQuery(ctx context.Context, query backend.DataQuery, dsInfo
if query.QueryType == string(dataquery.AzureQueryTypeTraceql) {
subscription, err := utils.GetFirstSubscriptionOrDefault(ctx, dsInfo, logger)
if err != nil {
return nil, fmt.Errorf("failed to retrieve subscription for trace exemplars query: %w", err)
errorMessage := fmt.Errorf("failed to retrieve subscription for trace exemplars query: %w", err)
return nil, utils.ApplySourceFromError(errorMessage, err)
}
resources = []string{fmt.Sprintf("/subscriptions/%s", subscription)}
}
@@ -222,7 +223,8 @@ func buildAppInsightsQuery(ctx context.Context, query backend.DataQuery, dsInfo
operationId = *queryJSONModel.AzureTraces.OperationId
resourcesMap, err = getCorrelationWorkspaces(ctx, resourceOrWorkspace, resourcesMap, dsInfo, operationId)
if err != nil {
return nil, fmt.Errorf("failed to retrieve correlation resources for operation ID - %s: %s", operationId, err)
errorMessage := fmt.Errorf("failed to retrieve correlation resources for operation ID - %s: %s", operationId, err)
return nil, utils.ApplySourceFromError(errorMessage, err)
}
}