This is an automated email from the ASF dual-hosted git repository.

jojochuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone-site.git


The following commit(s) were added to refs/heads/master by this push:
     new 5511414aff HDDS-16048. [Docs] Improve Tracing Docs (#522)
5511414aff is described below

commit 5511414aff4c9ad973b40149228fe18b3ee5cd53
Author: sravani <[email protected]>
AuthorDate: Thu Aug 6 20:24:37 2026 +0530

    HDDS-16048. [Docs] Improve Tracing Docs (#522)
---
 .../09-observability/06-distributed-tracing.md     |  71 +++++++++++++++++++++
 .../09-observability/jaeger-trace.png              | Bin 0 -> 399371 bytes
 2 files changed, 71 insertions(+)

diff --git 
a/docs/05-administrator-guide/03-operations/09-observability/06-distributed-tracing.md
 
b/docs/05-administrator-guide/03-operations/09-observability/06-distributed-tracing.md
index f88780ac0f..e57d49e196 100644
--- 
a/docs/05-administrator-guide/03-operations/09-observability/06-distributed-tracing.md
+++ 
b/docs/05-administrator-guide/03-operations/09-observability/06-distributed-tracing.md
@@ -19,6 +19,32 @@ Tracing is turned off by default. To enable it across Ozone 
services, configure
 </property>
 ```
 
+## Application-Aware Client Tracing
+
+Application-aware tracing lets Ozone participate in an existing application 
trace without starting its own
+root traces when cluster-wide tracing is disabled. It applies only when 
`ozone.tracing.enabled=false` and parent context is passed.
+
+This is controlled by:
+
+```xml
+<property>
+   <name>ozone.tracing.client.application-aware</name>
+   <value>true</value>
+</property>
+```
+
+**Default Value:** `true`
+
+**Behavior:**
+
+- When `true`, the Ozone client can create child spans if an application trace 
is already active
+  (via the application's Global OpenTelemetry instance or a W3C-propagated 
context).
+  Ozone will not start a new root trace on its own.
+- When `false` (with `ozone.tracing.enabled=false`), client tracing is fully 
off.
+- When `ozone.tracing.enabled=true`, Ozone uses its own OpenTelemetry SDK and 
exports
+  spans normally; application-aware mode does not change that behavior.
+- Set `ozone.tracing.endpoint` on the Ozone side to the same OTLP collector 
endpoint used by your application.
+
 ## Configuration Priorities
 
 When resolving configurations for endpoints and sampling strategies, Ozone 
evaluates sources in the following order of priority:
@@ -96,6 +122,51 @@ export 
OTEL_SPAN_SAMPLING_ARG="createVolume:1.0,getBucket:0.5"
 
 > **Note:** In this example, 100% of `createVolume` spans and 50% of 
 > `getBucket` spans will be collected.
 
+## Instrumented Components
+
+When tracing is enabled, specific services emit spans using the designated 
identifiers below.
+Trace context is propagated across service boundaries via gRPC and W3C context 
propagation.
+
+| Service / Component       | Service Name |
+|---------------------------| ------------ |
+| Ozone Manager             | `OzoneManager` |
+| Storage Container Manager | `StorageContainerManager` |
+| Datanode                  | `HddsDatanodeService.{datanodeId}` |
+| S3 Gateway                | `S3gateway` |
+| Ozone Client              | `client` (when Ozone initializes tracing in the 
JVM) |
+| CLIs (Shell / FS / Freon) | `shell`, `FsShell`, `freon` |
+
+> **Note:** If an application registers OpenTelemetry first, client spans are 
exported under that application's service name, not `client`.
+
+## Dynamic Reconfiguration
+
+You can update the following tracing properties at runtime on the OM, SCM, and 
Datanodes
+without restarting the processes:
+
+- `ozone.tracing.enabled`
+- `ozone.tracing.endpoint`
+- `ozone.tracing.sampler`
+- `ozone.tracing.span.sampling`
+- `ozone.tracing.client.application-aware`
+
+> **Note:** S3 Gateway and the Ozone client do not support dynamic 
reconfiguration.
+
+For more details on dynamic property reload, see [Dynamic Property 
Reload](../dynamic-property-reload).
+
+## Quick Start
+
+1. Start your Ozone cluster and a Jaeger collector.
+2. Enable tracing and set the collector endpoint to your Jaeger OTLP receiver. 
See [Enabling Tracing](#enabling-tracing) and [Collector Endpoint 
Configuration](#collector-endpoint-configuration).
+3. Generate sample traces:
+
+   ```shell
+   ozone freon rk --numOfVolumes=1 --numOfBuckets=1 --numOfKeys=2
+   ```
+
+4. Open the Jaeger UI, select a service such as `OzoneManager` or `freon`, and 
click **Find Traces**.
+
+![Jaeger trace view showing freon command](jaeger-trace.png)
+
 ## References
 
 - Design doc: [HDDS-13679 Distributed tracing 
improvement](https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/design/distributed-tracing-OpenTelemetry.md)
diff --git 
a/docs/05-administrator-guide/03-operations/09-observability/jaeger-trace.png 
b/docs/05-administrator-guide/03-operations/09-observability/jaeger-trace.png
new file mode 100644
index 0000000000..82d62bb389
Binary files /dev/null and 
b/docs/05-administrator-guide/03-operations/09-observability/jaeger-trace.png 
differ


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to