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/plugins"
|
||||
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"
|
||||
)
|
||||
|
||||
// NewLoggerMiddleware creates a new plugins.ClientMiddleware that will
|
||||
// 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 {
|
||||
if !cfg.PluginLogBackendRequests {
|
||||
return next
|
||||
@ -24,6 +26,7 @@ func NewLoggerMiddleware(cfg *setting.Cfg, logger plog.Logger) plugins.ClientMid
|
||||
return &LoggerMiddleware{
|
||||
next: next,
|
||||
logger: logger,
|
||||
features: features,
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -31,6 +34,7 @@ func NewLoggerMiddleware(cfg *setting.Cfg, logger plog.Logger) plugins.ClientMid
|
||||
type LoggerMiddleware struct {
|
||||
next plugins.Client
|
||||
logger plog.Logger
|
||||
features featuremgmt.FeatureToggles
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
logParams := []any{
|
||||
"status", status,
|
||||
"duration", time.Since(start),
|
||||
@ -55,6 +58,9 @@ func (m *LoggerMiddleware) logRequest(ctx context.Context, fn func(ctx context.C
|
||||
if status == statusError {
|
||||
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...)
|
||||
return err
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ func CreateMiddlewares(cfg *setting.Cfg, oAuthTokenService oauthtoken.OAuthToken
|
||||
clientmiddleware.NewTracingMiddleware(tracer),
|
||||
clientmiddleware.NewMetricsMiddleware(promRegisterer, registry, features),
|
||||
clientmiddleware.NewContextualLoggerMiddleware(),
|
||||
clientmiddleware.NewLoggerMiddleware(cfg, log.New("plugin.instrumentation")),
|
||||
clientmiddleware.NewLoggerMiddleware(cfg, log.New("plugin.instrumentation"), features),
|
||||
clientmiddleware.NewTracingHeaderMiddleware(),
|
||||
clientmiddleware.NewClearAuthHeadersMiddleware(),
|
||||
clientmiddleware.NewOAuthTokenMiddleware(oAuthTokenService),
|
||||
|
Loading…
Reference in New Issue
Block a user