diff --git a/pkg/tsdb/azuremonitor/azmoncredentials/builder.go b/pkg/tsdb/azuremonitor/azmoncredentials/builder.go index 30c98ec4915..69bb4582dab 100644 --- a/pkg/tsdb/azuremonitor/azmoncredentials/builder.go +++ b/pkg/tsdb/azuremonitor/azmoncredentials/builder.go @@ -1,10 +1,12 @@ package azmoncredentials import ( + "errors" "fmt" "github.com/grafana/grafana-azure-sdk-go/v2/azcredentials" "github.com/grafana/grafana-azure-sdk-go/v2/azsettings" + "github.com/grafana/grafana-plugin-sdk-go/backend" "github.com/grafana/grafana-plugin-sdk-go/data/utils/maputil" ) @@ -95,7 +97,7 @@ func getFromLegacy(data map[string]interface{}, secureData map[string]string) (a clientSecret := secureData["clientSecret"] if secureData["clientSecret"] == "" { - return nil, fmt.Errorf("unable to instantiate credentials, clientSecret must be set") + return nil, backend.DownstreamError(errors.New("unable to instantiate credentials, clientSecret must be set")) } credentials := &azcredentials.AzureClientSecretCredentials{ diff --git a/pkg/tsdb/azuremonitor/metrics/azuremonitor-datasource.go b/pkg/tsdb/azuremonitor/metrics/azuremonitor-datasource.go index 88e1c72db63..d8e2b99ce25 100644 --- a/pkg/tsdb/azuremonitor/metrics/azuremonitor-datasource.go +++ b/pkg/tsdb/azuremonitor/metrics/azuremonitor-datasource.go @@ -269,7 +269,11 @@ func (e *AzureMonitorDatasource) retrieveSubscriptionDetails(cli *http.Client, c res, err := cli.Do(req) if err != nil { - return "", fmt.Errorf("failed to request subscription details: %s", err) + err = fmt.Errorf("failed to request subscription details: %s", err) + if backend.IsDownstreamHTTPError(err) { + err = backend.DownstreamError(err) + } + return "", err } defer func() {