envoyproxy/gateway

Supression of X-Envoy headers breaks expected output of default log format

Open

#2,903 建立於 2024年3月13日

在 GitHub 查看
 (5 留言) (2 反應) (0 負責人)Go (802 fork)auto 404
help wantedkind/bug

倉庫指標

Star
 (2,871 star)
PR 合併指標
 (PR 指標待抓取)

描述

Description:

After the changes in #2500 and #2585 logs no longer include the proper request path where path rewrites are used.

Repro steps:

If you apply the quickstart demo and then add a rule to the HTTPRoute:

    - backendRefs:
        - group: ""
          kind: Service
          name: backend
          port: 3000
          weight: 1
      matches:
        - path:
            type: PathPrefix
            value: /rewrite
      filters:
        - type: URLRewrite
          urlRewrite:
            path:
              type: ReplacePrefixMatch
              replacePrefixMatch: /123

This request:

curl -sv -H "Host: www.example.com" 'http://172.18.255.200/rewrite/something?foo=bar'

Would normally (and previously did) result in the following log output):

{
  "start_time": "2024-03-13T02:18:21.648Z",
  "method": "GET",
  "x-envoy-origin-path": "/rewrite/something?foo=bar",
  "protocol": "HTTP/1.1",
  "response_code": "200",
...
  "duration": "1",
  "x-envoy-upstream-service-time": "0",
...
}

It is now incorrectly outputting the rewritten path instead and losing the original request path:

{
  "start_time": "2024-03-13T02:23:29.892Z",
  "method": "GET",
  "x-envoy-origin-path": "/123/something?foo=bar",
  "protocol": "HTTP/1.1",
  "response_code": "200",
...
  "duration": "1",
  "x-envoy-upstream-service-time": "-",
...
}

貢獻者指南