Excessive logging in bouncer server #49

Closed
opened 2025-03-10 10:53:20 +01:00 by pcaseiro · 0 comments
Owner

Description

Le serveur bouncer génère un grand nombre de logs, notamment des traces de pile sur plusieurs lignes, ce qui rend difficile le suivi des problèmes. Les logs fournissent des informations détaillées sur les erreurs, y compris les URL, les proxies, les hôtes, les adresses IP distantes, les messages d'erreur et les traces de pile. Les erreurs courantes incluent des problèmes de récupération de jetons d'identification, des erreurs de contexte annulé et des erreurs de serveur proxy.

Ex:

bouncer-server 2025-03-10 09:49:05.725 [warn]  context canceled  url=http://messervices.etudiant.gouv.fr/images/icon.png?v=081
bouncer-server     error= context canceled
bouncer-server            forge.cadoles.com/cadoles/bouncer/internal/proxy.(*Server).handleError
bouncer-server                /src/internal/proxy/server.go:234
bouncer-server            forge.cadoles.com/cadoles/bouncer/internal/proxy.(*Server).handleProxyError
bouncer-server                /src/internal/proxy/server.go:246
bouncer-server            net/http/httputil.(*ReverseProxy).ServeHTTP
bouncer-server                /usr/local/go/src/net/http/httputil/reverseproxy.go:486
bouncer-server            forge.cadoles.com/Cadoles/go-proxy.(*Proxy).proxyRequest
bouncer-server                /go/pkg/mod/forge.cadoles.com/!cadoles/go-proxy@v0.0.0-20240626132607-e1db6466a926/proxy.go:90
bouncer-server            net/http.HandlerFunc.ServeHTTP
bouncer-server                /usr/local/go/src/net/http/server.go:2220
bouncer-server            forge.cadoles.com/Cadoles/go-proxy.(*Proxy).ServeHTTP
bouncer-server                /go/pkg/mod/forge.cadoles.com/!cadoles/go-proxy@v0.0.0-20240626132607-e1db6466a926/proxy.go:25
bouncer-server            forge.cadoles.com/cadoles/bouncer/internal/proxy/director/layer/queue.(*Queue).Middleware.func1.1
bouncer-server                /src/internal/proxy/director/layer/queue/queue.go:109
bouncer-server            net/http.HandlerFunc.ServeHTTP
bouncer-server                /usr/local/go/src/net/http/server.go:2220
bouncer-server            forge.cadoles.com/cadoles/bouncer/internal/proxy.(*Server).run.func6.(*Director).Middleware.1.1
bouncer-server                /src/internal/proxy/director/director.go:252
bouncer-server            net/http.HandlerFunc.ServeHTTP
bouncer-server                /usr/local/go/src/net/http/server.go:2220
bouncer-server            github.com/go-chi/chi/v5.(*ChainHandler).ServeHTTP
bouncer-server                /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/chain.go:31
bouncer-server            github.com/go-chi/chi/v5.(*Mux).routeHTTP
bouncer-server                /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:444
bouncer-server            net/http.HandlerFunc.ServeHTTP
bouncer-server                /usr/local/go/src/net/http/server.go:2220
bouncer-server            github.com/getsentry/sentry-go/http.(*Handler).Handle-fm.(*Handler).Handle.(*Handler).handle.func1
bouncer-server                /go/pkg/mod/github.com/getsentry/sentry-go@v0.22.0/http/sentryhttp.go:110
bouncer-server            net/http.HandlerFunc.ServeHTTP
bouncer-server                /usr/local/go/src/net/http/server.go:2220
bouncer-server            github.com/go-chi/chi/v5/middleware.Recoverer.func1
bouncer-server                /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/recoverer.go:45
bouncer-server            net/http.HandlerFunc.ServeHTTP
bouncer-server                /usr/local/go/src/net/http/server.go:2220
bouncer-server            forge.cadoles.com/cadoles/bouncer/internal/proxy.(*Server).run.RequestLogger.func11.1
bouncer-server                /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/logger.go:54
bouncer-server            net/http.HandlerFunc.ServeHTTP
bouncer-server                /usr/local/go/src/net/http/server.go:2220
bouncer-server            github.com/go-chi/chi/v5/middleware.RequestID.func1
bouncer-server                /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/request_id.go:76
bouncer-server            net/http.HandlerFunc.ServeHTTP
bouncer-server                /usr/local/go/src/net/http/server.go:2220
bouncer-server            github.com/go-chi/chi/v5/middleware.RealIP.func1
bouncer-server                /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/realip.go:36
bouncer-server            net/http.HandlerFunc.ServeHTTP
bouncer-server                /usr/local/go/src/net/http/server.go:2220
bouncer-server            github.com/go-chi/chi/v5.(*Mux).ServeHTTP
bouncer-server                /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:90
bouncer-server            net/http.serverHandler.ServeHTTP
bouncer-server                /usr/local/go/src/net/http/server.go:3210
bouncer-server            net/http.(*conn).serve
bouncer-server                /usr/local/go/src/net/http/server.go:2092

