mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
influxdb: influxql: explicit min-interval check (#38873)
* influxdb: influxql: explicit min-interval check * added test
This commit is contained in:
@@ -3,6 +3,7 @@ package influxdb
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||
"github.com/grafana/grafana/pkg/components/simplejson"
|
||||
@@ -44,6 +45,15 @@ func (qp *InfluxdbQueryParser) Parse(query backend.DataQuery) (*Query, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
interval := query.Interval
|
||||
|
||||
// we make sure it is at least 1 millisecond
|
||||
minInterval := time.Millisecond
|
||||
|
||||
if interval < minInterval {
|
||||
interval = minInterval
|
||||
}
|
||||
|
||||
return &Query{
|
||||
Measurement: measurement,
|
||||
Policy: policy,
|
||||
@@ -52,7 +62,7 @@ func (qp *InfluxdbQueryParser) Parse(query backend.DataQuery) (*Query, error) {
|
||||
Tags: tags,
|
||||
Selects: selects,
|
||||
RawQuery: rawQuery,
|
||||
Interval: query.Interval,
|
||||
Interval: interval,
|
||||
Alias: alias,
|
||||
UseRawQuery: useRawQuery,
|
||||
Tz: tz,
|
||||
|
@@ -175,4 +175,23 @@ func TestInfluxdbQueryParser_Parse(t *testing.T) {
|
||||
require.Empty(t, res.Tags)
|
||||
require.Equal(t, time.Second*10, res.Interval)
|
||||
})
|
||||
|
||||
t.Run("will enforce a minInterval of 1 millisecond", func(t *testing.T) {
|
||||
json := `
|
||||
{
|
||||
"query": "RawDummyQuery",
|
||||
"rawQuery": true,
|
||||
"resultFormat": "time_series"
|
||||
}
|
||||
`
|
||||
|
||||
query := backend.DataQuery{
|
||||
JSON: []byte(json),
|
||||
Interval: time.Millisecond * 0,
|
||||
}
|
||||
|
||||
res, err := parser.Parse(query)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, time.Millisecond*1, res.Interval)
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user