Commit 60d73ec
committed
cilium: defer response logging until stream completion
The Cilium HTTP access log entry for the response side is currently
emitted from encodeHeaders(), before later stages of the response
stream complete. This means response-side header mutations performed
by downstream filters such as ext_proc are not reflected in the
access log entry that the Cilium agent consumes, even though they
reach the wire correctly.
Defer the response log entry until the response stream has actually
completed:
- encodeHeaders() now records the response header map and only emits
the log entry immediately if end_stream is true on headers.
- encodeData() and encodeTrailers() are implemented and call
logResponse() once the stream ends.
- onStreamComplete() acts as a final safety net.
A response_logged_ guard ensures the response log entry is emitted
exactly once per stream regardless of which code path triggers it.
This is a prerequisite for surfacing ext_proc-injected response
metadata (for example, AI usage headers such as token counts added
by an external processor on the response path) through the Cilium
access log bridge into Hubble.
Tests:
- New unit coverage in tests/accesslog_test.cc for deferred response
logging on stream completion.
- New integration coverage in tests/cilium_http_integration_test.cc
validating that response-side headers mutated after encodeHeaders()
are reflected in the access log entry consumed by Cilium.
Signed-off-by: Nico Vibert <nvibert@cisco.com>1 parent bdb8b53 commit 60d73ec
4 files changed
Lines changed: 124 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
303 | 303 | | |
304 | 304 | | |
305 | 305 | | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
306 | 310 | | |
307 | 311 | | |
308 | | - | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
309 | 324 | | |
310 | 325 | | |
311 | 326 | | |
| |||
374 | 389 | | |
375 | 390 | | |
376 | 391 | | |
377 | | - | |
378 | | - | |
379 | | - | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
380 | 398 | | |
381 | 399 | | |
382 | 400 | | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
383 | 414 | | |
384 | 415 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
| 97 | + | |
| 98 | + | |
103 | 99 | | |
104 | 100 | | |
105 | 101 | | |
106 | 102 | | |
107 | 103 | | |
108 | 104 | | |
| 105 | + | |
109 | 106 | | |
110 | 107 | | |
111 | 108 | | |
| |||
114 | 111 | | |
115 | 112 | | |
116 | 113 | | |
| 114 | + | |
117 | 115 | | |
| 116 | + | |
118 | 117 | | |
119 | 118 | | |
120 | 119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
89 | 131 | | |
90 | 132 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
903 | 903 | | |
904 | 904 | | |
905 | 905 | | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
906 | 948 | | |
907 | 949 | | |
908 | 950 | | |
| |||
0 commit comments