envoyproxy / envoyproxy/envoy

HTTP access log formatters for dynamic metadata written by Listener/Network level filters

Open
#41,116 2 comments 1 reaction 0 assignees View on GitHub
area/access_log help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 22h
Merged PRs (30d)
430

Description

*Description*:
It is a known issue currently that dynamic metadata written at the listener/network scope is not available to the HTTP access logger. Any HTTP access log formatters that address to a namespace/keypair written by these filters ends up not being available. (See https://github.com/envoyproxy/envoy/issues/19046)

The underlying cause is that the HTTP filter manager does not copy dynamic metadata from the network over to to the stream info object, but does copy filter state (See [reference](https://github.com/envoyproxy/envoy/blob/1b02aa21fa26bbb5a3bf496cb65780216659174d/source/common/http/filter_manager.h#L1179) here). I am wondering if this was intentional or an oversight?

What does the community recommend going forward if one has a use case for HTTP logging these fields?
- Should these filters just use FilterState object and implement reflection/serialization, similar to [this](https://github.com/envoyproxy/envoy/pull/29520)?
- Should dynamic metadata be copied over to the HTTP filter manager stream info?

[optional *Relevant Links*:]
- https://github.com/envoyproxy/envoy/issues/19046
- https://github.com/envoyproxy/envoy/pull/29520

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.