mixer: remove explicit flush in Opencensus tracing adapter (#18074)
* mixer: remove explicit flush in Opencensus tracing adapter Currently, the Opencensus tracing adapter manually calls flush with each batch of tracespan instances that are passed to it. The implementation of the flush method is such that it calls (*Bundler).Flush, which blocks until all batches of spans in the bundler are written to the tracing backend. Given the flush method is blocking (i.e. only one goroutine can be flushing at any point in time), this makes the (*Handler).HandleTraceSpan method blocking, which in turn prevents concurrent calls to mixer's Report endpoint. The blocking in the tracing adapter ultimately results in increased overall latency to the Report endpoint, which can trip the rate limiting functionality, resulting in unnecessary throttling, even on requests that do not contain tracing information. Remove the explicit flushing in the Opencensus tracing adapter, instead relying on the flushing functionality provided in the underlying tracing library, which defaults to flushing once every two seconds. Fixes #18042. Signed-off-by: Nick Travers <email@example.com> * Fix formatting
|3 hours ago|
|adapter||1 week ago|
|cmd||2 months ago|
|docker||3 days ago|
|pkg||3 hours ago|
|template||1 week ago|
|test||3 days ago|
|testdata/config||5 months ago|
|tools||3 weeks ago|
|README.md||1 month ago|
Mixer enables extensible policy enforcement and control within the Istio service mesh. It is responsible for insulating the proxy (Envoy) from details of the current execution environment and the intricacies of infrastructure backends.
Mixer provides three distinct features:
Precondition Checking. Enables callers to verify a number of preconditions before responding to an incoming request from a service consumer. Preconditions can include whether the service consumer is properly authenticated, is on the service’s whitelist, passes ACL checks, and more.
Quota Management. Enables services to allocate and free quota on a number of dimensions, Quotas are used as a relatively simple resource management tool to provide some fairness between service consumers when contending for limited resources.
Telemetry Reporting. Enables services to produce logging, monitoring, tracing and billing streams intended for the service producer itself as well as for its consumers.
Learn more about Mixer here.
Mixer’s Template Developer’s Guide presents everything you need to know about you can create new templates to define whole new categories of adapters.