mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
CloudWatch: Pass feature toggles to backend (#48547)
This commit is contained in:
parent
2cc276567d
commit
da035e823f
@ -73,7 +73,7 @@ func TestPluginManager_int_init(t *testing.T) {
|
|||||||
|
|
||||||
hcp := httpclient.NewProvider()
|
hcp := httpclient.NewProvider()
|
||||||
am := azuremonitor.ProvideService(cfg, hcp, tracer)
|
am := azuremonitor.ProvideService(cfg, hcp, tracer)
|
||||||
cw := cloudwatch.ProvideService(cfg, hcp)
|
cw := cloudwatch.ProvideService(cfg, hcp, features)
|
||||||
cm := cloudmonitoring.ProvideService(hcp, tracer)
|
cm := cloudmonitoring.ProvideService(hcp, tracer)
|
||||||
es := elasticsearch.ProvideService(hcp)
|
es := elasticsearch.ProvideService(hcp)
|
||||||
grap := graphite.ProvideService(hcp, tracer)
|
grap := graphite.ProvideService(hcp, tracer)
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
||||||
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
@ -33,7 +34,7 @@ func TestQuery_AnnotationQuery(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{
|
PluginContext: backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -67,7 +68,7 @@ func TestQuery_AnnotationQuery(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{
|
PluginContext: backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
|
@ -28,6 +28,7 @@ import (
|
|||||||
"github.com/grafana/grafana/pkg/components/simplejson"
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
||||||
"github.com/grafana/grafana/pkg/infra/httpclient"
|
"github.com/grafana/grafana/pkg/infra/httpclient"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/grafana/grafana/pkg/infra/log"
|
||||||
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -63,10 +64,10 @@ const (
|
|||||||
var plog = log.New("tsdb.cloudwatch")
|
var plog = log.New("tsdb.cloudwatch")
|
||||||
var aliasFormat = regexp.MustCompile(`\{\{\s*(.+?)\s*\}\}`)
|
var aliasFormat = regexp.MustCompile(`\{\{\s*(.+?)\s*\}\}`)
|
||||||
|
|
||||||
func ProvideService(cfg *setting.Cfg, httpClientProvider httpclient.Provider) *CloudWatchService {
|
func ProvideService(cfg *setting.Cfg, httpClientProvider httpclient.Provider, features featuremgmt.FeatureToggles) *CloudWatchService {
|
||||||
plog.Debug("initing")
|
plog.Debug("initing")
|
||||||
|
|
||||||
executor := newExecutor(datasource.NewInstanceManager(NewInstanceSettings(httpClientProvider)), cfg, awsds.NewSessionCache())
|
executor := newExecutor(datasource.NewInstanceManager(NewInstanceSettings(httpClientProvider)), cfg, awsds.NewSessionCache(), features)
|
||||||
|
|
||||||
return &CloudWatchService{
|
return &CloudWatchService{
|
||||||
Cfg: cfg,
|
Cfg: cfg,
|
||||||
@ -83,11 +84,12 @@ type SessionCache interface {
|
|||||||
GetSession(c awsds.SessionConfig) (*session.Session, error)
|
GetSession(c awsds.SessionConfig) (*session.Session, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newExecutor(im instancemgmt.InstanceManager, cfg *setting.Cfg, sessions SessionCache) *cloudWatchExecutor {
|
func newExecutor(im instancemgmt.InstanceManager, cfg *setting.Cfg, sessions SessionCache, features featuremgmt.FeatureToggles) *cloudWatchExecutor {
|
||||||
cwe := &cloudWatchExecutor{
|
cwe := &cloudWatchExecutor{
|
||||||
im: im,
|
im: im,
|
||||||
cfg: cfg,
|
cfg: cfg,
|
||||||
sessions: sessions,
|
sessions: sessions,
|
||||||
|
features: features,
|
||||||
}
|
}
|
||||||
cwe.resourceHandler = httpadapter.New(cwe.newResourceMux())
|
cwe.resourceHandler = httpadapter.New(cwe.newResourceMux())
|
||||||
return cwe
|
return cwe
|
||||||
@ -161,6 +163,7 @@ type cloudWatchExecutor struct {
|
|||||||
im instancemgmt.InstanceManager
|
im instancemgmt.InstanceManager
|
||||||
cfg *setting.Cfg
|
cfg *setting.Cfg
|
||||||
sessions SessionCache
|
sessions SessionCache
|
||||||
|
features featuremgmt.FeatureToggles
|
||||||
|
|
||||||
resourceHandler backend.CallResourceHandler
|
resourceHandler backend.CallResourceHandler
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
||||||
"github.com/grafana/grafana/pkg/infra/httpclient"
|
"github.com/grafana/grafana/pkg/infra/httpclient"
|
||||||
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
@ -108,7 +109,7 @@ func Test_CheckHealth(t *testing.T) {
|
|||||||
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
|
|
||||||
resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{
|
resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{
|
||||||
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
||||||
@ -130,7 +131,7 @@ func Test_CheckHealth(t *testing.T) {
|
|||||||
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
|
|
||||||
resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{
|
resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{
|
||||||
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
||||||
@ -151,7 +152,7 @@ func Test_CheckHealth(t *testing.T) {
|
|||||||
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
|
|
||||||
resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{
|
resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{
|
||||||
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
||||||
@ -171,7 +172,7 @@ func Test_CheckHealth(t *testing.T) {
|
|||||||
})
|
})
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{getSession: func(c awsds.SessionConfig) (*session.Session, error) {
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{getSession: func(c awsds.SessionConfig) (*session.Session, error) {
|
||||||
return nil, fmt.Errorf("some sessions error")
|
return nil, fmt.Errorf("some sessions error")
|
||||||
}})
|
}}, featuremgmt.WithFeatures())
|
||||||
|
|
||||||
resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{
|
resp, err := executor.CheckHealth(context.Background(), &backend.CheckHealthRequest{
|
||||||
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
||||||
@ -201,7 +202,7 @@ func Test_executeLogAlertQuery(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
sess := fakeSessionCache{}
|
sess := fakeSessionCache{}
|
||||||
executor := newExecutor(im, newTestConfig(), &sess)
|
executor := newExecutor(im, newTestConfig(), &sess, featuremgmt.WithFeatures())
|
||||||
|
|
||||||
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
Headers: map[string]string{"FromAlert": "some value"},
|
Headers: map[string]string{"FromAlert": "some value"},
|
||||||
@ -228,7 +229,7 @@ func Test_executeLogAlertQuery(t *testing.T) {
|
|||||||
})
|
})
|
||||||
sess := fakeSessionCache{}
|
sess := fakeSessionCache{}
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &sess)
|
executor := newExecutor(im, newTestConfig(), &sess, featuremgmt.WithFeatures())
|
||||||
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
Headers: map[string]string{"FromAlert": "some value"},
|
Headers: map[string]string{"FromAlert": "some value"},
|
||||||
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
||||||
|
@ -14,6 +14,7 @@ import (
|
|||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||||
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
@ -52,7 +53,7 @@ func TestQuery_DescribeLogGroups(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{
|
PluginContext: backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -108,7 +109,7 @@ func TestQuery_DescribeLogGroups(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{
|
PluginContext: backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -183,7 +184,7 @@ func TestQuery_GetLogGroupFields(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{
|
PluginContext: backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -264,7 +265,7 @@ func TestQuery_StartQuery(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{
|
PluginContext: backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -317,7 +318,7 @@ func TestQuery_StartQuery(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{
|
PluginContext: backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -374,7 +375,7 @@ func Test_executeStartQuery(t *testing.T) {
|
|||||||
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
|
|
||||||
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
||||||
@ -410,7 +411,7 @@ func Test_executeStartQuery(t *testing.T) {
|
|||||||
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
|
|
||||||
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
||||||
@ -437,7 +438,7 @@ func Test_executeStartQuery(t *testing.T) {
|
|||||||
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
|
|
||||||
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
_, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
PluginContext: backend.PluginContext{DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{}},
|
||||||
@ -499,7 +500,7 @@ func TestQuery_StopQuery(t *testing.T) {
|
|||||||
To: time.Unix(1584700643, 0),
|
To: time.Unix(1584700643, 0),
|
||||||
}
|
}
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{
|
PluginContext: backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -589,7 +590,7 @@ func TestQuery_GetQueryResults(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{
|
PluginContext: backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
|
@ -3,6 +3,7 @@ package cloudwatch
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
@ -10,7 +11,7 @@ import (
|
|||||||
func TestMetricDataQueryBuilder(t *testing.T) {
|
func TestMetricDataQueryBuilder(t *testing.T) {
|
||||||
t.Run("buildMetricDataQuery", func(t *testing.T) {
|
t.Run("buildMetricDataQuery", func(t *testing.T) {
|
||||||
t.Run("should use metric stat", func(t *testing.T) {
|
t.Run("should use metric stat", func(t *testing.T) {
|
||||||
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
query := getBaseQuery()
|
query := getBaseQuery()
|
||||||
query.MetricEditorMode = MetricEditorModeBuilder
|
query.MetricEditorMode = MetricEditorModeBuilder
|
||||||
query.MetricQueryType = MetricQueryTypeSearch
|
query.MetricQueryType = MetricQueryTypeSearch
|
||||||
@ -22,7 +23,7 @@ func TestMetricDataQueryBuilder(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("should use custom built expression", func(t *testing.T) {
|
t.Run("should use custom built expression", func(t *testing.T) {
|
||||||
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
query := getBaseQuery()
|
query := getBaseQuery()
|
||||||
query.MetricEditorMode = MetricEditorModeBuilder
|
query.MetricEditorMode = MetricEditorModeBuilder
|
||||||
query.MetricQueryType = MetricQueryTypeSearch
|
query.MetricQueryType = MetricQueryTypeSearch
|
||||||
@ -34,7 +35,7 @@ func TestMetricDataQueryBuilder(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("should use sql expression", func(t *testing.T) {
|
t.Run("should use sql expression", func(t *testing.T) {
|
||||||
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
query := getBaseQuery()
|
query := getBaseQuery()
|
||||||
query.MetricEditorMode = MetricEditorModeRaw
|
query.MetricEditorMode = MetricEditorModeRaw
|
||||||
query.MetricQueryType = MetricQueryTypeQuery
|
query.MetricQueryType = MetricQueryTypeQuery
|
||||||
@ -46,7 +47,7 @@ func TestMetricDataQueryBuilder(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("should use user defined math expression", func(t *testing.T) {
|
t.Run("should use user defined math expression", func(t *testing.T) {
|
||||||
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
query := getBaseQuery()
|
query := getBaseQuery()
|
||||||
query.MetricEditorMode = MetricEditorModeRaw
|
query.MetricEditorMode = MetricEditorModeRaw
|
||||||
query.MetricQueryType = MetricQueryTypeSearch
|
query.MetricQueryType = MetricQueryTypeSearch
|
||||||
@ -58,7 +59,7 @@ func TestMetricDataQueryBuilder(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("should set period in user defined expression", func(t *testing.T) {
|
t.Run("should set period in user defined expression", func(t *testing.T) {
|
||||||
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
query := getBaseQuery()
|
query := getBaseQuery()
|
||||||
query.MetricEditorMode = MetricEditorModeRaw
|
query.MetricEditorMode = MetricEditorModeRaw
|
||||||
query.MetricQueryType = MetricQueryTypeSearch
|
query.MetricQueryType = MetricQueryTypeSearch
|
||||||
|
@ -18,6 +18,7 @@ import (
|
|||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||||
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
@ -53,7 +54,7 @@ func TestQuery_Metrics(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.handleGetMetrics(
|
resp, err := executor.handleGetMetrics(
|
||||||
backend.PluginContext{
|
backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -88,7 +89,7 @@ func TestQuery_Metrics(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.handleGetDimensionKeys(
|
resp, err := executor.handleGetDimensionKeys(
|
||||||
backend.PluginContext{
|
backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -128,7 +129,7 @@ func TestQuery_Regions(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.handleGetRegions(
|
resp, err := executor.handleGetRegions(
|
||||||
backend.PluginContext{
|
backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -201,7 +202,7 @@ func TestQuery_InstanceAttributes(t *testing.T) {
|
|||||||
filterJson, err := json.Marshal(filterMap)
|
filterJson, err := json.Marshal(filterMap)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.handleGetEc2InstanceAttribute(
|
resp, err := executor.handleGetEc2InstanceAttribute(
|
||||||
backend.PluginContext{
|
backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -278,7 +279,7 @@ func TestQuery_EBSVolumeIDs(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.handleGetEbsVolumeIds(
|
resp, err := executor.handleGetEbsVolumeIds(
|
||||||
backend.PluginContext{
|
backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -344,7 +345,7 @@ func TestQuery_ResourceARNs(t *testing.T) {
|
|||||||
tagJson, err := json.Marshal(tagMap)
|
tagJson, err := json.Marshal(tagMap)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.handleGetResourceArns(
|
resp, err := executor.handleGetResourceArns(
|
||||||
backend.PluginContext{
|
backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -374,7 +375,7 @@ func TestQuery_GetAllMetrics(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.handleGetAllMetrics(
|
resp, err := executor.handleGetAllMetrics(
|
||||||
backend.PluginContext{
|
backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -423,7 +424,7 @@ func TestQuery_GetDimensionKeys(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.handleGetDimensionKeys(
|
resp, err := executor.handleGetDimensionKeys(
|
||||||
backend.PluginContext{
|
backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -453,7 +454,7 @@ func TestQuery_GetDimensionKeys(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.handleGetDimensionKeys(
|
resp, err := executor.handleGetDimensionKeys(
|
||||||
backend.PluginContext{
|
backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -548,7 +549,8 @@ func TestQuery_ListMetricsPagination(t *testing.T) {
|
|||||||
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
executor := newExecutor(im, &setting.Cfg{AWSListMetricsPageLimit: 3, AWSAllowedAuthProviders: []string{"default"}, AWSAssumeRoleEnabled: true}, &fakeSessionCache{})
|
executor := newExecutor(im, &setting.Cfg{AWSListMetricsPageLimit: 3, AWSAllowedAuthProviders: []string{"default"}, AWSAssumeRoleEnabled: true}, &fakeSessionCache{},
|
||||||
|
featuremgmt.WithFeatures())
|
||||||
response, err := executor.listMetrics(backend.PluginContext{
|
response, err := executor.listMetrics(backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
}, "default", &cloudwatch.ListMetricsInput{})
|
}, "default", &cloudwatch.ListMetricsInput{})
|
||||||
@ -563,7 +565,8 @@ func TestQuery_ListMetricsPagination(t *testing.T) {
|
|||||||
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
executor := newExecutor(im, &setting.Cfg{AWSListMetricsPageLimit: 1000, AWSAllowedAuthProviders: []string{"default"}, AWSAssumeRoleEnabled: true}, &fakeSessionCache{})
|
executor := newExecutor(im, &setting.Cfg{AWSListMetricsPageLimit: 1000, AWSAllowedAuthProviders: []string{"default"}, AWSAssumeRoleEnabled: true}, &fakeSessionCache{},
|
||||||
|
featuremgmt.WithFeatures())
|
||||||
response, err := executor.listMetrics(backend.PluginContext{
|
response, err := executor.listMetrics(backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
}, "default", &cloudwatch.ListMetricsInput{})
|
}, "default", &cloudwatch.ListMetricsInput{})
|
||||||
|
@ -13,13 +13,14 @@ import (
|
|||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
|
||||||
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestTimeSeriesQuery(t *testing.T) {
|
func TestTimeSeriesQuery(t *testing.T) {
|
||||||
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(nil, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
|
|
||||||
origNewCWClient := NewCWClient
|
origNewCWClient := NewCWClient
|
||||||
@ -54,7 +55,7 @@ func TestTimeSeriesQuery(t *testing.T) {
|
|||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
resp, err := executor.QueryData(context.Background(), &backend.QueryDataRequest{
|
||||||
PluginContext: backend.PluginContext{
|
PluginContext: backend.PluginContext{
|
||||||
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
|
||||||
@ -219,7 +220,7 @@ func Test_QueryData_response_data_frame_names(t *testing.T) {
|
|||||||
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
|
||||||
return datasourceInfo{}, nil
|
return datasourceInfo{}, nil
|
||||||
})
|
})
|
||||||
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{})
|
executor := newExecutor(im, newTestConfig(), &fakeSessionCache{}, featuremgmt.WithFeatures())
|
||||||
|
|
||||||
t.Run("where user defines search expression and alias is defined, then frame name prioritizes period and stat from expression over input", func(t *testing.T) {
|
t.Run("where user defines search expression and alias is defined, then frame name prioritizes period and stat from expression over input", func(t *testing.T) {
|
||||||
query := newTestQuery(t, queryParameters{
|
query := newTestQuery(t, queryParameters{
|
||||||
|
Loading…
Reference in New Issue
Block a user