InfluxDB: Use grafana timeout value for flux queries (#81252)

* use grafana timeout for flux queries

* get timeout from settings

* fix test
This commit is contained in:
ismail simsek 2024-01-25 17:05:08 +01:00 committed by GitHub
parent add5a5c01e
commit 7d0017f3f2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 9 additions and 5 deletions

View File

@ -24,9 +24,9 @@ import (
"github.com/grafana/grafana/pkg/util"
)
//--------------------------------------------------------------
// --------------------------------------------------------------
// TestData -- reads result from saved files
//--------------------------------------------------------------
// --------------------------------------------------------------
// MockRunner reads local file path for testdata.
type MockRunner struct {
@ -220,7 +220,8 @@ func TestRealQuery(t *testing.T) {
json.Set("organization", "test-org")
dsInfo := &models.DatasourceInfo{
URL: "http://localhost:9999", // NOTE! no api/v2
URL: "http://localhost:9999", // NOTE! no api/v2
Timeout: 30 * time.Second,
}
runner, err := runnerFromDataSource(dsInfo)

View File

@ -17,8 +17,7 @@ var (
)
// Query builds flux queries, executes them, and returns the results.
func Query(ctx context.Context, dsInfo *models.DatasourceInfo, tsdbQuery backend.QueryDataRequest) (
*backend.QueryDataResponse, error) {
func Query(ctx context.Context, dsInfo *models.DatasourceInfo, tsdbQuery backend.QueryDataRequest) (*backend.QueryDataResponse, error) {
logger := glog.FromContext(ctx)
tRes := backend.NewQueryDataResponse()
logger.Debug("Received a query", "query", tsdbQuery)
@ -76,6 +75,7 @@ func runnerFromDataSource(dsInfo *models.DatasourceInfo) (*runner, error) {
}
opts := influxdb2.DefaultOptions()
opts.HTTPOptions().SetHTTPClient(dsInfo.HTTPClient)
opts.SetHTTPRequestTimeout(uint(dsInfo.Timeout.Seconds()))
return &runner{
client: influxdb2.NewClientWithOptions(url, dsInfo.Token, opts),
org: org,

View File

@ -84,6 +84,7 @@ func newInstanceSettings(httpClientProvider httpclient.Provider) datasource.Inst
MaxSeries: maxSeries,
SecureGrpc: true,
Token: settings.DecryptedSecureJSONData["token"],
Timeout: opts.Timeouts.Timeout,
}
return model, nil
}

View File

@ -2,6 +2,7 @@ package models
import (
"net/http"
"time"
)
type DatasourceInfo struct {
@ -17,6 +18,7 @@ type DatasourceInfo struct {
DefaultBucket string `json:"defaultBucket"`
Organization string `json:"organization"`
MaxSeries int `json:"maxSeries"`
Timeout time.Duration
// FlightSQL grpc connection
SecureGrpc bool `json:"secureGrpc"`