Replace jctools dep in tracing-incubator with shaded jctools (#3730)

This commit is contained in:
Anuraag Agrawal 2021-10-13 00:17:30 +09:00 committed by GitHub
parent 5bc953ec68
commit b6b1853511
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 7 deletions

View File

@ -15,9 +15,10 @@ dependencies {
api(project(":api:all"))
api(project(":sdk:all"))
compileOnly(project(":sdk:trace-shaded-deps"))
implementation(project(":api:metrics"))
implementation(project(":semconv"))
implementation("org.jctools:jctools-core:3.3.0")
annotationProcessor("com.google.auto.value:auto-value")
testImplementation(project(":sdk:testing"))

View File

@ -18,8 +18,10 @@ import io.opentelemetry.sdk.trace.ReadableSpan;
import io.opentelemetry.sdk.trace.SpanProcessor;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentelemetry.sdk.trace.export.SpanExporter;
import io.opentelemetry.sdk.trace.internal.JcTools;
import java.util.ArrayList;
import java.util.List;
import java.util.Queue;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@ -27,7 +29,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Logger;
import org.jctools.queues.MpscArrayQueue;
/**
* A Batch {@link SpanProcessor} that uses a user-provided {@link
@ -85,7 +86,7 @@ public final class ExecutorServiceSpanProcessor implements SpanProcessor {
scheduleDelayNanos,
maxExportBatchSize,
exporterTimeoutNanos,
new MpscArrayQueue<>(maxQueueSize),
JcTools.newFixedSizeQueue(maxQueueSize),
executorService,
isShutdown,
workerScheduleIntervalNanos);
@ -152,7 +153,7 @@ public final class ExecutorServiceSpanProcessor implements SpanProcessor {
private final BoundLongCounter droppedSpans;
private final AtomicReference<CompletableResultCode> flushRequested = new AtomicReference<>();
private final long scheduleDelayNanos;
private final MpscArrayQueue<ReadableSpan> queue;
private final Queue<ReadableSpan> queue;
private final int maxExportBatchSize;
private final SpanExporter spanExporter;
private final ScheduledExecutorService executorService;
@ -162,7 +163,7 @@ public final class ExecutorServiceSpanProcessor implements SpanProcessor {
long scheduleDelayNanos,
int maxExportBatchSize,
long exporterTimeoutNanos,
MpscArrayQueue<ReadableSpan> queue,
Queue<ReadableSpan> queue,
ScheduledExecutorService executorService,
AtomicBoolean isShutdown,
long workerScheduleIntervalNanos) {

View File

@ -10,9 +10,9 @@ import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.trace.ReadableSpan;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentelemetry.sdk.trace.export.SpanExporter;
import java.util.AbstractQueue;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Queue;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
@ -99,7 +99,7 @@ class WorkerExporter {
* @param batch a collection of {@link SpanData} to export
* @param queue {@link ReadableSpan} queue to be drained and then exported
*/
public void flush(Collection<SpanData> batch, AbstractQueue<ReadableSpan> queue) {
public void flush(Collection<SpanData> batch, Queue<ReadableSpan> queue) {
int spansToFlush = queue.size();
while (spansToFlush > 0) {
ReadableSpan span = queue.poll();