-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(tracing): new headers propagation module for tracing plugins #12670
Conversation
4ed3fd9
to
f2dd252
Compare
78378ce
to
ca3b40a
Compare
8e7c6ad
to
c4aa1a3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only two comments:
- We changed the schema, how to educate customers about this feature? Changelog is not a good place. Shall we create a PR for docs.konghq.com?
- We should inform the UI team about the schema changes.
thank you @ADD-SP, as those items are going to be separate from this PR I'm creating dedicated tasks - KAG-4104, KAG-4105 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please also inform the Koko team.
Verified with |
The new propagation module replaces the propagation.lua file, providing a more flexible and extensible way to handle tracing headers propagation from plugins (at the moment OpenTelemetry and Zipkin). It allows configuring the priority of tracing context extraction and what headers to extract and inject the tracing context from/to. It also allows clearing headers from the request after extraction to gain full control on what is propagated to the upstream. New configuration options: propagation.extract: Header formats used to extract tracing context from incoming requests. propagation.inject: Header formats used to inject tracing context. propagation.clear: Header names to clear after context extraction. Each header format is now defined in its own extractor and injector files so that individual logic for extracting and injecting the tracing context is isolated. This is meant to improve maintainability/testability and facilitate extending support to new header formats. apply PR suggestions (squash me) Co-authored-by: Qi <[email protected]>
79c8af5
to
b791241
Compare
Summary
The new propagation module replaces the
propagation.lua
file, providing a more flexible and extensible way to handle tracing headers propagation from plugins (at the moment OpenTelemetry and Zipkin). It allows configuring the priority of tracing context extraction and what headers to extract and inject the tracing context from/to. It also allows clearing headers from the request after extraction to gain full control on what is propagated to the upstream.New configuration options:
propagation.extract: Header formats used to extract tracing context from incoming requests.
propagation.inject: Header formats used to inject tracing context.
propagation.clear: Header names to clear after context extraction.
Each header format is now defined in its own extractor and injector files so that individual logic for extracting and injecting the tracing context is isolated. This is meant to improve maintainability/testability and facilitate extending support to new header formats.
Checklist
changelog/unreleased/kong
orskip-changelog
label added on PR if changelog is unnecessary. README.mdIssue reference
KAG-1886 / KAG-1887