-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
area/tracingdesign proposalNeeds design doc/proposal before implementationNeeds design doc/proposal before implementationhelp wantedNeeds help!Needs help!
Milestone
Description
Title: Make configuration of a tracing provider dynamic
Context:
- at the moment, tracing provider is configured statically as part of bootstrap config
- while this approach is very pragmatic, it breaks overall user experience that Envoy can reconfigured on-the-fly
- although it would be possible to achieve a similar user experience through a hot restart, it feels like a workaround and doesn't seem a long-term solution
Proposal:
- Make configuration of a tracing provider dynamic
Example use cases:
- change a tracing provider on-the-fly (e.g.,
zipkintoopentracing) - reconfigure an active tracing provider (e.g., address of a collector)
Anticipated scope of changes:
- extend Envoy bootstrap config with a new trace driver -
envoy.tracers.dynamic - implement configuration model for
dynamictracer, e.g. as a new independent xDS API or as a higher-level abstraction on top of RTDS (Runtime Discovery) - implement a
dynamictracer as a smart reference to the actual implementation
Open questions:
- which configuration model to choose: new xDS, RTDS or something else? Does Envoy already have an example of turning a part of bootstrap config into a dynamic configuration ?
- it's possible that some tracing providers might not support being configured multiple times (e.g.,
envoy.dynamic.otandenvoy.tracers.opencensuslook questionable). Hopefully, it's acceptable to sacrifice them in the beginning and let them improve over time
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area/tracingdesign proposalNeeds design doc/proposal before implementationNeeds design doc/proposal before implementationhelp wantedNeeds help!Needs help!