Skip to content

Commit 45cf0d2

Browse files
authored
[public-api] Explicit panic handler (#17105)
1 parent 589e670 commit 45cf0d2

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

components/public-api-server/middleware/logging.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,21 @@ type Middleware func(handler http.Handler) http.Handler
1717
func NewLoggingMiddleware() Middleware {
1818
return func(next http.Handler) http.Handler {
1919
logging := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
20+
ctx := log.ToContext(r.Context(), log.Log.WithContext(r.Context()))
21+
log.AddFields(ctx, logrus.Fields{
22+
"protocol": "http",
23+
"uri": r.RequestURI,
24+
"method": r.Method,
25+
})
26+
2027
start := time.Now()
2128
next.ServeHTTP(w, r)
2229
duration := time.Since(start)
2330

24-
log.WithFields(logrus.Fields{
25-
"uri": r.RequestURI,
26-
"method": r.Method,
27-
"duration": duration,
28-
}).Debug("Handled HTTP request")
31+
log.AddFields(ctx, logrus.Fields{
32+
"duration_seconds": duration.Seconds(),
33+
})
34+
log.Extract(ctx).Debug("Handled HTTP request")
2935
})
3036

3137
return logging

components/public-api-server/pkg/server/logs.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ func NewLogInterceptor(entry *logrus.Entry) connect.UnaryInterceptorFunc {
5959
}
6060

6161
func filterHeaders(headers http.Header) http.Header {
62+
if headers == nil {
63+
return nil
64+
}
65+
6266
cloned := headers.Clone()
6367
cloned.Del("Authorization")
6468
cloned.Del("Cookie")

components/public-api-server/pkg/server/server.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"github.com/gitpod-io/gitpod/common-go/experiments"
1919
"github.com/gitpod-io/gitpod/common-go/log"
2020
"github.com/go-chi/chi/v5"
21+
chi_middleware "github.com/go-chi/chi/v5/middleware"
2122
"github.com/redis/go-redis/v9"
2223
"gorm.io/gorm"
2324

@@ -176,6 +177,7 @@ func register(srv *baseserver.Server, deps *registerDependencies) error {
176177
}
177178

178179
rootHandler := chi.NewRouter()
180+
rootHandler.Use(chi_middleware.Recoverer)
179181
rootHandler.Use(middleware.NewLoggingMiddleware())
180182

181183
handlerOptions := []connect.HandlerOption{

0 commit comments

Comments
 (0)