loki: simplify interval calculation (#41857)

This commit is contained in:
Gábor Farkas
2021-11-19 17:20:32 +01:00
committed by GitHub
parent ce4490cbba
commit 2fbc6b1d2f
2 changed files with 29 additions and 52 deletions
+22 -35
View File
@@ -8,7 +8,6 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/grafana/grafana-plugin-sdk-go/data"
"github.com/grafana/grafana/pkg/tsdb/intervalv2"
"github.com/grafana/loki/pkg/loghttp"
p "github.com/prometheus/common/model"
"github.com/stretchr/testify/require"
@@ -57,24 +56,18 @@ func TestLoki(t *testing.T) {
From: time.Now().Add(-30 * time.Second),
To: time.Now(),
},
},
},
}
service := &Service{
intervalCalculator: mockCalculator{
interval: intervalv2.Interval{
Value: time.Second * 30,
Interval: time.Second * 30,
},
},
}
dsInfo := &datasourceInfo{}
models, err := service.parseQuery(dsInfo, queryContext)
models, err := parseQuery(dsInfo, queryContext)
require.NoError(t, err)
require.Equal(t, time.Second*30, models[0].Step)
})
t.Run("parsing query model without step parameter", func(t *testing.T) {
queryContext := &backend.QueryDataRequest{
queryContext1 := &backend.QueryDataRequest{
Queries: []backend.DataQuery{
{
JSON: []byte(`
@@ -88,29 +81,35 @@ func TestLoki(t *testing.T) {
From: time.Now().Add(-48 * time.Hour),
To: time.Now(),
},
},
},
}
service := &Service{
intervalCalculator: mockCalculator{
interval: intervalv2.Interval{
Value: time.Minute * 2,
Interval: time.Minute * 2,
},
},
}
dsInfo := &datasourceInfo{}
models, err := service.parseQuery(dsInfo, queryContext)
models, err := parseQuery(dsInfo, queryContext1)
require.NoError(t, err)
require.Equal(t, time.Minute*2, models[0].Step)
service = &Service{
intervalCalculator: mockCalculator{
interval: intervalv2.Interval{
Value: time.Second * 2,
queryContext2 := &backend.QueryDataRequest{
Queries: []backend.DataQuery{
{
JSON: []byte(`
{
"expr": "go_goroutines",
"format": "time_series",
"refId": "A"
}`,
),
TimeRange: backend.TimeRange{
From: time.Now().Add(-48 * time.Hour),
To: time.Now(),
},
Interval: time.Second * 2,
},
},
}
models, err = service.parseQuery(dsInfo, queryContext)
models, err = parseQuery(dsInfo, queryContext2)
require.NoError(t, err)
fmt.Println(models)
require.Equal(t, time.Second*2, models[0].Step)
@@ -173,15 +172,3 @@ func TestParseResponse(t *testing.T) {
}
})
}
type mockCalculator struct {
interval intervalv2.Interval
}
func (m mockCalculator) Calculate(timerange backend.TimeRange, minInterval time.Duration, maxDataPoints int64) intervalv2.Interval {
return m.interval
}
func (m mockCalculator) CalculateSafeInterval(timerange backend.TimeRange, resolution int64) intervalv2.Interval {
return m.interval
}