Tests d'acceptation

Les critères d'acceptation pour la résolution de ce problème incluent :

  1. Réduction du nombre de logs : Le serveur bouncer doit générer moins de logs, en particulier en ce qui concerne les traces de pile.
  2. Amélioration de la lisibilité des logs : Les logs doivent être plus faciles à lire et à comprendre, avec des informations pertinentes et non redondantes.
  3. Filtrage des erreurs : Le serveur bouncer doit être capable de filtrer les erreurs pour ne conserver que les informations les plus importantes.
  4. Configuration de la journalisation : Il doit être possible de configurer la journalisation pour ajuster le niveau de détail et les types d'informations enregistrées.
  5. Performances : La résolution du problème ne doit pas impacter les performances du serveur bouncer.

En résumé, la solution doit améliorer la gestion des logs du serveur bouncer pour faciliter le suivi et la résolution des problèmes, tout en maintenant les performances du serveur.

## Description Le serveur bouncer génère un grand nombre de logs, notamment des traces de pile sur plusieurs lignes, ce qui rend difficile le suivi des problèmes. Les logs fournissent des informations détaillées sur les erreurs, y compris les URL, les proxies, les hôtes, les adresses IP distantes, les messages d'erreur et les traces de pile. Les erreurs courantes incluent des problèmes de récupération de jetons d'identification, des erreurs de contexte annulé et des erreurs de serveur proxy. Ex: ``` bouncer-server 2025-03-10 09:49:05.725 [warn] context canceled url=http://messervices.etudiant.gouv.fr/images/icon.png?v=081 bouncer-server error= context canceled bouncer-server forge.cadoles.com/cadoles/bouncer/internal/proxy.(*Server).handleError bouncer-server /src/internal/proxy/server.go:234 bouncer-server forge.cadoles.com/cadoles/bouncer/internal/proxy.(*Server).handleProxyError bouncer-server /src/internal/proxy/server.go:246 bouncer-server net/http/httputil.(*ReverseProxy).ServeHTTP bouncer-server /usr/local/go/src/net/http/httputil/reverseproxy.go:486 bouncer-server forge.cadoles.com/Cadoles/go-proxy.(*Proxy).proxyRequest bouncer-server /go/pkg/mod/forge.cadoles.com/!cadoles/go-proxy@v0.0.0-20240626132607-e1db6466a926/proxy.go:90 bouncer-server net/http.HandlerFunc.ServeHTTP bouncer-server /usr/local/go/src/net/http/server.go:2220 bouncer-server forge.cadoles.com/Cadoles/go-proxy.(*Proxy).ServeHTTP bouncer-server /go/pkg/mod/forge.cadoles.com/!cadoles/go-proxy@v0.0.0-20240626132607-e1db6466a926/proxy.go:25 bouncer-server forge.cadoles.com/cadoles/bouncer/internal/proxy/director/layer/queue.(*Queue).Middleware.func1.1 bouncer-server /src/internal/proxy/director/layer/queue/queue.go:109 bouncer-server net/http.HandlerFunc.ServeHTTP bouncer-server /usr/local/go/src/net/http/server.go:2220 bouncer-server forge.cadoles.com/cadoles/bouncer/internal/proxy.(*Server).run.func6.(*Director).Middleware.1.1 bouncer-server /src/internal/proxy/director/director.go:252 bouncer-server net/http.HandlerFunc.ServeHTTP bouncer-server /usr/local/go/src/net/http/server.go:2220 bouncer-server github.com/go-chi/chi/v5.(*ChainHandler).ServeHTTP bouncer-server /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/chain.go:31 bouncer-server github.com/go-chi/chi/v5.(*Mux).routeHTTP bouncer-server /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:444 bouncer-server net/http.HandlerFunc.ServeHTTP bouncer-server /usr/local/go/src/net/http/server.go:2220 bouncer-server github.com/getsentry/sentry-go/http.(*Handler).Handle-fm.(*Handler).Handle.(*Handler).handle.func1 bouncer-server /go/pkg/mod/github.com/getsentry/sentry-go@v0.22.0/http/sentryhttp.go:110 bouncer-server net/http.HandlerFunc.ServeHTTP bouncer-server /usr/local/go/src/net/http/server.go:2220 bouncer-server github.com/go-chi/chi/v5/middleware.Recoverer.func1 bouncer-server /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/recoverer.go:45 bouncer-server net/http.HandlerFunc.ServeHTTP bouncer-server /usr/local/go/src/net/http/server.go:2220 bouncer-server forge.cadoles.com/cadoles/bouncer/internal/proxy.(*Server).run.RequestLogger.func11.1 bouncer-server /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/logger.go:54 bouncer-server net/http.HandlerFunc.ServeHTTP bouncer-server /usr/local/go/src/net/http/server.go:2220 bouncer-server github.com/go-chi/chi/v5/middleware.RequestID.func1 bouncer-server /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/request_id.go:76 bouncer-server net/http.HandlerFunc.ServeHTTP bouncer-server /usr/local/go/src/net/http/server.go:2220 bouncer-server github.com/go-chi/chi/v5/middleware.RealIP.func1 bouncer-server /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/realip.go:36 bouncer-server net/http.HandlerFunc.ServeHTTP bouncer-server /usr/local/go/src/net/http/server.go:2220 bouncer-server github.com/go-chi/chi/v5.(*Mux).ServeHTTP bouncer-server /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:90 bouncer-server net/http.serverHandler.ServeHTTP bouncer-server /usr/local/go/src/net/http/server.go:3210 bouncer-server net/http.(*conn).serve bouncer-server /usr/local/go/src/net/http/server.go:2092 ``` ## Tests d'acceptation Les critères d'acceptation pour la résolution de ce problème incluent : 1. **Réduction du nombre de logs** : Le serveur bouncer doit générer moins de logs, en particulier en ce qui concerne les traces de pile. 2. **Amélioration de la lisibilité des logs** : Les logs doivent être plus faciles à lire et à comprendre, avec des informations pertinentes et non redondantes. 3. **Filtrage des erreurs** : Le serveur bouncer doit être capable de filtrer les erreurs pour ne conserver que les informations les plus importantes. 4. **Configuration de la journalisation** : Il doit être possible de configurer la journalisation pour ajuster le niveau de détail et les types d'informations enregistrées. 5. **Performances** : La résolution du problème ne doit pas impacter les performances du serveur bouncer. En résumé, la solution doit améliorer la gestion des logs du serveur bouncer pour faciliter le suivi et la résolution des problèmes, tout en maintenant les performances du serveur.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Cadoles/bouncer#49
No description provided.