cloudapi: propagate operation/external id
Signed-off-by: Lukas Zapletal <lzap+git@redhat.com>
This commit is contained in:
parent
f3c0daebbf
commit
5ce8f65a58
8 changed files with 169 additions and 41 deletions
|
|
@ -87,10 +87,37 @@ func (s *Server) Handler(path string) http.Handler {
|
|||
e := echo.New()
|
||||
e.Binder = binder{}
|
||||
e.HTTPErrorHandler = s.HTTPErrorHandler
|
||||
e.Pre(common.OperationIDMiddleware)
|
||||
e.Use(middleware.Recover())
|
||||
e.Logger = common.Logger()
|
||||
|
||||
// OperationIDMiddleware - generates OperationID random string and puts it into the contexts
|
||||
// ExternalIDMiddleware - extracts ID from HTTP header and puts it into the contexts
|
||||
// LoggerMiddleware - creates context-aware logger for each request
|
||||
e.Pre(common.OperationIDMiddleware, common.ExternalIDMiddleware, common.LoggerMiddleware)
|
||||
e.Use(middleware.Recover())
|
||||
|
||||
e.Use(middleware.RequestLoggerWithConfig(middleware.RequestLoggerConfig{
|
||||
LogURI: true,
|
||||
LogStatus: true,
|
||||
LogLatency: true,
|
||||
LogMethod: true,
|
||||
LogValuesFunc: func(c echo.Context, values middleware.RequestLoggerValues) error {
|
||||
fields := logrus.Fields{
|
||||
"uri": values.URI,
|
||||
"method": values.Method,
|
||||
"status": values.Status,
|
||||
"latency_ms": values.Latency.Milliseconds(),
|
||||
"operation_id": c.Get(common.OperationIDKey),
|
||||
"external_id": c.Get(common.ExternalIDKey),
|
||||
}
|
||||
if values.Error != nil {
|
||||
fields["error"] = values.Error
|
||||
}
|
||||
logrus.WithFields(fields).Infof("Processed request %s %s", values.Method, values.URI)
|
||||
|
||||
return nil
|
||||
},
|
||||
}))
|
||||
|
||||
if sentry.CurrentHub().Client() == nil {
|
||||
logrus.Warn("Sentry/Glitchtip not initialized, echo middleware was not enabled")
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue