mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Plugins: Add status_source label to plugin request logs (#76676)
This commit is contained in:
parent
e1838f92cf
commit
c4fefd8da9
@ -10,12 +10,14 @@ import (
|
|||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/grafana/grafana/pkg/infra/log"
|
||||||
"github.com/grafana/grafana/pkg/plugins"
|
"github.com/grafana/grafana/pkg/plugins"
|
||||||
plog "github.com/grafana/grafana/pkg/plugins/log"
|
plog "github.com/grafana/grafana/pkg/plugins/log"
|
||||||
|
"github.com/grafana/grafana/pkg/plugins/pluginrequestmeta"
|
||||||
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewLoggerMiddleware creates a new plugins.ClientMiddleware that will
|
// NewLoggerMiddleware creates a new plugins.ClientMiddleware that will
|
||||||
// log requests.
|
// log requests.
|
||||||
func NewLoggerMiddleware(cfg *setting.Cfg, logger plog.Logger) plugins.ClientMiddleware {
|
func NewLoggerMiddleware(cfg *setting.Cfg, logger plog.Logger, features featuremgmt.FeatureToggles) plugins.ClientMiddleware {
|
||||||
return plugins.ClientMiddlewareFunc(func(next plugins.Client) plugins.Client {
|
return plugins.ClientMiddlewareFunc(func(next plugins.Client) plugins.Client {
|
||||||
if !cfg.PluginLogBackendRequests {
|
if !cfg.PluginLogBackendRequests {
|
||||||
return next
|
return next
|
||||||
@ -24,6 +26,7 @@ func NewLoggerMiddleware(cfg *setting.Cfg, logger plog.Logger) plugins.ClientMid
|
|||||||
return &LoggerMiddleware{
|
return &LoggerMiddleware{
|
||||||
next: next,
|
next: next,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
|
features: features,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -31,6 +34,7 @@ func NewLoggerMiddleware(cfg *setting.Cfg, logger plog.Logger) plugins.ClientMid
|
|||||||
type LoggerMiddleware struct {
|
type LoggerMiddleware struct {
|
||||||
next plugins.Client
|
next plugins.Client
|
||||||
logger plog.Logger
|
logger plog.Logger
|
||||||
|
features featuremgmt.FeatureToggles
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *LoggerMiddleware) logRequest(ctx context.Context, fn func(ctx context.Context) error) error {
|
func (m *LoggerMiddleware) logRequest(ctx context.Context, fn func(ctx context.Context) error) error {
|
||||||
@ -45,7 +49,6 @@ func (m *LoggerMiddleware) logRequest(ctx context.Context, fn func(ctx context.C
|
|||||||
status = statusCancelled
|
status = statusCancelled
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logParams := []any{
|
logParams := []any{
|
||||||
"status", status,
|
"status", status,
|
||||||
"duration", time.Since(start),
|
"duration", time.Since(start),
|
||||||
@ -55,6 +58,9 @@ func (m *LoggerMiddleware) logRequest(ctx context.Context, fn func(ctx context.C
|
|||||||
if status == statusError {
|
if status == statusError {
|
||||||
logParams = append(logParams, "error", err)
|
logParams = append(logParams, "error", err)
|
||||||
}
|
}
|
||||||
|
if m.features.IsEnabled(featuremgmt.FlagPluginsInstrumentationStatusSource) {
|
||||||
|
logParams = append(logParams, "status_source", pluginrequestmeta.StatusSourceFromContext(ctx))
|
||||||
|
}
|
||||||
m.logger.FromContext(ctx).Info("Plugin Request Completed", logParams...)
|
m.logger.FromContext(ctx).Info("Plugin Request Completed", logParams...)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -158,7 +158,7 @@ func CreateMiddlewares(cfg *setting.Cfg, oAuthTokenService oauthtoken.OAuthToken
|
|||||||
clientmiddleware.NewTracingMiddleware(tracer),
|
clientmiddleware.NewTracingMiddleware(tracer),
|
||||||
clientmiddleware.NewMetricsMiddleware(promRegisterer, registry, features),
|
clientmiddleware.NewMetricsMiddleware(promRegisterer, registry, features),
|
||||||
clientmiddleware.NewContextualLoggerMiddleware(),
|
clientmiddleware.NewContextualLoggerMiddleware(),
|
||||||
clientmiddleware.NewLoggerMiddleware(cfg, log.New("plugin.instrumentation")),
|
clientmiddleware.NewLoggerMiddleware(cfg, log.New("plugin.instrumentation"), features),
|
||||||
clientmiddleware.NewTracingHeaderMiddleware(),
|
clientmiddleware.NewTracingHeaderMiddleware(),
|
||||||
clientmiddleware.NewClearAuthHeadersMiddleware(),
|
clientmiddleware.NewClearAuthHeadersMiddleware(),
|
||||||
clientmiddleware.NewOAuthTokenMiddleware(oAuthTokenService),
|
clientmiddleware.NewOAuthTokenMiddleware(oAuthTokenService),
|
||||||
|
Loading…
Reference in New Issue
Block a user