@@ -112,6 +112,74 @@ public class Main {
112112}
113113```
114114
115+ ### Tracing with OpenTelemetry
116+
117+ To enable distributed tracing with OpenTelemetry in opengemini-client-java:
118+
119+ 1.Add dependencies:
120+
121+ ``` xml
122+ <dependency >
123+ <groupId >io.opentelemetry</groupId >
124+ <artifactId >opentelemetry-api</artifactId >
125+ <version >${opentelemetry.version}</version >
126+ </dependency >
127+ <dependency >
128+ <groupId >io.opentelemetry</groupId >
129+ <artifactId >opentelemetry-exporter-jaeger-grpc</artifactId >
130+ <version >${opentelemetry.version}</version >
131+ </dependency >
132+ ```
133+
134+ 2.Configure tracer and register interceptor:
135+
136+ ``` java
137+ import io.opentelemetry.api.OpenTelemetry ;
138+ import io.opentelemetry.api.common.Attributes ;
139+ import io.opentelemetry.api.trace.Tracer ;
140+ import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter ;
141+ import io.opentelemetry.sdk.OpenTelemetrySdk ;
142+ import io.opentelemetry.sdk.resources.Resource ;
143+ import io.opentelemetry.sdk.trace.SdkTracerProvider ;
144+ import io.opentelemetry.sdk.trace.export.BatchSpanProcessor ;
145+ import io.opentelemetry.semconv.ResourceAttributes ;
146+ import io.opengemini.client.api.Configuration ;
147+ import io.opengemini.client.api.Address ;
148+ import io.opengemini.client.interceptor.OtelInterceptor ;
149+ import java.util.Collections ;
150+
151+ public class TracingExample {
152+ public static void main (String [] args ) {
153+ // Create OpenGemini client
154+ Configuration configuration = Configuration . builder()
155+ .addresses(Collections . singletonList(new Address (" 127.0.0.1" , 8086 )))
156+ .build();
157+ OpenGeminiClient openGeminiClient = new OpenGeminiClient (configuration);
158+
159+ // Configure OpenTelemetry tracer
160+ JaegerGrpcSpanExporter exporter = JaegerGrpcSpanExporter . builder()
161+ .setEndpoint(" http://localhost:14250" )
162+ .build();
163+
164+ SdkTracerProvider tracerProvider = SdkTracerProvider . builder()
165+ .addSpanProcessor(BatchSpanProcessor . builder(exporter). build())
166+ .setResource(Resource . create(
167+ Attributes . of(ResourceAttributes . SERVICE_NAME , " opengemini-client-java" )
168+ ))
169+ .build();
170+
171+ Tracer tracer = OpenTelemetrySdk . builder()
172+ .setTracerProvider(tracerProvider)
173+ .build()
174+ .getTracer(" opengemini-client-java" );
175+
176+ // Register interceptor
177+ OtelInterceptor otelInterceptor = new OtelInterceptor ();
178+ otelInterceptor. setTracer(tracer);
179+ openGeminiClient. addInterceptors(otelInterceptor);
180+ }
181+ }
182+ ```
115183## Contribution
116184
117185Welcome to [ join us] ( CONTRIBUTION.md )
0 commit comments