Remove inmemory exporter artifact, move to sdk-testing (#1991)

* Remove unused class InMemoryTracing, junit5 helper is enough

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>

* Remove inmemory exporter artifact, move to sdk-tracing

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
This commit is contained in:
Bogdan Drutu 2020-11-04 08:18:01 -08:00 committed by GitHub
parent 5be613a3f0
commit 18d45beb4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 9 additions and 218 deletions

View File

@ -13,7 +13,6 @@ def subprojects = [
project(':opentelemetry-extension-trace-utils'),
project(':opentelemetry-extension-auto-annotations'),
project(':opentelemetry-exporter-logging'),
project(':opentelemetry-exporter-inmemory'),
project(':opentelemetry-exporter-jaeger'),
project(':opentelemetry-exporter-otlp'),
project(':opentelemetry-exporter-prometheus'),

View File

@ -1,8 +0,0 @@
# OpenTelemetry - In-Memory Exporter
[![Javadocs][javadoc-image]][javadoc-url]
* Java 8 compatible.
[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporters-inmemory.svg
[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporters-inmemory

View File

@ -1,20 +0,0 @@
plugins {
id "java"
id "maven-publish"
id "ru.vyarus.animalsniffer"
}
description = 'OpenTelemetry InMemory Export'
ext.moduleName = "io.opentelemetry.exporter.inmemory"
dependencies {
api project(':opentelemetry-sdk')
annotationProcessor libraries.auto_value
testImplementation project(':opentelemetry-sdk-testing')
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -1,91 +0,0 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.exporter.inmemory;
import com.google.auto.value.AutoValue;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.propagation.HttpTraceContext;
import io.opentelemetry.context.propagation.DefaultContextPropagators;
import io.opentelemetry.sdk.trace.TracerSdkManagement;
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
import javax.annotation.concurrent.Immutable;
/**
* InMemoryTracing is an utility class that helps installing the {@link SimpleSpanProcessor} and an
* instance of the {@link InMemorySpanExporter} to a given {@link TracerSdkManagement}. Can be used
* to test OpenTelemetry integration.
*
* <p>Example usage:
*
* <pre><code>
* {@literal @}Test
* public void testCondition() {
* TracerSdkProvider tracerSdkProvider = TracerSdkProvider.builder().build()
* InMemoryTracing tracing =
* InMemoryTracing.builder().setTracerSdkManagement(tracerSdkProvider).build();
* Tracer tracer = tracerSdkProvider.getTracer("MyTestClass");
* tracer.spanBuilder("span").startSpan().end();
*
* List&lt;io.opentelemetry.sdk.trace.data.SpanData&gt; spans = tracing.getFinishedSpanItems();
* assertThat(spans.size()).isEqualTo(1);
* assertThat(spans.get(0).getName()).isEqualTo("span");
* }
* </code></pre>
*/
@AutoValue
@Immutable
public abstract class InMemoryTracing {
/**
* Returns the {@code TracerSdkManagement} passed during construction.
*
* @return the {@code TracerSdkManagement} passed during construction.
*/
abstract TracerSdkManagement getTracerSdkManagement();
/**
* Returns the installed {@link InMemorySpanExporter}.
*
* @return the installed {@link InMemorySpanExporter}.
*/
public abstract InMemorySpanExporter getSpanExporter();
/**
* Returns a new {@link Builder} for {@link InMemoryTracing}.
*
* @return a new {@link Builder} for {@link InMemoryTracing}.
*/
public static Builder builder() {
return new AutoValue_InMemoryTracing.Builder();
}
/** Builder for {@link InMemoryTracing}. */
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder setTracerSdkManagement(TracerSdkManagement tracerSdkManagement);
abstract Builder setSpanExporter(InMemorySpanExporter exporter);
abstract TracerSdkManagement getTracerSdkManagement();
abstract InMemoryTracing autoBuild();
/**
* Builds a new {@link InMemoryTracing} with current settings.
*
* @return a {@code InMemoryTracing}.
*/
public final InMemoryTracing build() {
// install the HttpTraceContext propagator into the API for testing with.
OpenTelemetry.setGlobalPropagators(
DefaultContextPropagators.builder()
.addTextMapPropagator(HttpTraceContext.getInstance())
.build());
InMemorySpanExporter exporter = InMemorySpanExporter.create();
getTracerSdkManagement().addSpanProcessor(SimpleSpanProcessor.builder(exporter).build());
return setSpanExporter(exporter).autoBuild();
}
}
}

View File

@ -1,77 +0,0 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.exporter.inmemory;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.trace.config.TraceConfig;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentelemetry.sdk.trace.samplers.Sampler;
import java.util.List;
import org.junit.jupiter.api.Test;
/** Unit tests for {@link InMemoryTracing}. */
class InMemoryTracingTest {
private final TracerSdkProvider tracerSdkProvider = TracerSdkProvider.builder().build();
private final InMemoryTracing tracing =
InMemoryTracing.builder().setTracerSdkManagement(tracerSdkProvider).build();
private final Tracer tracer = tracerSdkProvider.get("InMemoryTracing");
@Test
void defaultInstance() {
assertThat(tracing.getTracerSdkManagement()).isSameAs(tracerSdkProvider);
assertThat(tracing.getSpanExporter().getFinishedSpanItems()).hasSize(0);
}
@Test
void ctor_nullTracer() {
assertThrows(
NullPointerException.class,
() -> InMemoryTracing.builder().setTracerSdkManagement(null).build(),
"tracerProvider");
}
@Test
void getFinishedSpanItems() {
tracer.spanBuilder("A").startSpan().end();
tracer.spanBuilder("B").startSpan().end();
List<SpanData> finishedSpanItems = tracing.getSpanExporter().getFinishedSpanItems();
assertThat(finishedSpanItems).hasSize(2);
assertThat(finishedSpanItems.get(0).getName()).isEqualTo("A");
assertThat(finishedSpanItems.get(1).getName()).isEqualTo("B");
}
@Test
void getFinishedSpanItems_sampled() {
tracer.spanBuilder("A").startSpan().end();
TraceConfig originalConfig = tracerSdkProvider.getActiveTraceConfig();
tracerSdkProvider.updateActiveTraceConfig(
originalConfig.toBuilder().setSampler(Sampler.alwaysOff()).build());
try {
tracer.spanBuilder("B").startSpan().end();
} finally {
tracerSdkProvider.updateActiveTraceConfig(originalConfig);
}
List<SpanData> finishedSpanItems = tracing.getSpanExporter().getFinishedSpanItems();
assertThat(finishedSpanItems).hasSize(1);
assertThat(finishedSpanItems.get(0).getName()).isEqualTo("A");
}
@Test
void reset() {
tracer.spanBuilder("A").startSpan().end();
tracer.spanBuilder("B").startSpan().end();
assertThat(tracing.getSpanExporter().getFinishedSpanItems()).hasSize(2);
tracing.getSpanExporter().reset();
assertThat(tracing.getSpanExporter().getFinishedSpanItems()).hasSize(0);
}
}

View File

@ -11,7 +11,6 @@ dependencies {
libraries.opentracing
testImplementation project(':opentelemetry-sdk-testing'),
project(':opentelemetry-exporter-inmemory'),
libraries.junit,
libraries.assertj,
libraries.slf4jsimple

View File

@ -16,20 +16,12 @@ ext {
dependencies {
compile project(':opentelemetry-api'),
project(":opentelemetry-sdk"),
project(":opentelemetry-sdk-testing"),
project(":opentelemetry-exporter-otlp"),
project(":opentelemetry-exporter-logging"),
project(":opentelemetry-exporter-inmemory")
// compile("io.opentelemetry:opentelemetry-api:${opentelemetryVersion}")
// compile("io.opentelemetry:opentelemetry-sdk:${opentelemetryVersion}")
// compile("io.opentelemetry:opentelemetry-exporter-otlp:${opentelemetryVersion}")
// compile("io.opentelemetry:opentelemetry-exporter-logging:${opentelemetryVersion}")
// compile("io.opentelemetry:opentelemetry-exporter-inmemory:${opentelemetryVersion}")
project(":opentelemetry-exporter-logging")
compile("io.grpc:grpc-netty-shaded:${grpcVersion}")
compile("eu.rekawek.toxiproxy:toxiproxy-java:2.1.3")
implementation libraries.testcontainers
compile("eu.rekawek.toxiproxy:toxiproxy-java:2.1.3")
}

View File

@ -15,7 +15,6 @@ import io.opentelemetry.api.common.Labels;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.context.Scope;
import io.opentelemetry.exporter.inmemory.InMemoryMetricExporter;
import io.opentelemetry.exporter.otlp.OtlpGrpcSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.metrics.data.MetricData;
@ -23,6 +22,7 @@ import io.opentelemetry.sdk.metrics.data.MetricData.LongPoint;
import io.opentelemetry.sdk.metrics.data.MetricData.Point;
import io.opentelemetry.sdk.metrics.export.IntervalMetricReader;
import io.opentelemetry.sdk.metrics.export.MetricExporter;
import io.opentelemetry.sdk.testing.exporter.InMemoryMetricExporter;
import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;
import java.io.IOException;
import java.util.Collections;

View File

@ -12,6 +12,4 @@ dependencies {
api libraries.junit_jupiter_api
annotationProcessor libraries.auto_value
implementation project(':opentelemetry-exporter-inmemory')
}

View File

@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.exporter.inmemory;
package io.opentelemetry.sdk.testing.exporter;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.metrics.data.MetricData;

View File

@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.exporter.inmemory;
package io.opentelemetry.sdk.testing.exporter;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.trace.data.SpanData;

View File

@ -8,8 +8,8 @@ package io.opentelemetry.sdk.testing.junit5;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.propagation.HttpTraceContext;
import io.opentelemetry.context.propagation.DefaultContextPropagators;
import io.opentelemetry.exporter.inmemory.InMemorySpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
import io.opentelemetry.sdk.trace.TracerSdkManagement;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.trace.data.SpanData;

View File

@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.exporter.inmemory;
package io.opentelemetry.sdk.testing.exporter;
import static org.assertj.core.api.Assertions.assertThat;

View File

@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.exporter.inmemory;
package io.opentelemetry.sdk.testing.exporter;
import static org.assertj.core.api.Assertions.assertThat;

View File

@ -28,7 +28,6 @@ include ":opentelemetry-all",
":opentelemetry-extension-runtime-metrics",
":opentelemetry-extension-trace-propagators",
":opentelemetry-extension-trace-utils",
":opentelemetry-exporter-inmemory",
":opentelemetry-exporter-jaeger",
":opentelemetry-exporter-jaeger-thrift",
":opentelemetry-exporter-logging",