Skip to content

Commit f049301

Browse files
authored
HBASE-26124 Backport HBASE-25373 "Remove HTrace completely in code base and try to make use of OpenTelemetry" to branch-2 (#3529)
1/17 commits of HBASE-22120 Signed-off-by: Peter Somogyi <[email protected]>
1 parent d470b25 commit f049301

File tree

45 files changed

+362
-914
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+362
-914
lines changed

hbase-asyncfs/src/test/java/org/apache/hadoop/hbase/io/asyncfs/AsyncFSTestBase.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,9 @@
1919

2020
import java.io.File;
2121
import java.io.IOException;
22-
2322
import org.apache.hadoop.conf.Configuration;
2423
import org.apache.hadoop.fs.Path;
2524
import org.apache.hadoop.hbase.HBaseCommonTestingUtility;
26-
import org.apache.hadoop.hbase.trace.TraceUtil;
2725
import org.apache.hadoop.hdfs.MiniDFSCluster;
2826
import org.slf4j.Logger;
2927
import org.slf4j.LoggerFactory;
@@ -104,7 +102,6 @@ protected static void startMiniDFSCluster(int servers) throws IOException {
104102
org.apache.log4j.Logger.getLogger(org.apache.hadoop.metrics2.impl.MetricsSystemImpl.class)
105103
.setLevel(org.apache.log4j.Level.ERROR);
106104

107-
TraceUtil.initTracer(conf);
108105
CLUSTER = new MiniDFSCluster.Builder(conf).numDataNodes(servers).build();
109106
CLUSTER.waitClusterUp();
110107
}

hbase-client/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,8 @@
145145
<artifactId>zookeeper</artifactId>
146146
</dependency>
147147
<dependency>
148-
<groupId>org.apache.htrace</groupId>
149-
<artifactId>htrace-core4</artifactId>
148+
<groupId>io.opentelemetry</groupId>
149+
<artifactId>opentelemetry-api</artifactId>
150150
</dependency>
151151
<dependency>
152152
<groupId>org.jruby.jcodings</groupId>

hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,8 @@
4646
import org.apache.hadoop.hbase.client.backoff.ServerStatistics;
4747
import org.apache.hadoop.hbase.client.coprocessor.Batch;
4848
import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;
49-
import org.apache.hadoop.hbase.trace.TraceUtil;
5049
import org.apache.hadoop.hbase.util.Bytes;
5150
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
52-
import org.apache.htrace.core.Tracer;
5351
import org.apache.yetus.audience.InterfaceAudience;
5452
import org.slf4j.Logger;
5553
import org.slf4j.LoggerFactory;
@@ -572,13 +570,9 @@ private Collection<? extends Runnable> getNewMultiActionRunnable(ServerName serv
572570
asyncProcess.incTaskCounters(multiAction.getRegions(), server);
573571
SingleServerRequestRunnable runnable = createSingleServerRequest(
574572
multiAction, numAttempt, server, callsInProgress);
575-
Tracer tracer = Tracer.curThreadTracer();
576573

577-
if (tracer == null) {
578-
return Collections.singletonList(runnable);
579-
} else {
580-
return Collections.singletonList(tracer.wrap(runnable, "AsyncProcess.sendMultiAction"));
581-
}
574+
// remove trace for runnable because HBASE-25373 and OpenTelemetry do not cover TraceRunnable
575+
return Collections.singletonList(runnable);
582576
}
583577

584578
// group the actions by the amount of delay
@@ -598,12 +592,10 @@ private Collection<? extends Runnable> getNewMultiActionRunnable(ServerName serv
598592
List<Runnable> toReturn = new ArrayList<>(actions.size());
599593
for (DelayingRunner runner : actions.values()) {
600594
asyncProcess.incTaskCounters(runner.getActions().getRegions(), server);
601-
String traceText = "AsyncProcess.sendMultiAction";
602595
Runnable runnable = createSingleServerRequest(runner.getActions(), numAttempt, server, callsInProgress);
603596
// use a delay runner only if we need to sleep for some time
604597
if (runner.getSleepTime() > 0) {
605598
runner.setRunner(runnable);
606-
traceText = "AsyncProcess.clientBackoff.sendMultiAction";
607599
runnable = runner;
608600
if (asyncProcess.connection.getConnectionMetrics() != null) {
609601
asyncProcess.connection.getConnectionMetrics()
@@ -614,7 +606,7 @@ private Collection<? extends Runnable> getNewMultiActionRunnable(ServerName serv
614606
asyncProcess.connection.getConnectionMetrics().incrNormalRunners();
615607
}
616608
}
617-
runnable = TraceUtil.wrap(runnable, traceText);
609+
// remove trace for runnable because HBASE-25373 and OpenTelemetry do not cover TraceRunnable
618610
toReturn.add(runnable);
619611

620612
}

hbase-client/src/main/java/org/apache/hadoop/hbase/client/ResultBoundedCompletionService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import java.util.concurrent.TimeUnit;
2727
import java.util.concurrent.TimeoutException;
2828

29-
import org.apache.hadoop.hbase.trace.TraceUtil;
3029
import org.apache.yetus.audience.InterfaceAudience;
3130
import org.slf4j.Logger;
3231
import org.slf4j.LoggerFactory;
@@ -168,7 +167,8 @@ public ResultBoundedCompletionService(
168167

169168
public void submit(RetryingCallable<V> task, int callTimeout, int id) {
170169
QueueingFuture<V> newFuture = new QueueingFuture<>(task, callTimeout, id);
171-
executor.execute(TraceUtil.wrap(newFuture, "ResultBoundedCompletionService.submit"));
170+
// remove trace for runnable because HBASE-25373 and OpenTelemetry do not cover TraceRunnable
171+
executor.execute(newFuture);
172172
tasks[id] = newFuture;
173173
}
174174

hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/BlockingRpcConnection.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
import static org.apache.hadoop.hbase.ipc.IPCUtil.setCancelled;
2525
import static org.apache.hadoop.hbase.ipc.IPCUtil.write;
2626

27+
import io.opentelemetry.api.trace.Span;
28+
import io.opentelemetry.context.Context;
29+
import io.opentelemetry.context.Scope;
2730
import java.io.BufferedInputStream;
2831
import java.io.BufferedOutputStream;
2932
import java.io.DataInputStream;
@@ -62,7 +65,6 @@
6265
import org.apache.hadoop.net.NetUtils;
6366
import org.apache.hadoop.security.UserGroupInformation;
6467
import org.apache.hadoop.util.StringUtils;
65-
import org.apache.htrace.core.TraceScope;
6668
import org.apache.yetus.audience.InterfaceAudience;
6769
import org.slf4j.Logger;
6870
import org.slf4j.LoggerFactory;
@@ -593,9 +595,12 @@ private void negotiateCryptoAes(RPCProtos.CryptoCipherMeta cryptoCipherMeta)
593595
}
594596

595597
private void tracedWriteRequest(Call call) throws IOException {
596-
try (TraceScope ignored = TraceUtil.createTrace("RpcClientImpl.tracedWriteRequest",
597-
call.span)) {
598+
Span span = TraceUtil.getGlobalTracer().spanBuilder("RpcClientImpl.tracedWriteRequest")
599+
.setParent(Context.current().with(call.span)).startSpan();
600+
try (Scope scope = span.makeCurrent()) {
598601
writeRequest(call);
602+
} finally {
603+
span.end();
599604
}
600605
}
601606

hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/Call.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,21 @@
1717
*/
1818
package org.apache.hadoop.hbase.ipc;
1919

20+
import io.opentelemetry.api.trace.Span;
2021
import java.io.IOException;
2122
import java.util.Optional;
2223
import org.apache.commons.lang3.builder.ToStringBuilder;
2324
import org.apache.commons.lang3.builder.ToStringStyle;
2425
import org.apache.hadoop.hbase.CellScanner;
2526
import org.apache.hadoop.hbase.client.MetricsConnection;
2627
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
27-
import org.apache.htrace.core.Span;
28-
import org.apache.htrace.core.Tracer;
2928
import org.apache.yetus.audience.InterfaceAudience;
29+
3030
import org.apache.hbase.thirdparty.com.google.protobuf.Descriptors;
3131
import org.apache.hbase.thirdparty.com.google.protobuf.Message;
3232
import org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback;
3333
import org.apache.hbase.thirdparty.io.netty.util.Timeout;
34+
3435
import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
3536

3637
/** A call waiting for a value. */
@@ -73,7 +74,7 @@ protected Call(int id, final Descriptors.MethodDescriptor md, Message param,
7374
this.timeout = timeout;
7475
this.priority = priority;
7576
this.callback = callback;
76-
this.span = Tracer.getCurrentSpan();
77+
this.span = Span.current();
7778
}
7879

7980
/**

hbase-common/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,8 @@
192192
</dependency>
193193
<!-- tracing Dependencies -->
194194
<dependency>
195-
<groupId>org.apache.htrace</groupId>
196-
<artifactId>htrace-core4</artifactId>
195+
<groupId>io.opentelemetry</groupId>
196+
<artifactId>opentelemetry-api</artifactId>
197197
</dependency>
198198
<dependency>
199199
<groupId>org.apache.commons</groupId>

hbase-common/src/main/java/org/apache/hadoop/hbase/trace/HBaseHTraceConfiguration.java

Lines changed: 0 additions & 80 deletions
This file was deleted.

hbase-common/src/main/java/org/apache/hadoop/hbase/trace/SpanReceiverHost.java

Lines changed: 0 additions & 120 deletions
This file was deleted.

0 commit comments

Comments
 (0)