mirror of
https://github.com/grafana/grafana.git
synced 2025-08-03 06:22:13 +08:00
Plugins: Adds logging around loading of plugins for better tracking (#76896)
This commit is contained in:

committed by
GitHub

parent
322a9c0b15
commit
9bf7eb5fbc
@ -2,6 +2,9 @@ package loader
|
||||
|
||||
import (
|
||||
"context"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/log"
|
||||
@ -34,6 +37,8 @@ func New(discovery discovery.Discoverer, bootstrap bootstrap.Bootstrapper, valid
|
||||
}
|
||||
|
||||
func (l *Loader) Load(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
||||
end := l.instrumentLoad(ctx, src)
|
||||
|
||||
discoveredPlugins, err := l.discovery.Discover(ctx, src)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -54,9 +59,30 @@ func (l *Loader) Load(ctx context.Context, src plugins.PluginSource) ([]*plugins
|
||||
return nil, err
|
||||
}
|
||||
|
||||
end(initializedPlugins)
|
||||
|
||||
return initializedPlugins, nil
|
||||
}
|
||||
|
||||
func (l *Loader) Unload(ctx context.Context, p *plugins.Plugin) (*plugins.Plugin, error) {
|
||||
return l.termination.Terminate(ctx, p)
|
||||
}
|
||||
|
||||
func (l *Loader) instrumentLoad(ctx context.Context, src plugins.PluginSource) func([]*plugins.Plugin) {
|
||||
start := time.Now()
|
||||
sourceLogger := l.log.New("source", src.PluginClass(ctx)).FromContext(ctx)
|
||||
sourceLogger.Debug("Loading plugin source...")
|
||||
|
||||
return func(logger log.Logger, start time.Time) func([]*plugins.Plugin) {
|
||||
return func(plugins []*plugins.Plugin) {
|
||||
names := make([]string, len(plugins))
|
||||
for i, p := range plugins {
|
||||
names[i] = p.ID
|
||||
}
|
||||
sort.Strings(names)
|
||||
pluginsStr := strings.Join(names, ", ")
|
||||
|
||||
logger.Debug("Plugin source loaded", "plugins", pluginsStr, "duration", time.Since(start))
|
||||
}
|
||||
}(sourceLogger, start)
|
||||
}
|
||||
|
Reference in New Issue
Block a user