SQL: Migrate to use SDK contracts (#36635)
* convert SQLs to use sdk contracts * make draft * postgres * intermedia * get datasourceinfo filled at the beginning of the service * move the interval into package because of cyclict import and fix all postgres tests * fix mysql test * fix mssql * fix the test for pr https://github.com/grafana/grafana/issues/35839 * fix some issue about intervalv2 package * update sql test * wire migration for SQLs * add sqls to the background process * make it register instead of register and start * revert formatting * fix tests * fix linter * remove integration test * Postgres test fix Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
This commit is contained in:
co-authored by
Marcus Efraimsson
parent
51aeb717a4
commit
c989f0fbbe
@@ -18,7 +18,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin"
|
||||
"github.com/grafana/grafana/pkg/tsdb"
|
||||
"github.com/grafana/grafana/pkg/tsdb/intervalv2"
|
||||
"github.com/grafana/loki/pkg/logcli/client"
|
||||
"github.com/grafana/loki/pkg/loghttp"
|
||||
"github.com/grafana/loki/pkg/logproto"
|
||||
@@ -29,7 +29,7 @@ import (
|
||||
)
|
||||
|
||||
type Service struct {
|
||||
intervalCalculator tsdb.Calculator
|
||||
intervalCalculator intervalv2.Calculator
|
||||
im instancemgmt.InstanceManager
|
||||
plog log.Logger
|
||||
}
|
||||
@@ -38,7 +38,7 @@ func ProvideService(httpClientProvider httpclient.Provider, manager backendplugi
|
||||
im := datasource.NewInstanceManager(newInstanceSettings(httpClientProvider))
|
||||
s := &Service{
|
||||
im: im,
|
||||
intervalCalculator: tsdb.NewCalculator(),
|
||||
intervalCalculator: intervalv2.NewCalculator(),
|
||||
plog: log.New("tsdb.loki"),
|
||||
}
|
||||
|
||||
@@ -195,12 +195,12 @@ func (s *Service) parseQuery(dsInfo *datasourceInfo, queryContext *backend.Query
|
||||
start := query.TimeRange.From
|
||||
end := query.TimeRange.To
|
||||
|
||||
dsInterval, err := tsdb.GetIntervalFrom(dsInfo.TimeInterval, model.Interval, int64(model.IntervalMS), time.Second)
|
||||
dsInterval, err := intervalv2.GetIntervalFrom(dsInfo.TimeInterval, model.Interval, int64(model.IntervalMS), time.Second)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to parse Interval: %v", err)
|
||||
}
|
||||
|
||||
interval, err := s.intervalCalculator.Calculate(query.TimeRange, dsInterval, tsdb.Min)
|
||||
interval, err := s.intervalCalculator.Calculate(query.TimeRange, dsInterval, intervalv2.Min)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ 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"
|
||||
"github.com/grafana/grafana/pkg/tsdb/intervalv2"
|
||||
"github.com/grafana/loki/pkg/loghttp"
|
||||
p "github.com/prometheus/common/model"
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -62,7 +62,7 @@ func TestLoki(t *testing.T) {
|
||||
}
|
||||
service := &Service{
|
||||
intervalCalculator: mockCalculator{
|
||||
interval: tsdb.Interval{
|
||||
interval: intervalv2.Interval{
|
||||
Value: time.Second * 30,
|
||||
},
|
||||
},
|
||||
@@ -93,7 +93,7 @@ func TestLoki(t *testing.T) {
|
||||
}
|
||||
service := &Service{
|
||||
intervalCalculator: mockCalculator{
|
||||
interval: tsdb.Interval{
|
||||
interval: intervalv2.Interval{
|
||||
Value: time.Minute * 2,
|
||||
},
|
||||
},
|
||||
@@ -105,7 +105,7 @@ func TestLoki(t *testing.T) {
|
||||
|
||||
service = &Service{
|
||||
intervalCalculator: mockCalculator{
|
||||
interval: tsdb.Interval{
|
||||
interval: intervalv2.Interval{
|
||||
Value: time.Second * 2,
|
||||
},
|
||||
},
|
||||
@@ -175,13 +175,13 @@ func TestParseResponse(t *testing.T) {
|
||||
}
|
||||
|
||||
type mockCalculator struct {
|
||||
interval tsdb.Interval
|
||||
interval intervalv2.Interval
|
||||
}
|
||||
|
||||
func (m mockCalculator) Calculate(timerange backend.TimeRange, minInterval time.Duration, intervalMode tsdb.IntervalMode) (tsdb.Interval, error) {
|
||||
func (m mockCalculator) Calculate(timerange backend.TimeRange, minInterval time.Duration, intervalMode intervalv2.IntervalMode) (intervalv2.Interval, error) {
|
||||
return m.interval, nil
|
||||
}
|
||||
|
||||
func (m mockCalculator) CalculateSafeInterval(timerange backend.TimeRange, resolution int64) tsdb.Interval {
|
||||
func (m mockCalculator) CalculateSafeInterval(timerange backend.TimeRange, resolution int64) intervalv2.Interval {
|
||||
return m.interval
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user