From b0ecc90329b8e623541601a26206e0454bd6e884 Mon Sep 17 00:00:00 2001 From: beejeebus Date: Mon, 14 Apr 2025 09:21:09 -0400 Subject: [PATCH] InfluxDB: capture more downstream errors (#103978) This adds more checks on the type of errors returned from InfluxDB fsql datasource queries. The Grpc error code `Unavailable` is mapped to a downstream error source. --- pkg/tsdb/influxdb/fsql/fsql.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/tsdb/influxdb/fsql/fsql.go b/pkg/tsdb/influxdb/fsql/fsql.go index 90925031f57..6869696fab3 100644 --- a/pkg/tsdb/influxdb/fsql/fsql.go +++ b/pkg/tsdb/influxdb/fsql/fsql.go @@ -3,6 +3,7 @@ package fsql import ( "context" "fmt" + "net/http" "net/url" "github.com/grafana/grafana-plugin-sdk-go/backend" @@ -62,6 +63,8 @@ func Query(ctx context.Context, dsInfo *models.DatasourceInfo, req backend.Query tRes.Responses[q.RefID] = backend.ErrDataResponseWithSource(backend.StatusForbidden, backend.ErrorSourceDownstream, errStr) case codes.NotFound: tRes.Responses[q.RefID] = backend.ErrDataResponseWithSource(backend.StatusNotFound, backend.ErrorSourceDownstream, errStr) + case codes.Unavailable: + tRes.Responses[q.RefID] = backend.ErrDataResponseWithSource(http.StatusServiceUnavailable, backend.ErrorSourceDownstream, errStr) default: tRes.Responses[q.RefID] = backend.ErrDataResponse(backend.StatusInternal, errStr) }