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:
		
							parent
							
								
									5be613a3f0
								
							
						
					
					
						commit
						18d45beb4f
					
				| 
						 | 
				
			
			@ -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'),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			@ -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"
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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<io.opentelemetry.sdk.trace.data.SpanData> 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();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -11,7 +11,6 @@ dependencies {
 | 
			
		|||
            libraries.opentracing
 | 
			
		||||
 | 
			
		||||
    testImplementation project(':opentelemetry-sdk-testing'),
 | 
			
		||||
            project(':opentelemetry-exporter-inmemory'),
 | 
			
		||||
            libraries.junit,
 | 
			
		||||
            libraries.assertj,
 | 
			
		||||
            libraries.slf4jsimple
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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")
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,4 @@ dependencies {
 | 
			
		|||
    api libraries.junit_jupiter_api
 | 
			
		||||
 | 
			
		||||
    annotationProcessor libraries.auto_value
 | 
			
		||||
 | 
			
		||||
    implementation project(':opentelemetry-exporter-inmemory')
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -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",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue