Просмотр исходного кода

Update to OTel 1.10 (#5035)

* Update to OTel 1.10

* Fix metric smoke test

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Anuraag Agrawal 3 лет назад
Родитель
Сommit
c75c01f871
41 измененных файлов с 162 добавлено и 80 удалено
  1. 1 2
      bom-alpha/build.gradle.kts
  2. 3 5
      dependencyManagement/build.gradle.kts
  3. 0 1
      instrumentation-api-annotation-support/build.gradle.kts
  4. 0 1
      instrumentation-api/build.gradle.kts
  5. 0 3
      instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientMetrics.java
  6. 0 3
      instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerMetrics.java
  7. 0 3
      instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientMetrics.java
  8. 0 3
      instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerMetrics.java
  9. 1 1
      instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientMetricsTest.java
  10. 1 1
      instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerMetricsTest.java
  11. 1 1
      instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientMetricsTest.java
  12. 1 1
      instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerMetricsTest.java
  13. 4 2
      instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/TracingRequestStreamWrapper.java
  14. 2 2
      instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/TracingRequestWrapperBase.java
  15. 4 2
      instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/TracingSqsEventWrapper.java
  16. 1 1
      instrumentation/micrometer/micrometer-1.5/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/micrometer/v1_5/CounterTest.java
  17. 1 1
      instrumentation/micrometer/micrometer-1.5/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/micrometer/v1_5/GaugeTest.java
  18. 1 1
      instrumentation/micrometer/micrometer-1.5/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/micrometer/v1_5/TimerTest.java
  19. 8 5
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationDoubleCounterBuilder.java
  20. 8 5
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationDoubleGaugeBuilder.java
  21. 8 5
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationDoubleUpDownCounterBuilder.java
  22. 8 4
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationLongCounterBuilder.java
  23. 8 4
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationLongGaugeBuilder.java
  24. 8 4
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationLongUpDownCounterBuilder.java
  25. 14 0
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableDoubleCounter.java
  26. 14 0
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableDoubleGauge.java
  27. 15 0
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableDoubleUpDownCounter.java
  28. 14 0
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableLongCounter.java
  29. 14 0
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableLongGauge.java
  30. 14 0
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableLongUpDownCounter.java
  31. 3 3
      instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/MeterTest.java
  32. 0 2
      instrumentation/oshi/library/build.gradle.kts
  33. 2 2
      instrumentation/oshi/library/src/test/java/io/opentelemetry/instrumentation/oshi/AbstractMetricsTest.java
  34. 1 1
      instrumentation/oshi/library/src/test/java/io/opentelemetry/instrumentation/oshi/ProcessMetricsTest.java
  35. 1 1
      instrumentation/oshi/library/src/test/java/io/opentelemetry/instrumentation/oshi/SystemMetricsTest.java
  36. 0 2
      instrumentation/runtime-metrics/library/build.gradle.kts
  37. 0 1
      javaagent-tooling/build.gradle.kts
  38. 0 1
      javaagent/build.gradle.kts
  39. 0 4
      licenses/licenses.md
  40. 0 1
      opentelemetry-api-shaded-for-instrumenting/build.gradle.kts
  41. 1 1
      smoke-tests/src/test/java/io/opentelemetry/smoketest/AbstractTestContainerManager.java

+ 1 - 2
bom-alpha/build.gradle.kts

@@ -13,11 +13,10 @@ javaPlatform {
 }
 
 val otelVersion: String by project
-val otelAlphaVersion: String by project
 
 dependencies {
   api(platform("io.opentelemetry:opentelemetry-bom:${otelVersion}"))
-  api(platform("io.opentelemetry:opentelemetry-bom-alpha:${otelAlphaVersion}"))
+  api(platform("io.opentelemetry:opentelemetry-bom-alpha:${otelVersion}-alpha"))
 }
 
 dependencies {

+ 3 - 5
dependencyManagement/build.gradle.kts

@@ -11,10 +11,8 @@ data class DependencySet(val group: String, val version: String, val modules: Li
 val dependencyVersions = hashMapOf<String, String>()
 rootProject.extra["versions"] = dependencyVersions
 
-val otelVersion = "1.10.0-rc.1"
-val otelAlphaVersion = "1.10.0-alpha-rc.1"
+val otelVersion = "1.10.0"
 rootProject.extra["otelVersion"] = otelVersion
-rootProject.extra["otelAlphaVersion"] = otelAlphaVersion
 
 // Need both BOM and -all
 val groovyVersion = "3.0.9"
@@ -38,7 +36,7 @@ val DEPENDENCY_BOMS = listOf(
   "com.google.guava:guava-bom:31.0.1-jre",
   "org.codehaus.groovy:groovy-bom:${groovyVersion}",
   "io.opentelemetry:opentelemetry-bom:${otelVersion}",
-  "io.opentelemetry:opentelemetry-bom-alpha:${otelAlphaVersion}",
+  "io.opentelemetry:opentelemetry-bom-alpha:${otelVersion}-alpha",
   "org.junit:junit-bom:5.8.2"
 )
 
@@ -104,7 +102,7 @@ val DEPENDENCIES = listOf(
   "commons-validator:commons-validator:1.7",
   "io.netty:netty:3.10.6.Final",
   "io.opentelemetry.proto:opentelemetry-proto:0.11.0-alpha",
-  "org.assertj:assertj-core:3.21.0",
+  "org.assertj:assertj-core:3.22.0",
   "org.awaitility:awaitility:4.1.0",
   "com.google.code.findbugs:jsr305:3.0.2",
   "org.codehaus.groovy:groovy-all:${groovyVersion}",

+ 0 - 1
instrumentation-api-annotation-support/build.gradle.kts

@@ -13,7 +13,6 @@ dependencies {
   api("io.opentelemetry:opentelemetry-api")
   api("io.opentelemetry:opentelemetry-semconv")
 
-  implementation("io.opentelemetry:opentelemetry-api-metrics")
   implementation("org.slf4j:slf4j-api")
 
   compileOnly("com.google.auto.value:auto-value-annotations")

+ 0 - 1
instrumentation-api/build.gradle.kts

@@ -27,7 +27,6 @@ dependencies {
   api("io.opentelemetry:opentelemetry-api")
   api("io.opentelemetry:opentelemetry-semconv")
 
-  implementation("io.opentelemetry:opentelemetry-api-metrics")
   implementation("org.slf4j:slf4j-api")
 
   compileOnly("com.google.auto.value:auto-value-annotations")

+ 0 - 3
instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientMetrics.java

@@ -24,9 +24,6 @@ import org.slf4j.LoggerFactory;
  * {@link RequestListener} which keeps track of <a
  * href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/http-metrics.md#http-client">HTTP
  * client metrics</a>.
- *
- * <p>To use this class, you may need to add the {@code opentelemetry-api-metrics} artifact to your
- * dependencies.
  */
 @UnstableApi
 public final class HttpClientMetrics implements RequestListener {

+ 0 - 3
instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerMetrics.java

@@ -26,9 +26,6 @@ import org.slf4j.LoggerFactory;
  * {@link RequestListener} which keeps track of <a
  * href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/http-metrics.md#http-server">HTTP
  * server metrics</a>.
- *
- * <p>To use this class, you may need to add the {@code opentelemetry-api-metrics} artifact to your
- * dependencies.
  */
 @UnstableApi
 public final class HttpServerMetrics implements RequestListener {

+ 0 - 3
instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientMetrics.java

@@ -24,9 +24,6 @@ import org.slf4j.LoggerFactory;
  * {@link RequestListener} which keeps track of <a
  * href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/rpc.md#rpc-client">RPC
  * client metrics</a>.
- *
- * <p>To use this class, you may need to add the {@code opentelemetry-api-metrics} artifact to your
- * dependencies.
  */
 @UnstableApi
 public final class RpcClientMetrics implements RequestListener {

+ 0 - 3
instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerMetrics.java

@@ -24,9 +24,6 @@ import org.slf4j.LoggerFactory;
  * {@link RequestListener} which keeps track of <a
  * href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/rpc.md#rpc-server">RPC
  * server metrics</a>.
- *
- * <p>To use this class, you may need to add the {@code opentelemetry-api-metrics} artifact to your
- * dependencies.
  */
 @UnstableApi
 public final class RpcServerMetrics implements RequestListener {

+ 1 - 1
instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientMetricsTest.java

@@ -5,8 +5,8 @@
 
 package io.opentelemetry.instrumentation.api.instrumenter.http;
 
+import static io.opentelemetry.sdk.testing.assertj.MetricAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.attributeEntry;
-import static io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions.assertThat;
 import static org.awaitility.Awaitility.await;
 
 import io.opentelemetry.api.common.Attributes;

+ 1 - 1
instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerMetricsTest.java

@@ -5,8 +5,8 @@
 
 package io.opentelemetry.instrumentation.api.instrumenter.http;
 
+import static io.opentelemetry.sdk.testing.assertj.MetricAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.attributeEntry;
-import static io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions.assertThat;
 import static org.awaitility.Awaitility.await;
 
 import io.opentelemetry.api.common.Attributes;

+ 1 - 1
instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientMetricsTest.java

@@ -19,7 +19,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.RequestListener;
 import io.opentelemetry.sdk.metrics.SdkMeterProvider;
 import io.opentelemetry.sdk.metrics.data.MetricData;
 import io.opentelemetry.sdk.metrics.testing.InMemoryMetricReader;
-import io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions;
+import io.opentelemetry.sdk.testing.assertj.MetricAssertions;
 import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.Collection;
 import java.util.concurrent.TimeUnit;

+ 1 - 1
instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerMetricsTest.java

@@ -19,7 +19,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.RequestListener;
 import io.opentelemetry.sdk.metrics.SdkMeterProvider;
 import io.opentelemetry.sdk.metrics.data.MetricData;
 import io.opentelemetry.sdk.metrics.testing.InMemoryMetricReader;
-import io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions;
+import io.opentelemetry.sdk.testing.assertj.MetricAssertions;
 import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.Collection;
 import java.util.concurrent.TimeUnit;

+ 4 - 2
instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/TracingRequestStreamWrapper.java

@@ -8,7 +8,7 @@ package io.opentelemetry.instrumentation.awslambda.v1_0;
 import com.amazonaws.services.lambda.runtime.Context;
 import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
 import io.opentelemetry.sdk.OpenTelemetrySdk;
-import io.opentelemetry.sdk.autoconfigure.OpenTelemetrySdkAutoConfiguration;
+import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -24,7 +24,9 @@ public class TracingRequestStreamWrapper extends TracingRequestStreamHandler {
   private final WrappedLambda wrappedLambda;
 
   public TracingRequestStreamWrapper() {
-    this(OpenTelemetrySdkAutoConfiguration.initialize(), WrappedLambda.fromConfiguration());
+    this(
+        AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk(),
+        WrappedLambda.fromConfiguration());
   }
 
   // Visible for testing

+ 2 - 2
instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/TracingRequestWrapperBase.java

@@ -8,7 +8,7 @@ package io.opentelemetry.instrumentation.awslambda.v1_0;
 import com.amazonaws.services.lambda.runtime.Context;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.opentelemetry.sdk.OpenTelemetrySdk;
-import io.opentelemetry.sdk.autoconfigure.OpenTelemetrySdkAutoConfiguration;
+import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.function.BiFunction;
@@ -26,7 +26,7 @@ abstract class TracingRequestWrapperBase<I, O> extends TracingRequestHandler<I,
 
   protected TracingRequestWrapperBase(BiFunction<I, Class, Object> parameterMapper) {
     this(
-        OpenTelemetrySdkAutoConfiguration.initialize(),
+        AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk(),
         WrappedLambda.fromConfiguration(),
         parameterMapper);
   }

+ 4 - 2
instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/TracingSqsEventWrapper.java

@@ -8,7 +8,7 @@ package io.opentelemetry.instrumentation.awslambda.v1_0;
 import com.amazonaws.services.lambda.runtime.Context;
 import com.amazonaws.services.lambda.runtime.events.SQSEvent;
 import io.opentelemetry.sdk.OpenTelemetrySdk;
-import io.opentelemetry.sdk.autoconfigure.OpenTelemetrySdkAutoConfiguration;
+import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
@@ -18,7 +18,9 @@ public class TracingSqsEventWrapper extends TracingSqsEventHandler {
   private final Method targetMethod;
 
   public TracingSqsEventWrapper() {
-    this(OpenTelemetrySdkAutoConfiguration.initialize(), WrappedLambda.fromConfiguration());
+    this(
+        AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk(),
+        WrappedLambda.fromConfiguration());
   }
 
   // Visible for testing

+ 1 - 1
instrumentation/micrometer/micrometer-1.5/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/micrometer/v1_5/CounterTest.java

@@ -5,8 +5,8 @@
 
 package io.opentelemetry.javaagent.instrumentation.micrometer.v1_5;
 
+import static io.opentelemetry.sdk.testing.assertj.MetricAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.attributeEntry;
-import static io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions.assertThat;
 
 import io.micrometer.core.instrument.Counter;
 import io.micrometer.core.instrument.Metrics;

+ 1 - 1
instrumentation/micrometer/micrometer-1.5/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/micrometer/v1_5/GaugeTest.java

@@ -5,8 +5,8 @@
 
 package io.opentelemetry.javaagent.instrumentation.micrometer.v1_5;
 
+import static io.opentelemetry.sdk.testing.assertj.MetricAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.attributeEntry;
-import static io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions.assertThat;
 
 import io.micrometer.core.instrument.Gauge;
 import io.micrometer.core.instrument.Metrics;

+ 1 - 1
instrumentation/micrometer/micrometer-1.5/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/micrometer/v1_5/TimerTest.java

@@ -5,8 +5,8 @@
 
 package io.opentelemetry.javaagent.instrumentation.micrometer.v1_5;
 
+import static io.opentelemetry.sdk.testing.assertj.MetricAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.attributeEntry;
-import static io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions.assertThat;
 
 import io.micrometer.core.instrument.Metrics;
 import io.micrometer.core.instrument.Timer;

+ 8 - 5
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationDoubleCounterBuilder.java

@@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metric
 
 import application.io.opentelemetry.api.metrics.DoubleCounter;
 import application.io.opentelemetry.api.metrics.DoubleCounterBuilder;
+import application.io.opentelemetry.api.metrics.ObservableDoubleCounter;
 import application.io.opentelemetry.api.metrics.ObservableDoubleMeasurement;
 import java.util.function.Consumer;
 
@@ -36,10 +37,12 @@ final class ApplicationDoubleCounterBuilder implements DoubleCounterBuilder {
   }
 
   @Override
-  public void buildWithCallback(Consumer<ObservableDoubleMeasurement> applicationCallback) {
-    agentBuilder.buildWithCallback(
-        agentMeasurement ->
-            applicationCallback.accept(
-                new ApplicationObservableDoubleMeasurement(agentMeasurement)));
+  public ObservableDoubleCounter buildWithCallback(
+      Consumer<ObservableDoubleMeasurement> applicationCallback) {
+    return new ApplicationObservableDoubleCounter(
+        agentBuilder.buildWithCallback(
+            agentMeasurement ->
+                applicationCallback.accept(
+                    new ApplicationObservableDoubleMeasurement(agentMeasurement))));
   }
 }

+ 8 - 5
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationDoubleGaugeBuilder.java

@@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metric
 
 import application.io.opentelemetry.api.metrics.DoubleGaugeBuilder;
 import application.io.opentelemetry.api.metrics.LongGaugeBuilder;
+import application.io.opentelemetry.api.metrics.ObservableDoubleGauge;
 import application.io.opentelemetry.api.metrics.ObservableDoubleMeasurement;
 import java.util.function.Consumer;
 
@@ -36,10 +37,12 @@ final class ApplicationDoubleGaugeBuilder implements DoubleGaugeBuilder {
   }
 
   @Override
-  public void buildWithCallback(Consumer<ObservableDoubleMeasurement> applicationCallback) {
-    agentBuilder.buildWithCallback(
-        agentMeasurement ->
-            applicationCallback.accept(
-                new ApplicationObservableDoubleMeasurement(agentMeasurement)));
+  public ObservableDoubleGauge buildWithCallback(
+      Consumer<ObservableDoubleMeasurement> applicationCallback) {
+    return new ApplicationObservableDoubleGauge(
+        agentBuilder.buildWithCallback(
+            agentMeasurement ->
+                applicationCallback.accept(
+                    new ApplicationObservableDoubleMeasurement(agentMeasurement))));
   }
 }

+ 8 - 5
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationDoubleUpDownCounterBuilder.java

@@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metric
 import application.io.opentelemetry.api.metrics.DoubleUpDownCounter;
 import application.io.opentelemetry.api.metrics.DoubleUpDownCounterBuilder;
 import application.io.opentelemetry.api.metrics.ObservableDoubleMeasurement;
+import application.io.opentelemetry.api.metrics.ObservableDoubleUpDownCounter;
 import java.util.function.Consumer;
 
 final class ApplicationDoubleUpDownCounterBuilder implements DoubleUpDownCounterBuilder {
@@ -37,10 +38,12 @@ final class ApplicationDoubleUpDownCounterBuilder implements DoubleUpDownCounter
   }
 
   @Override
-  public void buildWithCallback(Consumer<ObservableDoubleMeasurement> applicationCallback) {
-    agentBuilder.buildWithCallback(
-        agentMeasurement ->
-            applicationCallback.accept(
-                new ApplicationObservableDoubleMeasurement(agentMeasurement)));
+  public ObservableDoubleUpDownCounter buildWithCallback(
+      Consumer<ObservableDoubleMeasurement> applicationCallback) {
+    return new ApplicationObservableDoubleUpDownCounter(
+        agentBuilder.buildWithCallback(
+            agentMeasurement ->
+                applicationCallback.accept(
+                    new ApplicationObservableDoubleMeasurement(agentMeasurement))));
   }
 }

+ 8 - 4
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationLongCounterBuilder.java

@@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metric
 import application.io.opentelemetry.api.metrics.DoubleCounterBuilder;
 import application.io.opentelemetry.api.metrics.LongCounter;
 import application.io.opentelemetry.api.metrics.LongCounterBuilder;
+import application.io.opentelemetry.api.metrics.ObservableLongCounter;
 import application.io.opentelemetry.api.metrics.ObservableLongMeasurement;
 import java.util.function.Consumer;
 
@@ -42,9 +43,12 @@ final class ApplicationLongCounterBuilder implements LongCounterBuilder {
   }
 
   @Override
-  public void buildWithCallback(Consumer<ObservableLongMeasurement> applicationCallback) {
-    agentBuilder.buildWithCallback(
-        agentMeasurement ->
-            applicationCallback.accept(new ApplicationObservableLongMeasurement(agentMeasurement)));
+  public ObservableLongCounter buildWithCallback(
+      Consumer<ObservableLongMeasurement> applicationCallback) {
+    return new ApplicationObservableLongCounter(
+        agentBuilder.buildWithCallback(
+            agentMeasurement ->
+                applicationCallback.accept(
+                    new ApplicationObservableLongMeasurement(agentMeasurement))));
   }
 }

+ 8 - 4
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationLongGaugeBuilder.java

@@ -6,6 +6,7 @@
 package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics;
 
 import application.io.opentelemetry.api.metrics.LongGaugeBuilder;
+import application.io.opentelemetry.api.metrics.ObservableLongGauge;
 import application.io.opentelemetry.api.metrics.ObservableLongMeasurement;
 import java.util.function.Consumer;
 
@@ -30,9 +31,12 @@ final class ApplicationLongGaugeBuilder implements LongGaugeBuilder {
   }
 
   @Override
-  public void buildWithCallback(Consumer<ObservableLongMeasurement> applicationCallback) {
-    agentBuilder.buildWithCallback(
-        agentMeasurement ->
-            applicationCallback.accept(new ApplicationObservableLongMeasurement(agentMeasurement)));
+  public ObservableLongGauge buildWithCallback(
+      Consumer<ObservableLongMeasurement> applicationCallback) {
+    return new ApplicationObservableLongGauge(
+        agentBuilder.buildWithCallback(
+            agentMeasurement ->
+                applicationCallback.accept(
+                    new ApplicationObservableLongMeasurement(agentMeasurement))));
   }
 }

+ 8 - 4
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationLongUpDownCounterBuilder.java

@@ -9,6 +9,7 @@ import application.io.opentelemetry.api.metrics.DoubleUpDownCounterBuilder;
 import application.io.opentelemetry.api.metrics.LongUpDownCounter;
 import application.io.opentelemetry.api.metrics.LongUpDownCounterBuilder;
 import application.io.opentelemetry.api.metrics.ObservableLongMeasurement;
+import application.io.opentelemetry.api.metrics.ObservableLongUpDownCounter;
 import java.util.function.Consumer;
 
 final class ApplicationLongUpDownCounterBuilder implements LongUpDownCounterBuilder {
@@ -43,9 +44,12 @@ final class ApplicationLongUpDownCounterBuilder implements LongUpDownCounterBuil
   }
 
   @Override
-  public void buildWithCallback(Consumer<ObservableLongMeasurement> applicationCallback) {
-    agentBuilder.buildWithCallback(
-        agentMeasurement ->
-            applicationCallback.accept(new ApplicationObservableLongMeasurement(agentMeasurement)));
+  public ObservableLongUpDownCounter buildWithCallback(
+      Consumer<ObservableLongMeasurement> applicationCallback) {
+    return new ApplicationObservableLongUpDownCounter(
+        agentBuilder.buildWithCallback(
+            agentMeasurement ->
+                applicationCallback.accept(
+                    new ApplicationObservableLongMeasurement(agentMeasurement))));
   }
 }

+ 14 - 0
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableDoubleCounter.java

@@ -0,0 +1,14 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics;
+
+import application.io.opentelemetry.api.metrics.ObservableDoubleCounter;
+
+public final class ApplicationObservableDoubleCounter implements ObservableDoubleCounter {
+
+  public ApplicationObservableDoubleCounter(
+      io.opentelemetry.api.metrics.ObservableDoubleCounter agentCounter) {}
+}

+ 14 - 0
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableDoubleGauge.java

@@ -0,0 +1,14 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics;
+
+import application.io.opentelemetry.api.metrics.ObservableDoubleGauge;
+
+public final class ApplicationObservableDoubleGauge implements ObservableDoubleGauge {
+
+  public ApplicationObservableDoubleGauge(
+      io.opentelemetry.api.metrics.ObservableDoubleGauge agentGauge) {}
+}

+ 15 - 0
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableDoubleUpDownCounter.java

@@ -0,0 +1,15 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics;
+
+import application.io.opentelemetry.api.metrics.ObservableDoubleUpDownCounter;
+
+public final class ApplicationObservableDoubleUpDownCounter
+    implements ObservableDoubleUpDownCounter {
+
+  public ApplicationObservableDoubleUpDownCounter(
+      io.opentelemetry.api.metrics.ObservableDoubleUpDownCounter agentUpDownCounter) {}
+}

+ 14 - 0
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableLongCounter.java

@@ -0,0 +1,14 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics;
+
+import application.io.opentelemetry.api.metrics.ObservableLongCounter;
+
+public final class ApplicationObservableLongCounter implements ObservableLongCounter {
+
+  public ApplicationObservableLongCounter(
+      io.opentelemetry.api.metrics.ObservableLongCounter agentCounter) {}
+}

+ 14 - 0
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableLongGauge.java

@@ -0,0 +1,14 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics;
+
+import application.io.opentelemetry.api.metrics.ObservableLongGauge;
+
+public final class ApplicationObservableLongGauge implements ObservableLongGauge {
+
+  public ApplicationObservableLongGauge(
+      io.opentelemetry.api.metrics.ObservableLongGauge agentGauge) {}
+}

+ 14 - 0
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/ApplicationObservableLongUpDownCounter.java

@@ -0,0 +1,14 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics;
+
+import application.io.opentelemetry.api.metrics.ObservableLongUpDownCounter;
+
+public final class ApplicationObservableLongUpDownCounter implements ObservableLongUpDownCounter {
+
+  public ApplicationObservableLongUpDownCounter(
+      io.opentelemetry.api.metrics.ObservableLongUpDownCounter agentUpDownCounter) {}
+}

+ 3 - 3
instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/metrics/MeterTest.java

@@ -5,8 +5,8 @@
 
 package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics;
 
+import static io.opentelemetry.sdk.testing.assertj.MetricAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.attributeEntry;
-import static io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions.assertThat;
 
 import io.opentelemetry.api.common.AttributeKey;
 import io.opentelemetry.api.common.Attributes;
@@ -237,7 +237,7 @@ class MeterTest {
         .setDescription("d")
         .setUnit("u")
         .buildWithCallback(
-            result -> result.observe(123, Attributes.of(AttributeKey.stringKey("q"), "r")));
+            result -> result.record(123, Attributes.of(AttributeKey.stringKey("q"), "r")));
 
     testing.waitAndAssertMetrics(
         instrumentationName,
@@ -267,7 +267,7 @@ class MeterTest {
         .setDescription("d")
         .setUnit("u")
         .buildWithCallback(
-            result -> result.observe(1.23, Attributes.of(AttributeKey.stringKey("q"), "r")));
+            result -> result.record(1.23, Attributes.of(AttributeKey.stringKey("q"), "r")));
 
     testing.waitAndAssertMetrics(
         instrumentationName,

+ 0 - 2
instrumentation/oshi/library/build.gradle.kts

@@ -3,8 +3,6 @@ plugins {
 }
 
 dependencies {
-  implementation("io.opentelemetry:opentelemetry-api-metrics")
-
   library("com.github.oshi:oshi-core:5.3.1")
 
   testImplementation("io.opentelemetry:opentelemetry-sdk-metrics")

+ 2 - 2
instrumentation/oshi/library/src/test/java/io/opentelemetry/instrumentation/oshi/AbstractMetricsTest.java

@@ -13,8 +13,8 @@ import io.opentelemetry.sdk.OpenTelemetrySdk;
 import io.opentelemetry.sdk.metrics.SdkMeterProvider;
 import io.opentelemetry.sdk.metrics.data.MetricData;
 import io.opentelemetry.sdk.metrics.testing.InMemoryMetricReader;
-import io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions;
-import io.opentelemetry.sdk.testing.assertj.metrics.MetricDataAssert;
+import io.opentelemetry.sdk.testing.assertj.MetricAssertions;
+import io.opentelemetry.sdk.testing.assertj.MetricDataAssert;
 import java.util.Collection;
 import java.util.function.Consumer;
 import org.junit.jupiter.api.AfterAll;

+ 1 - 1
instrumentation/oshi/library/src/test/java/io/opentelemetry/instrumentation/oshi/ProcessMetricsTest.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.instrumentation.oshi;
 
-import static io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions.assertThat;
+import static io.opentelemetry.sdk.testing.assertj.MetricAssertions.assertThat;
 
 import org.junit.jupiter.api.Test;
 

+ 1 - 1
instrumentation/oshi/library/src/test/java/io/opentelemetry/instrumentation/oshi/SystemMetricsTest.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.instrumentation.oshi;
 
-import static io.opentelemetry.sdk.testing.assertj.metrics.MetricAssertions.assertThat;
+import static io.opentelemetry.sdk.testing.assertj.MetricAssertions.assertThat;
 
 import org.junit.jupiter.api.Test;
 

+ 0 - 2
instrumentation/runtime-metrics/library/build.gradle.kts

@@ -3,8 +3,6 @@ plugins {
 }
 
 dependencies {
-  implementation("io.opentelemetry:opentelemetry-api-metrics")
-
   testImplementation("io.opentelemetry:opentelemetry-sdk-metrics")
   testImplementation(project(":testing-common"))
   testImplementation("org.mockito:mockito-core")

+ 0 - 1
javaagent-tooling/build.gradle.kts

@@ -20,7 +20,6 @@ dependencies {
   implementation(project(":muzzle"))
 
   implementation("io.opentelemetry:opentelemetry-api")
-  implementation("io.opentelemetry:opentelemetry-api-metrics")
   implementation("io.opentelemetry:opentelemetry-sdk")
   implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
   implementation("io.opentelemetry:opentelemetry-sdk-metrics")

+ 0 - 1
javaagent/build.gradle.kts

@@ -46,7 +46,6 @@ listOf(baseJavaagentLibs, javaagentLibs, exporterLibs, exporterSlimLibs).forEach
   it.run {
     exclude("org.slf4j")
     exclude("io.opentelemetry", "opentelemetry-api")
-    exclude("io.opentelemetry", "opentelemetry-api-metrics")
     exclude("io.opentelemetry", "opentelemetry-semconv")
   }
 }

+ 0 - 4
licenses/licenses.md

@@ -68,10 +68,6 @@ _2021-11-23 20:07:26 PST_
 > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 
-**12** **Group:** `io.opentelemetry` **Name:** `opentelemetry-api-metrics` **Version:** `1.9.0-alpha` 
-> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
-> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-
 **13** **Group:** `io.opentelemetry` **Name:** `opentelemetry-context` **Version:** `1.9.0` 
 > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)

+ 0 - 1
opentelemetry-api-shaded-for-instrumenting/build.gradle.kts

@@ -9,7 +9,6 @@ group = "io.opentelemetry.javaagent"
 
 dependencies {
   implementation("io.opentelemetry:opentelemetry-api")
-  implementation("io.opentelemetry:opentelemetry-api-metrics")
 }
 
 // OpenTelemetry API shaded so that it can be used in instrumentation of OpenTelemetry API itself,

+ 1 - 1
smoke-tests/src/test/java/io/opentelemetry/smoketest/AbstractTestContainerManager.java

@@ -26,7 +26,7 @@ public abstract class AbstractTestContainerManager implements TestContainerManag
     environment.put(jvmArgsEnvVarName, "-Xmx1g -javaagent:/" + TARGET_AGENT_FILENAME);
     environment.put("OTEL_BSP_MAX_EXPORT_BATCH_SIZE", "1");
     environment.put("OTEL_BSP_SCHEDULE_DELAY", "10ms");
-    environment.put("OTEL_IMR_EXPORT_INTERVAL", "1000");
+    environment.put("OTEL_METRIC_EXPORT_INTERVAL", "1000");
     environment.put("OTEL_EXPORTER_OTLP_ENDPOINT", "http://" + BACKEND_ALIAS + ":8080");
     environment.put("OTEL_RESOURCE_ATTRIBUTES", "service.name=smoke-test");
     environment.put("OTEL_JAVAAGENT_DEBUG", "true");