[
https://issues.apache.org/jira/browse/HDDS-13803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sumit Agrawal resolved HDDS-13803.
----------------------------------
Fix Version/s: 2.3.0
Resolution: Fixed
> Client aware tracing
> --------------------
>
> Key: HDDS-13803
> URL: https://issues.apache.org/jira/browse/HDDS-13803
> Project: Apache Ozone
> Issue Type: Sub-task
> Reporter: Sumit Agrawal
> Assignee: Sravani Revuri
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.3.0
>
>
> h1. Tracing Support for Client
> The Ozone client needs the flexibility to either initiate a new span or
> continue an existing application-level trace by creating a child span. A
> specific scenario arises when the Ozone client should only trace if it's
> explicitly enabled to continue an application's existing trace.
>
> * *Application with Active Trace:*
> * The Ozone client checks for an active span from the application's context.
> * If an active span is found, the Ozone client continues that trace as a
> child span, using the application's existing trace context.
> * *Application Without Active Trace:*
> * If the application has not initiated a trace, the Ozone client will not
> create a new trace independently when ozone.tracing.enabled is false.
>
> Typically, ozone.tracing.enabled is false, indicating that no tracing should
> occur by default. However, for Ozone clients, dynamically updating this
> configuration based on the application's implementation is often not feasible.
>
> To address this, the Ozone client will leverage the application's tracer to
> continue tracing as a child span. This specific behavior will be controlled
> by an additional flag:
>
> * ozone.tracing.client.application-aware (default: true)
>
> When ozone.tracing.client.application-aware is true, the Ozone client will
> utilize tracers provided by the application context. This allows the Ozone
> client to trace even if the ozone.tracing.enabled configuration is false,
> provided the application has configured and enabled its own tracing.
>
> *Mechanism for Client-Side Trace Continuation:*
>
> // In a deep part of the code, get the current active span from the Context
> Span currentSpan = Span.current();
>
> // Get the tracer that created this span
> Tracer tracer = currentSpan.getTracer();
>
> // Using this tracer, a child span can be created and traced
> // Example:
> tracer.spanBuilder("OzoneClientOperation").setParent(currentSpan.getSpanContext()).startSpan();
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]