mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 07:42:23 +08:00
Plugins: Introduce plugin package specific logger (#62204)
* refactor * implement with infra log for now * undo moving * update package name * update name * fix tests * update pretty signature * update naming * simplify * fix typo * delete comment * fix import * retrigger
This commit is contained in:
@ -2,7 +2,7 @@
|
|||||||
package backendplugin
|
package backendplugin
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PluginFactoryFunc is a function type for creating a Plugin.
|
// PluginFactoryFunc is a function type for creating a Plugin.
|
||||||
|
@ -4,8 +4,9 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// corePlugin represents a plugin that's part of Grafana core.
|
// corePlugin represents a plugin that's part of Grafana core.
|
||||||
|
@ -5,9 +5,9 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -5,9 +5,10 @@ import (
|
|||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
sdklog "github.com/grafana/grafana-plugin-sdk-go/backend/log"
|
sdklog "github.com/grafana/grafana-plugin-sdk-go/backend/log"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/tsdb/azuremonitor"
|
"github.com/grafana/grafana/pkg/tsdb/azuremonitor"
|
||||||
"github.com/grafana/grafana/pkg/tsdb/cloudmonitoring"
|
"github.com/grafana/grafana/pkg/tsdb/cloudmonitoring"
|
||||||
"github.com/grafana/grafana/pkg/tsdb/cloudwatch"
|
"github.com/grafana/grafana/pkg/tsdb/cloudwatch"
|
||||||
|
@ -4,14 +4,15 @@ import (
|
|||||||
"os/exec"
|
"os/exec"
|
||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend/grpcplugin"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/grpcplugin"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/pluginextensionv2"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/secretsmanagerplugin"
|
|
||||||
grpc_opentracing "github.com/grpc-ecosystem/go-grpc-middleware/tracing/opentracing"
|
grpc_opentracing "github.com/grpc-ecosystem/go-grpc-middleware/tracing/opentracing"
|
||||||
goplugin "github.com/hashicorp/go-plugin"
|
goplugin "github.com/hashicorp/go-plugin"
|
||||||
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
|
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/pluginextensionv2"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/secretsmanagerplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Handshake is the HandshakeConfig used to configure clients and servers.
|
// Handshake is the HandshakeConfig used to configure clients and servers.
|
||||||
|
@ -9,13 +9,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/grpcplugin"
|
"github.com/grafana/grafana-plugin-sdk-go/backend/grpcplugin"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/genproto/pluginv2"
|
"github.com/grafana/grafana-plugin-sdk-go/genproto/pluginv2"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/pluginextensionv2"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/secretsmanagerplugin"
|
|
||||||
"github.com/hashicorp/go-plugin"
|
"github.com/hashicorp/go-plugin"
|
||||||
"google.golang.org/grpc/codes"
|
"google.golang.org/grpc/codes"
|
||||||
"google.golang.org/grpc/status"
|
"google.golang.org/grpc/status"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/pluginextensionv2"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/secretsmanagerplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ClientV2 struct {
|
type ClientV2 struct {
|
||||||
|
@ -6,10 +6,11 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/hashicorp/go-plugin"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/process"
|
"github.com/grafana/grafana/pkg/infra/process"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
"github.com/hashicorp/go-plugin"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type pluginClient interface {
|
type pluginClient interface {
|
||||||
|
@ -5,12 +5,13 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
glog "github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/hashicorp/go-hclog"
|
"github.com/hashicorp/go-hclog"
|
||||||
|
|
||||||
|
plog "github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type logWrapper struct {
|
type logWrapper struct {
|
||||||
Logger glog.Logger
|
Logger plog.Logger
|
||||||
|
|
||||||
name string
|
name string
|
||||||
impliedArgs []interface{}
|
impliedArgs []interface{}
|
||||||
|
@ -4,7 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Plugin is the backend plugin interface.
|
// Plugin is the backend plugin interface.
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/grafana/grafana/pkg/infra/log"
|
||||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
|
plog "github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -29,7 +30,7 @@ var (
|
|||||||
}, []string{"plugin_id", "endpoint", "target"})
|
}, []string{"plugin_id", "endpoint", "target"})
|
||||||
)
|
)
|
||||||
|
|
||||||
var logger log.Logger = log.New("plugin.instrumentation")
|
var logger = plog.New("plugin.instrumentation")
|
||||||
|
|
||||||
// instrumentPluginRequest instruments success rate and latency of `fn`
|
// instrumentPluginRequest instruments success rate and latency of `fn`
|
||||||
func instrumentPluginRequest(ctx context.Context, cfg Cfg, pluginCtx *backend.PluginContext, endpoint string, fn func() error) error {
|
func instrumentPluginRequest(ctx context.Context, cfg Cfg, pluginCtx *backend.PluginContext, endpoint string, fn func() error) error {
|
||||||
|
@ -3,13 +3,13 @@ package provider
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/grpcplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/grpcplugin"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/pluginextensionv2"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/pluginextensionv2"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/secretsmanagerplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/secretsmanagerplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PluginBackendProvider is a function type for initializing a Plugin backend.
|
// PluginBackendProvider is a function type for initializing a Plugin backend.
|
||||||
|
@ -5,7 +5,7 @@ import (
|
|||||||
|
|
||||||
"github.com/grafana/grafana-azure-sdk-go/azsettings"
|
"github.com/grafana/grafana-azure-sdk-go/azsettings"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
48
pkg/plugins/log/fake.go
Normal file
48
pkg/plugins/log/fake.go
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
package log
|
||||||
|
|
||||||
|
var _ Logger = (*TestLogger)(nil)
|
||||||
|
|
||||||
|
type TestLogger struct {
|
||||||
|
DebugLogs Logs
|
||||||
|
InfoLogs Logs
|
||||||
|
WarnLogs Logs
|
||||||
|
ErrorLogs Logs
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewTestLogger() *TestLogger {
|
||||||
|
return &TestLogger{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *TestLogger) New(_ ...interface{}) Logger {
|
||||||
|
return NewTestLogger()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *TestLogger) Info(msg string, ctx ...interface{}) {
|
||||||
|
f.InfoLogs.Calls++
|
||||||
|
f.InfoLogs.Message = msg
|
||||||
|
f.InfoLogs.Ctx = ctx
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *TestLogger) Warn(msg string, ctx ...interface{}) {
|
||||||
|
f.WarnLogs.Calls++
|
||||||
|
f.WarnLogs.Message = msg
|
||||||
|
f.WarnLogs.Ctx = ctx
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *TestLogger) Debug(msg string, ctx ...interface{}) {
|
||||||
|
f.DebugLogs.Calls++
|
||||||
|
f.DebugLogs.Message = msg
|
||||||
|
f.DebugLogs.Ctx = ctx
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *TestLogger) Error(msg string, ctx ...interface{}) {
|
||||||
|
f.ErrorLogs.Calls++
|
||||||
|
f.ErrorLogs.Message = msg
|
||||||
|
f.ErrorLogs.Ctx = ctx
|
||||||
|
}
|
||||||
|
|
||||||
|
type Logs struct {
|
||||||
|
Calls int
|
||||||
|
Message string
|
||||||
|
Ctx []interface{}
|
||||||
|
}
|
35
pkg/plugins/log/ifaces.go
Normal file
35
pkg/plugins/log/ifaces.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package log
|
||||||
|
|
||||||
|
// Logger is the default logger
|
||||||
|
type Logger interface {
|
||||||
|
// New returns a new contextual Logger that has this logger's context plus the given context.
|
||||||
|
New(ctx ...interface{}) Logger
|
||||||
|
|
||||||
|
// Debug logs a message with debug level and key/value pairs, if any.
|
||||||
|
Debug(msg string, ctx ...interface{})
|
||||||
|
|
||||||
|
// Info logs a message with info level and key/value pairs, if any.
|
||||||
|
Info(msg string, ctx ...interface{})
|
||||||
|
|
||||||
|
// Warn logs a message with warning level and key/value pairs, if any.
|
||||||
|
Warn(msg string, ctx ...interface{})
|
||||||
|
|
||||||
|
// Error logs a message with error level and key/value pairs, if any.
|
||||||
|
Error(msg string, ctx ...interface{})
|
||||||
|
}
|
||||||
|
|
||||||
|
// PrettyLogger is used primarily to facilitate logging/user feedback for both
|
||||||
|
// the grafana-cli and the grafana backend when managing plugin installs
|
||||||
|
type PrettyLogger interface {
|
||||||
|
Successf(format string, args ...interface{})
|
||||||
|
Failuref(format string, args ...interface{})
|
||||||
|
|
||||||
|
Info(args ...interface{})
|
||||||
|
Infof(format string, args ...interface{})
|
||||||
|
Debug(args ...interface{})
|
||||||
|
Debugf(format string, args ...interface{})
|
||||||
|
Warn(args ...interface{})
|
||||||
|
Warnf(format string, args ...interface{})
|
||||||
|
Error(args ...interface{})
|
||||||
|
Errorf(format string, args ...interface{})
|
||||||
|
}
|
57
pkg/plugins/log/infra_wrapper.go
Normal file
57
pkg/plugins/log/infra_wrapper.go
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
package log
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ PrettyLogger = (*prettyLogger)(nil)
|
||||||
|
|
||||||
|
type prettyLogger struct {
|
||||||
|
log Logger
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewPrettyLogger(name string) *prettyLogger {
|
||||||
|
return &prettyLogger{
|
||||||
|
log: New(name),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *prettyLogger) Successf(format string, args ...interface{}) {
|
||||||
|
l.log.Info(fmt.Sprintf(format, args...))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *prettyLogger) Failuref(format string, args ...interface{}) {
|
||||||
|
l.log.Error(fmt.Sprintf(format, args...))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *prettyLogger) Info(args ...interface{}) {
|
||||||
|
l.log.Info(fmt.Sprint(args...))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *prettyLogger) Infof(format string, args ...interface{}) {
|
||||||
|
l.log.Info(fmt.Sprintf(format, args...))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *prettyLogger) Debug(args ...interface{}) {
|
||||||
|
l.log.Debug(fmt.Sprint(args...))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *prettyLogger) Debugf(format string, args ...interface{}) {
|
||||||
|
l.log.Debug(fmt.Sprintf(format, args...))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *prettyLogger) Warn(args ...interface{}) {
|
||||||
|
l.log.Warn(fmt.Sprint(args...))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *prettyLogger) Warnf(format string, args ...interface{}) {
|
||||||
|
l.log.Warn(fmt.Sprintf(format, args...))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *prettyLogger) Error(args ...interface{}) {
|
||||||
|
l.log.Error(fmt.Sprint(args...))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *prettyLogger) Errorf(format string, args ...interface{}) {
|
||||||
|
l.log.Error(fmt.Sprintf(format, args...))
|
||||||
|
}
|
44
pkg/plugins/log/logger.go
Normal file
44
pkg/plugins/log/logger.go
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
package log
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/grafana/grafana/pkg/infra/log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func New(name string) Logger {
|
||||||
|
return &grafanaInfraLogWrapper{
|
||||||
|
l: log.New(name),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type grafanaInfraLogWrapper struct {
|
||||||
|
l *log.ConcreteLogger
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *grafanaInfraLogWrapper) New(ctx ...interface{}) Logger {
|
||||||
|
if len(ctx) == 0 {
|
||||||
|
return &grafanaInfraLogWrapper{
|
||||||
|
l: d.l.New(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx = append([]interface{}{"logger"}, ctx...)
|
||||||
|
return &grafanaInfraLogWrapper{
|
||||||
|
l: d.l.New(ctx...),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *grafanaInfraLogWrapper) Debug(msg string, ctx ...interface{}) {
|
||||||
|
d.l.Debug(msg, ctx...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *grafanaInfraLogWrapper) Info(msg string, ctx ...interface{}) {
|
||||||
|
d.l.Info(msg, ctx...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *grafanaInfraLogWrapper) Warn(msg string, ctx ...interface{}) {
|
||||||
|
d.l.Warn(msg, ctx...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *grafanaInfraLogWrapper) Error(msg string, ctx ...interface{}) {
|
||||||
|
d.l.Error(msg, ctx...)
|
||||||
|
}
|
@ -1,17 +0,0 @@
|
|||||||
package logger
|
|
||||||
|
|
||||||
// Logger is used primarily to facilitate logging/user feedback for both
|
|
||||||
// the grafana-cli and the grafana backend when managing plugin installs
|
|
||||||
type Logger interface {
|
|
||||||
Successf(format string, args ...interface{})
|
|
||||||
Failuref(format string, args ...interface{})
|
|
||||||
|
|
||||||
Info(args ...interface{})
|
|
||||||
Infof(format string, args ...interface{})
|
|
||||||
Debug(args ...interface{})
|
|
||||||
Debugf(format string, args ...interface{})
|
|
||||||
Warn(args ...interface{})
|
|
||||||
Warnf(format string, args ...interface{})
|
|
||||||
Error(args ...interface{})
|
|
||||||
Errorf(format string, args ...interface{})
|
|
||||||
}
|
|
@ -1,57 +0,0 @@
|
|||||||
package logger
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
)
|
|
||||||
|
|
||||||
type InfraLogWrapper struct {
|
|
||||||
log log.Logger
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewLogger(name string) *InfraLogWrapper {
|
|
||||||
return &InfraLogWrapper{
|
|
||||||
log: log.New(name),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *InfraLogWrapper) Successf(format string, args ...interface{}) {
|
|
||||||
l.log.Info(fmt.Sprintf(format, args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *InfraLogWrapper) Failuref(format string, args ...interface{}) {
|
|
||||||
l.log.Error(fmt.Sprintf(format, args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *InfraLogWrapper) Info(args ...interface{}) {
|
|
||||||
l.log.Info(fmt.Sprint(args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *InfraLogWrapper) Infof(format string, args ...interface{}) {
|
|
||||||
l.log.Info(fmt.Sprintf(format, args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *InfraLogWrapper) Debug(args ...interface{}) {
|
|
||||||
l.log.Debug(fmt.Sprint(args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *InfraLogWrapper) Debugf(format string, args ...interface{}) {
|
|
||||||
l.log.Debug(fmt.Sprintf(format, args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *InfraLogWrapper) Warn(args ...interface{}) {
|
|
||||||
l.log.Warn(fmt.Sprint(args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *InfraLogWrapper) Warnf(format string, args ...interface{}) {
|
|
||||||
l.log.Warn(fmt.Sprintf(format, args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *InfraLogWrapper) Error(args ...interface{}) {
|
|
||||||
l.log.Error(fmt.Sprint(args...))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *InfraLogWrapper) Errorf(format string, args ...interface{}) {
|
|
||||||
l.log.Error(fmt.Sprintf(format, args...))
|
|
||||||
}
|
|
@ -8,9 +8,9 @@ import (
|
|||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/plugins/repo"
|
"github.com/grafana/grafana/pkg/plugins/repo"
|
||||||
"github.com/grafana/grafana/pkg/plugins/storage"
|
"github.com/grafana/grafana/pkg/plugins/storage"
|
||||||
)
|
)
|
||||||
|
@ -4,10 +4,9 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/config"
|
"github.com/grafana/grafana/pkg/plugins/config"
|
||||||
"github.com/grafana/grafana/pkg/plugins/logger"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/loader"
|
"github.com/grafana/grafana/pkg/plugins/manager/loader"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
||||||
"github.com/grafana/grafana/pkg/plugins/repo"
|
"github.com/grafana/grafana/pkg/plugins/repo"
|
||||||
@ -26,7 +25,7 @@ type PluginInstaller struct {
|
|||||||
|
|
||||||
func ProvideInstaller(cfg *config.Cfg, pluginRegistry registry.Service, pluginLoader loader.Service,
|
func ProvideInstaller(cfg *config.Cfg, pluginRegistry registry.Service, pluginLoader loader.Service,
|
||||||
pluginRepo repo.Service) *PluginInstaller {
|
pluginRepo repo.Service) *PluginInstaller {
|
||||||
return New(pluginRegistry, pluginLoader, pluginRepo, storage.FileSystem(logger.NewLogger("installer.fs"), cfg.PluginsPath))
|
return New(pluginRegistry, pluginLoader, pluginRepo, storage.FileSystem(log.NewPrettyLogger("installer.fs"), cfg.PluginsPath))
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(pluginRegistry registry.Service, pluginLoader loader.Service, pluginRepo repo.Service,
|
func New(pluginRegistry registry.Service, pluginLoader loader.Service, pluginRepo repo.Service,
|
||||||
|
@ -6,12 +6,13 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||||
"github.com/grafana/grafana/pkg/plugins/repo"
|
"github.com/grafana/grafana/pkg/plugins/repo"
|
||||||
"github.com/grafana/grafana/pkg/plugins/storage"
|
"github.com/grafana/grafana/pkg/plugins/storage"
|
||||||
"github.com/stretchr/testify/require"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const testPluginID = "test-plugin"
|
const testPluginID = "test-plugin"
|
||||||
@ -207,7 +208,7 @@ func createPlugin(t *testing.T, pluginID string, class plugins.Class, managed, b
|
|||||||
Backend: backend,
|
Backend: backend,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
p.SetLogger(log.NewNopLogger())
|
p.SetLogger(log.NewTestLogger())
|
||||||
p.RegisterClient(&fakes.FakePluginClient{
|
p.RegisterClient(&fakes.FakePluginClient{
|
||||||
ID: pluginID,
|
ID: pluginID,
|
||||||
Managed: managed,
|
Managed: managed,
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/fs"
|
"github.com/grafana/grafana/pkg/infra/fs"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/util"
|
"github.com/grafana/grafana/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/util"
|
"github.com/grafana/grafana/pkg/util"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
@ -75,7 +75,7 @@ func TestFinder_getAbsPluginJSONPaths(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
finder := &Finder{
|
finder := &Finder{
|
||||||
log: log.New(),
|
log: log.NewTestLogger(),
|
||||||
}
|
}
|
||||||
|
|
||||||
paths, err := finder.getAbsPluginJSONPaths("test")
|
paths, err := finder.getAbsPluginJSONPaths("test")
|
||||||
@ -93,7 +93,7 @@ func TestFinder_getAbsPluginJSONPaths(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
finder := &Finder{
|
finder := &Finder{
|
||||||
log: log.New(),
|
log: log.NewTestLogger(),
|
||||||
}
|
}
|
||||||
|
|
||||||
paths, err := finder.getAbsPluginJSONPaths("test")
|
paths, err := finder.getAbsPluginJSONPaths("test")
|
||||||
@ -111,7 +111,7 @@ func TestFinder_getAbsPluginJSONPaths(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
finder := &Finder{
|
finder := &Finder{
|
||||||
log: log.New(),
|
log: log.NewTestLogger(),
|
||||||
}
|
}
|
||||||
|
|
||||||
paths, err := finder.getAbsPluginJSONPaths("test")
|
paths, err := finder.getAbsPluginJSONPaths("test")
|
||||||
|
@ -9,9 +9,9 @@ import (
|
|||||||
"github.com/grafana/grafana-aws-sdk/pkg/awsds"
|
"github.com/grafana/grafana-aws-sdk/pkg/awsds"
|
||||||
"github.com/grafana/grafana-azure-sdk-go/azsettings"
|
"github.com/grafana/grafana-azure-sdk-go/azsettings"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/config"
|
"github.com/grafana/grafana/pkg/plugins/config"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Initializer struct {
|
type Initializer struct {
|
||||||
|
@ -7,10 +7,10 @@ import (
|
|||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
"github.com/grafana/grafana/pkg/plugins/config"
|
"github.com/grafana/grafana/pkg/plugins/config"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ func TestInitializer_Initialize(t *testing.T) {
|
|||||||
|
|
||||||
i := &Initializer{
|
i := &Initializer{
|
||||||
cfg: &config.Cfg{},
|
cfg: &config.Cfg{},
|
||||||
log: log.NewNopLogger(),
|
log: log.NewTestLogger(),
|
||||||
backendProvider: &fakeBackendProvider{
|
backendProvider: &fakeBackendProvider{
|
||||||
plugin: p,
|
plugin: p,
|
||||||
},
|
},
|
||||||
@ -67,7 +67,7 @@ func TestInitializer_Initialize(t *testing.T) {
|
|||||||
|
|
||||||
i := &Initializer{
|
i := &Initializer{
|
||||||
cfg: &config.Cfg{},
|
cfg: &config.Cfg{},
|
||||||
log: log.NewNopLogger(),
|
log: log.NewTestLogger(),
|
||||||
backendProvider: &fakeBackendProvider{
|
backendProvider: &fakeBackendProvider{
|
||||||
plugin: p,
|
plugin: p,
|
||||||
},
|
},
|
||||||
@ -97,7 +97,7 @@ func TestInitializer_Initialize(t *testing.T) {
|
|||||||
|
|
||||||
i := &Initializer{
|
i := &Initializer{
|
||||||
cfg: &config.Cfg{},
|
cfg: &config.Cfg{},
|
||||||
log: log.NewNopLogger(),
|
log: log.NewTestLogger(),
|
||||||
backendProvider: &fakeBackendProvider{
|
backendProvider: &fakeBackendProvider{
|
||||||
plugin: p,
|
plugin: p,
|
||||||
},
|
},
|
||||||
@ -120,7 +120,7 @@ func TestInitializer_Initialize(t *testing.T) {
|
|||||||
|
|
||||||
i := &Initializer{
|
i := &Initializer{
|
||||||
cfg: &config.Cfg{},
|
cfg: &config.Cfg{},
|
||||||
log: log.NewNopLogger(),
|
log: log.NewTestLogger(),
|
||||||
backendProvider: &fakeBackendProvider{
|
backendProvider: &fakeBackendProvider{
|
||||||
plugin: p,
|
plugin: p,
|
||||||
},
|
},
|
||||||
@ -158,7 +158,7 @@ func TestInitializer_envVars(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
license: licensing,
|
license: licensing,
|
||||||
log: log.NewNopLogger(),
|
log: log.NewTestLogger(),
|
||||||
backendProvider: &fakeBackendProvider{
|
backendProvider: &fakeBackendProvider{
|
||||||
plugin: p,
|
plugin: p,
|
||||||
},
|
},
|
||||||
|
@ -12,12 +12,11 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/fs"
|
"github.com/grafana/grafana/pkg/infra/fs"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/infra/metrics"
|
"github.com/grafana/grafana/pkg/infra/metrics"
|
||||||
"github.com/grafana/grafana/pkg/infra/slugify"
|
"github.com/grafana/grafana/pkg/infra/slugify"
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/config"
|
"github.com/grafana/grafana/pkg/plugins/config"
|
||||||
"github.com/grafana/grafana/pkg/plugins/logger"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/loader/assetpath"
|
"github.com/grafana/grafana/pkg/plugins/manager/loader/assetpath"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/loader/finder"
|
"github.com/grafana/grafana/pkg/plugins/manager/loader/finder"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/loader/initializer"
|
"github.com/grafana/grafana/pkg/plugins/manager/loader/initializer"
|
||||||
@ -57,7 +56,7 @@ func ProvideService(cfg *config.Cfg, license plugins.Licensing, authorizer plugi
|
|||||||
pluginRegistry registry.Service, backendProvider plugins.BackendFactoryProvider,
|
pluginRegistry registry.Service, backendProvider plugins.BackendFactoryProvider,
|
||||||
roleRegistry plugins.RoleRegistry, pluginsCDNService *pluginscdn.Service, assetPath *assetpath.Service) *Loader {
|
roleRegistry plugins.RoleRegistry, pluginsCDNService *pluginscdn.Service, assetPath *assetpath.Service) *Loader {
|
||||||
return New(cfg, license, authorizer, pluginRegistry, backendProvider, process.NewManager(pluginRegistry),
|
return New(cfg, license, authorizer, pluginRegistry, backendProvider, process.NewManager(pluginRegistry),
|
||||||
storage.FileSystem(logger.NewLogger("loader.fs"), cfg.PluginsPath), roleRegistry, pluginsCDNService, assetPath)
|
storage.FileSystem(log.NewPrettyLogger("loader.fs"), cfg.PluginsPath), roleRegistry, pluginsCDNService, assetPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(cfg *config.Cfg, license plugins.Licensing, authorizer plugins.PluginLoaderAuthorizer,
|
func New(cfg *config.Cfg, license plugins.Licensing, authorizer plugins.PluginLoaderAuthorizer,
|
||||||
|
@ -15,9 +15,9 @@ import (
|
|||||||
"github.com/google/go-cmp/cmp/cmpopts"
|
"github.com/google/go-cmp/cmp/cmpopts"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log/logtest"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/config"
|
"github.com/grafana/grafana/pkg/plugins/config"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/loader/initializer"
|
"github.com/grafana/grafana/pkg/plugins/manager/loader/initializer"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/signature"
|
"github.com/grafana/grafana/pkg/plugins/manager/signature"
|
||||||
@ -570,7 +570,7 @@ func TestLoader_setDefaultNavURL(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}},
|
}},
|
||||||
}
|
}
|
||||||
logger := &logtest.Fake{}
|
logger := log.NewTestLogger()
|
||||||
pluginWithDashboard.SetLogger(logger)
|
pluginWithDashboard.SetLogger(logger)
|
||||||
|
|
||||||
t.Run("Default nav URL is not set if dashboard UID field not is set", func(t *testing.T) {
|
t.Run("Default nav URL is not set if dashboard UID field not is set", func(t *testing.T) {
|
||||||
|
@ -6,9 +6,9 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -5,10 +5,11 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestProcessManager_Start(t *testing.T) {
|
func TestProcessManager_Start(t *testing.T) {
|
||||||
@ -270,7 +271,7 @@ func createPlugin(t *testing.T, bp backendplugin.Plugin, cbs ...func(p *plugins.
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
p.SetLogger(log.NewNopLogger())
|
p.SetLogger(log.NewTestLogger())
|
||||||
p.RegisterClient(bp)
|
p.RegisterClient(bp)
|
||||||
|
|
||||||
for _, cb := range cbs {
|
for _, cb := range cbs {
|
||||||
|
@ -23,8 +23,8 @@ import (
|
|||||||
// nolint:staticcheck
|
// nolint:staticcheck
|
||||||
"golang.org/x/crypto/openpgp/clearsign"
|
"golang.org/x/crypto/openpgp/clearsign"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"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"
|
||||||
@ -151,7 +151,7 @@ func TestCalculate(t *testing.T) {
|
|||||||
})
|
})
|
||||||
setting.AppUrl = tc.appURL
|
setting.AppUrl = tc.appURL
|
||||||
|
|
||||||
sig, err := Calculate(log.NewNopLogger(), &plugins.Plugin{
|
sig, err := Calculate(log.NewTestLogger(), &plugins.Plugin{
|
||||||
JSONData: plugins.JSONData{
|
JSONData: plugins.JSONData{
|
||||||
ID: "test-datasource",
|
ID: "test-datasource",
|
||||||
Info: plugins.Info{
|
Info: plugins.Info{
|
||||||
@ -173,7 +173,7 @@ func TestCalculate(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
runningWindows = true
|
runningWindows = true
|
||||||
sig, err := Calculate(log.NewNopLogger(), &plugins.Plugin{
|
sig, err := Calculate(log.NewTestLogger(), &plugins.Plugin{
|
||||||
JSONData: plugins.JSONData{
|
JSONData: plugins.JSONData{
|
||||||
ID: "test-renderer",
|
ID: "test-renderer",
|
||||||
Type: plugins.Renderer,
|
Type: plugins.Renderer,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package signature
|
package signature
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Validator struct {
|
type Validator struct {
|
||||||
|
@ -10,9 +10,9 @@ import (
|
|||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/localcache"
|
"github.com/grafana/grafana/pkg/infra/localcache"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/adapters"
|
"github.com/grafana/grafana/pkg/plugins/adapters"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/services/datasources"
|
"github.com/grafana/grafana/pkg/services/datasources"
|
||||||
"github.com/grafana/grafana/pkg/services/pluginsettings"
|
"github.com/grafana/grafana/pkg/services/pluginsettings"
|
||||||
"github.com/grafana/grafana/pkg/services/user"
|
"github.com/grafana/grafana/pkg/services/user"
|
||||||
|
@ -12,10 +12,11 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/pluginextensionv2"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/pluginextensionv2"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/secretsmanagerplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin/secretsmanagerplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/plugins/plugindef"
|
"github.com/grafana/grafana/pkg/plugins/plugindef"
|
||||||
"github.com/grafana/grafana/pkg/services/org"
|
"github.com/grafana/grafana/pkg/services/org"
|
||||||
"github.com/grafana/grafana/pkg/util"
|
"github.com/grafana/grafana/pkg/util"
|
||||||
|
@ -15,7 +15,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/logger"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Client struct {
|
type Client struct {
|
||||||
@ -23,10 +23,10 @@ type Client struct {
|
|||||||
httpClientNoTimeout http.Client
|
httpClientNoTimeout http.Client
|
||||||
retryCount int
|
retryCount int
|
||||||
|
|
||||||
log logger.Logger
|
log log.PrettyLogger
|
||||||
}
|
}
|
||||||
|
|
||||||
func newClient(skipTLSVerify bool, logger logger.Logger) *Client {
|
func newClient(skipTLSVerify bool, logger log.PrettyLogger) *Client {
|
||||||
return &Client{
|
return &Client{
|
||||||
httpClient: makeHttpClient(skipTLSVerify, 10*time.Second),
|
httpClient: makeHttpClient(skipTLSVerify, 10*time.Second),
|
||||||
httpClientNoTimeout: makeHttpClient(skipTLSVerify, 0),
|
httpClientNoTimeout: makeHttpClient(skipTLSVerify, 0),
|
||||||
|
@ -8,22 +8,22 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/logger"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Manager struct {
|
type Manager struct {
|
||||||
client *Client
|
client *Client
|
||||||
baseURL string
|
baseURL string
|
||||||
|
|
||||||
log logger.Logger
|
log log.PrettyLogger
|
||||||
}
|
}
|
||||||
|
|
||||||
func ProvideService() *Manager {
|
func ProvideService() *Manager {
|
||||||
defaultBaseURL := "https://grafana.com/api/plugins"
|
defaultBaseURL := "https://grafana.com/api/plugins"
|
||||||
return New(false, defaultBaseURL, logger.NewLogger("plugin.repository"))
|
return New(false, defaultBaseURL, log.NewPrettyLogger("plugin.repository"))
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(skipTLSVerify bool, baseURL string, logger logger.Logger) *Manager {
|
func New(skipTLSVerify bool, baseURL string, logger log.PrettyLogger) *Manager {
|
||||||
return &Manager{
|
return &Manager{
|
||||||
client: newClient(skipTLSVerify, logger),
|
client: newClient(skipTLSVerify, logger),
|
||||||
baseURL: baseURL,
|
baseURL: baseURL,
|
||||||
|
@ -14,7 +14,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/plugins/logger"
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ Manager = (*FS)(nil)
|
var _ Manager = (*FS)(nil)
|
||||||
@ -30,10 +30,10 @@ type FS struct {
|
|||||||
store map[string]string
|
store map[string]string
|
||||||
mu sync.RWMutex
|
mu sync.RWMutex
|
||||||
pluginsDir string
|
pluginsDir string
|
||||||
log logger.Logger
|
log log.PrettyLogger
|
||||||
}
|
}
|
||||||
|
|
||||||
func FileSystem(logger logger.Logger, pluginsDir string) *FS {
|
func FileSystem(logger log.PrettyLogger, pluginsDir string) *FS {
|
||||||
return &FS{
|
return &FS{
|
||||||
store: make(map[string]string),
|
store: make(map[string]string),
|
||||||
pluginsDir: pluginsDir,
|
pluginsDir: pluginsDir,
|
||||||
|
@ -17,9 +17,9 @@ import (
|
|||||||
|
|
||||||
"github.com/grafana/grafana/pkg/api/dtos"
|
"github.com/grafana/grafana/pkg/api/dtos"
|
||||||
"github.com/grafana/grafana/pkg/components/simplejson"
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/log"
|
||||||
"github.com/grafana/grafana/pkg/server"
|
"github.com/grafana/grafana/pkg/server"
|
||||||
"github.com/grafana/grafana/pkg/services/datasources"
|
"github.com/grafana/grafana/pkg/services/datasources"
|
||||||
"github.com/grafana/grafana/pkg/services/org"
|
"github.com/grafana/grafana/pkg/services/org"
|
||||||
|
Reference in New Issue
Block a user