Adding extra fields to access logging #2414
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem:
Observing network traffic with Linkerd is a step-backwards from Istio as fields like ‘x-forwarded-from’ are missing from the access logs. This makes it difficult to identify where a request comes from.
As partly described in Issue #9842 linkerd/linkerd2#9842.
Access logs also lack a path and query field and instead provide only the entire uri, again a QOL problem that makes it harder to adopt Linkerd.
Solution:
Adding in three fields,
The first two fields are extracted from the request headers using the pre-existing
get-header
method.The path field is extracted from the
request.uri().path_and_query()
method and defaults to""
if no path can be extracted from the uri.Validation:
Building and deploying the customised linkerd proxy with access logs enabled alongside a nginx container.
Sending network requests and validating that all pre-existing fields persist and the new ones function as intended.
Fixes:
Part fixes #9842
I agree to the DCO for all the commits in this PR.