Skip to content

Commit

Permalink
[CHORE] considering X-Forwarded-For on HTTP Logging (thanos-io#7303)
Browse files Browse the repository at this point in the history
Signed-off-by: Nicolas Takashi <[email protected]>
Signed-off-by: mluffman <[email protected]>
  • Loading branch information
nicolastakashi authored and Nashluffy committed May 14, 2024
1 parent d8277ff commit ecefa10
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ We use *breaking :warning:* to mark changes that are not backward compatible (re
- [#7280](https://github.com/thanos-io/thanos/pull/7281): Adding User-Agent to request logs
- [#7219](https://github.com/thanos-io/thanos/pull/7219): Receive: add `--remote-write.client-tls-secure` and `--remote-write.client-tls-skip-verify` flags to stop relying on grpc server config to determine grpc client secure/skipVerify.
- [#7297](https://github.com/thanos-io/thanos/pull/7297): *: mark as not queryable if status is not ready
- [#7302](https://github.com/thanos-io/thanos/pull/7303) Considering the `X-Forwarded-For` header for the remote address in the logs.

### Changed

Expand Down
8 changes: 7 additions & 1 deletion pkg/logging/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,19 @@ func (m *HTTPServerMiddleware) preCall(name string, start time.Time, r *http.Req

func (m *HTTPServerMiddleware) postCall(name string, start time.Time, wrapped *httputil.ResponseWriterWithStatus, r *http.Request) {
status := wrapped.Status()

remoteAddr := r.Header.Get("X-Forwarded-For")
if remoteAddr == "" {
remoteAddr = r.RemoteAddr
}

logger := log.With(m.logger,
"http.method", fmt.Sprintf("%s %s", r.Method, r.URL),
"http.request_id", r.Header.Get("X-Request-ID"),
"http.user_agent", r.Header.Get("User-Agent"),
"http.status_code", fmt.Sprintf("%d", status),
"http.time_ms", fmt.Sprintf("%v", durationToMilliseconds(time.Since(start))),
"http.remote_addr", r.RemoteAddr,
"http.remote_addr", remoteAddr,
"thanos.method_name", name)

logger = m.opts.filterLog(logger)
Expand Down

0 comments on commit ecefa10

Please sign in to comment.