mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Enable tracing for all plugins if enablePluginsTracingByDefault is set
This commit is contained in:
parent
076ebe2760
commit
893a8e77a8
@ -14,6 +14,7 @@ import (
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend/proxy"
|
||||
"github.com/grafana/grafana-plugin-sdk-go/experimental/featuretoggles"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/auth"
|
||||
@ -44,12 +45,16 @@ type Provider interface {
|
||||
type Service struct {
|
||||
cfg *config.Cfg
|
||||
license plugins.Licensing
|
||||
|
||||
enablePluginTracingByDefault bool
|
||||
}
|
||||
|
||||
func NewProvider(cfg *config.Cfg, license plugins.Licensing) *Service {
|
||||
func NewProvider(cfg *config.Cfg, license plugins.Licensing, features plugins.FeatureToggles) *Service {
|
||||
return &Service{
|
||||
cfg: cfg,
|
||||
license: license,
|
||||
|
||||
enablePluginTracingByDefault: features.IsEnabledGlobally(featuremgmt.FlagEnablePluginsTracingByDefault),
|
||||
}
|
||||
}
|
||||
|
||||
@ -207,7 +212,7 @@ func (s *Service) GetConfigMap(ctx context.Context, pluginID string, _ *auth.Ext
|
||||
}
|
||||
|
||||
func (s *Service) tracingEnvVars(plugin *plugins.Plugin) []string {
|
||||
var pluginTracingEnabled bool
|
||||
pluginTracingEnabled := s.enablePluginTracingByDefault
|
||||
if v, exists := s.cfg.PluginSettings[plugin.ID]["tracing"]; exists {
|
||||
pluginTracingEnabled = v == "true"
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/login/social/socialimpl"
|
||||
"github.com/grafana/grafana/pkg/middleware/csrf"
|
||||
"github.com/grafana/grafana/pkg/middleware/loggermw"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
apiregistry "github.com/grafana/grafana/pkg/registry/apis"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/acimpl"
|
||||
@ -201,6 +202,7 @@ var wireBasicSet = wire.NewSet(
|
||||
wire.Bind(new(usagestats.Service), new(*uss.UsageStats)),
|
||||
validator.ProvideService,
|
||||
pluginsintegration.WireSet,
|
||||
wire.Bind(new(plugins.FeatureToggles), new(*featuremgmt.FeatureManager)),
|
||||
pluginDashboards.ProvideFileStoreManager,
|
||||
wire.Bind(new(pluginDashboards.FileStore), new(*pluginDashboards.FileStoreManager)),
|
||||
cloudwatch.ProvideService,
|
||||
|
@ -61,11 +61,11 @@ func ProvideValidationStage(cfg *config.Cfg, sv signature.Validator, ai angulari
|
||||
|
||||
func ProvideInitializationStage(cfg *config.Cfg, pr registry.Service, l plugins.Licensing,
|
||||
bp plugins.BackendFactoryProvider, pm process.Manager, externalServiceRegistry auth.ExternalServiceRegistry,
|
||||
roleRegistry plugins.RoleRegistry) *initialization.Initialize {
|
||||
roleRegistry plugins.RoleRegistry, features plugins.FeatureToggles) *initialization.Initialize {
|
||||
return initialization.New(cfg, initialization.Opts{
|
||||
InitializeFuncs: []initialization.InitializeFunc{
|
||||
ExternalServiceRegistrationStep(cfg, externalServiceRegistry),
|
||||
initialization.BackendClientInitStep(envvars.NewProvider(cfg, l), bp),
|
||||
initialization.BackendClientInitStep(envvars.NewProvider(cfg, l, features), bp),
|
||||
initialization.PluginRegistrationStep(pr),
|
||||
initialization.BackendProcessStartStep(pm),
|
||||
RegisterPluginRolesStep(roleRegistry),
|
||||
|
@ -31,14 +31,14 @@ const (
|
||||
|
||||
func ProvideService(cfg *setting.Cfg, cacheService *localcache.CacheService, pluginStore pluginstore.Store,
|
||||
dataSourceService datasources.DataSourceService, pluginSettingsService pluginsettings.Service,
|
||||
licensing plugins.Licensing, pCfg *config.Cfg) *Provider {
|
||||
licensing plugins.Licensing, pCfg *config.Cfg, features plugins.FeatureToggles) *Provider {
|
||||
return &Provider{
|
||||
cfg: cfg,
|
||||
cacheService: cacheService,
|
||||
pluginStore: pluginStore,
|
||||
dataSourceService: dataSourceService,
|
||||
pluginSettingsService: pluginSettingsService,
|
||||
pluginEnvVars: envvars.NewProvider(pCfg, licensing),
|
||||
pluginEnvVars: envvars.NewProvider(pCfg, licensing, features),
|
||||
logger: log.New("plugin.context"),
|
||||
}
|
||||
}
|
||||
|
@ -19,12 +19,11 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/signature"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/sources"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/services/rendering"
|
||||
)
|
||||
|
||||
func ProvideService(cfg *config.Cfg, registry registry.Service, licensing plugins.Licensing,
|
||||
features featuremgmt.FeatureToggles) (*Manager, error) {
|
||||
features plugins.FeatureToggles) (*Manager, error) {
|
||||
l, err := createLoader(cfg, registry, licensing, features)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -92,7 +91,7 @@ func (m *Manager) Renderer(ctx context.Context) (rendering.Plugin, bool) {
|
||||
}
|
||||
|
||||
func createLoader(cfg *config.Cfg, pr registry.Service, l plugins.Licensing,
|
||||
features featuremgmt.FeatureToggles) (loader.Service, error) {
|
||||
features plugins.FeatureToggles) (loader.Service, error) {
|
||||
d := discovery.New(cfg, discovery.Opts{
|
||||
FindFilterFuncs: []discovery.FindFilterFunc{
|
||||
discovery.NewPermittedPluginTypesFilterStep([]plugins.Type{plugins.TypeRenderer}),
|
||||
@ -111,7 +110,7 @@ func createLoader(cfg *config.Cfg, pr registry.Service, l plugins.Licensing,
|
||||
})
|
||||
i := initialization.New(cfg, initialization.Opts{
|
||||
InitializeFuncs: []initialization.InitializeFunc{
|
||||
initialization.BackendClientInitStep(envvars.NewProvider(cfg, l), provider.New(provider.RendererProvider)),
|
||||
initialization.BackendClientInitStep(envvars.NewProvider(cfg, l, features), provider.New(provider.RendererProvider)),
|
||||
initialization.PluginRegistrationStep(pr),
|
||||
},
|
||||
})
|
||||
|
@ -54,7 +54,7 @@ func CreateIntegrationTestCtx(t *testing.T, cfg *setting.Cfg, coreRegistry *core
|
||||
disc := pipeline.ProvideDiscoveryStage(pCfg, finder.NewLocalFinder(true, pCfg.Features), reg)
|
||||
boot := pipeline.ProvideBootstrapStage(pCfg, signature.ProvideService(pCfg, statickey.New()), assetpath.ProvideService(pCfg, cdn))
|
||||
valid := pipeline.ProvideValidationStage(pCfg, signature.NewValidator(signature.NewUnsignedAuthorizer(pCfg)), angularInspector, errTracker)
|
||||
init := pipeline.ProvideInitializationStage(pCfg, reg, fakes.NewFakeLicensingService(), provider.ProvideService(coreRegistry), proc, &fakes.FakeAuthService{}, fakes.NewFakeRoleRegistry())
|
||||
init := pipeline.ProvideInitializationStage(pCfg, reg, fakes.NewFakeLicensingService(), provider.ProvideService(coreRegistry), proc, &fakes.FakeAuthService{}, fakes.NewFakeRoleRegistry(), featuremgmt.WithFeatures())
|
||||
term, err := pipeline.ProvideTerminationStage(pCfg, reg, proc)
|
||||
require.NoError(t, err)
|
||||
|
||||
@ -100,7 +100,7 @@ func CreateTestLoader(t *testing.T, cfg *pluginsCfg.Cfg, opts LoaderOpts) *loade
|
||||
if opts.Initializer == nil {
|
||||
reg := registry.ProvideService()
|
||||
coreRegistry := coreplugin.NewRegistry(make(map[string]backendplugin.PluginFactoryFunc))
|
||||
opts.Initializer = pipeline.ProvideInitializationStage(cfg, reg, fakes.NewFakeLicensingService(), provider.ProvideService(coreRegistry), process.ProvideService(), &fakes.FakeAuthService{}, fakes.NewFakeRoleRegistry())
|
||||
opts.Initializer = pipeline.ProvideInitializationStage(cfg, reg, fakes.NewFakeLicensingService(), provider.ProvideService(coreRegistry), process.ProvideService(), &fakes.FakeAuthService{}, fakes.NewFakeRoleRegistry(), featuremgmt.WithFeatures())
|
||||
}
|
||||
|
||||
if opts.Terminator == nil {
|
||||
|
Loading…
Reference in New Issue
Block a user