Share timer class used by messaging instrumentations (#8009)
Resolves https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/4514 There is also a slightly different timer class in netty instrumentation https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/netty/netty-common/library/src/main/java/io/opentelemetry/instrumentation/netty/common/internal/Timer.java that I didn't touch.
This commit is contained in:
parent
a793c247e6
commit
f1411d1cb3
|
@ -3,7 +3,7 @@
|
|||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.instrumentation.kafka.internal;
|
||||
package io.opentelemetry.instrumentation.api.internal;
|
||||
|
||||
import java.time.Instant;
|
||||
|
|
@ -15,11 +15,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
|||
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.internal.InstrumenterUtil;
|
||||
import io.opentelemetry.instrumentation.api.internal.Timer;
|
||||
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
|
||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
|
||||
import io.opentelemetry.javaagent.instrumentation.jms.MessageWithDestination;
|
||||
import io.opentelemetry.javaagent.instrumentation.jms.Timer;
|
||||
import javax.jms.Message;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.description.type.TypeDescription;
|
||||
|
|
|
@ -15,11 +15,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
|||
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.internal.InstrumenterUtil;
|
||||
import io.opentelemetry.instrumentation.api.internal.Timer;
|
||||
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
|
||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
|
||||
import io.opentelemetry.javaagent.instrumentation.jms.MessageWithDestination;
|
||||
import io.opentelemetry.javaagent.instrumentation.jms.Timer;
|
||||
import jakarta.jms.Message;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.description.type.TypeDescription;
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.javaagent.instrumentation.jms;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
public final class Timer {
|
||||
|
||||
public static Timer start() {
|
||||
return new Timer(Instant.now(), System.nanoTime());
|
||||
}
|
||||
|
||||
private final Instant startTime;
|
||||
private final long startNanoTime;
|
||||
|
||||
private Timer(Instant startTime, long startNanoTime) {
|
||||
this.startTime = startTime;
|
||||
this.startNanoTime = startNanoTime;
|
||||
}
|
||||
|
||||
public Instant startTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public Instant now() {
|
||||
long durationNanos = System.nanoTime() - startNanoTime;
|
||||
return startTime().plusNanos(durationNanos);
|
||||
}
|
||||
}
|
|
@ -17,9 +17,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
|||
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.internal.InstrumenterUtil;
|
||||
import io.opentelemetry.instrumentation.api.internal.Timer;
|
||||
import io.opentelemetry.instrumentation.kafka.internal.KafkaConsumerContextUtil;
|
||||
import io.opentelemetry.instrumentation.kafka.internal.KafkaReceiveRequest;
|
||||
import io.opentelemetry.instrumentation.kafka.internal.Timer;
|
||||
import io.opentelemetry.javaagent.bootstrap.kafka.KafkaClientsConsumerProcessTracing;
|
||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
|
||||
|
|
|
@ -32,6 +32,7 @@ import io.opentelemetry.api.trace.Span;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.Scope;
|
||||
import io.opentelemetry.instrumentation.api.internal.InstrumenterUtil;
|
||||
import io.opentelemetry.instrumentation.api.internal.Timer;
|
||||
import io.opentelemetry.javaagent.bootstrap.CallDepth;
|
||||
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
|
||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.javaagent.instrumentation.rabbitmq;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
public final class Timer {
|
||||
|
||||
public static Timer start() {
|
||||
return new Timer(Instant.now(), System.nanoTime());
|
||||
}
|
||||
|
||||
private final Instant startTime;
|
||||
private final long startNanoTime;
|
||||
|
||||
private Timer(Instant startTime, long startNanoTime) {
|
||||
this.startTime = startTime;
|
||||
this.startNanoTime = startNanoTime;
|
||||
}
|
||||
|
||||
public Instant startTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public Instant now() {
|
||||
long durationNanos = System.nanoTime() - startNanoTime;
|
||||
return startTime().plusNanos(durationNanos);
|
||||
}
|
||||
}
|
|
@ -11,6 +11,7 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
|||
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
||||
|
||||
import apache.rocketmq.v2.ReceiveMessageRequest;
|
||||
import io.opentelemetry.instrumentation.api.internal.Timer;
|
||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
|
||||
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
|
|
|
@ -9,6 +9,7 @@ import apache.rocketmq.v2.ReceiveMessageRequest;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
|
||||
import io.opentelemetry.instrumentation.api.internal.InstrumenterUtil;
|
||||
import io.opentelemetry.instrumentation.api.internal.Timer;
|
||||
import java.util.List;
|
||||
import org.apache.rocketmq.client.apis.message.MessageView;
|
||||
import org.apache.rocketmq.client.java.impl.consumer.ReceiveMessageResult;
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.javaagent.instrumentation.rocketmqclient.v5_0;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
public class Timer {
|
||||
public static Timer start() {
|
||||
return new Timer(Instant.now(), System.nanoTime());
|
||||
}
|
||||
|
||||
private final Instant startTime;
|
||||
private final long startNanoTime;
|
||||
|
||||
private Timer(Instant startTime, long startNanoTime) {
|
||||
this.startTime = startTime;
|
||||
this.startNanoTime = startNanoTime;
|
||||
}
|
||||
|
||||
public Instant startTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public Instant now() {
|
||||
long durationNanos = System.nanoTime() - startNanoTime;
|
||||
return startTime().plusNanos(durationNanos);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue