Browse Source

Update the OpenTelemetry SDK version to 1.27.0 (#8688)

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
OpenTelemetry Bot 1 year ago
parent
commit
bbb05276be
100 changed files with 360 additions and 509 deletions
  1. 0 4
      conventions/src/main/kotlin/io.opentelemetry.instrumentation.javaagent-testing.gradle.kts
  2. 1 1
      dependencyManagement/build.gradle.kts
  3. 0 1
      examples/distro/agent/build.gradle
  4. 1 1
      examples/distro/build.gradle
  5. 0 1
      examples/distro/testing/agent-for-testing/build.gradle
  6. 0 1
      instrumentation-annotations-support/build.gradle.kts
  7. 0 4
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/messaging/MessagingAttributesExtractor.java
  8. 8 1
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/messaging/MessagingAttributesGetter.java
  9. 0 6
      instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/messaging/MessagingAttributesExtractorTest.java
  10. 0 1
      instrumentation-api/build.gradle.kts
  11. 0 1
      instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/KafkaSpanDecorator.java
  12. 0 1
      instrumentation/java-util-logging/javaagent/build.gradle.kts
  13. 7 3
      instrumentation/java-util-logging/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingHelper.java
  14. 1 1
      instrumentation/java-util-logging/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingTest.java
  15. 0 1
      instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/build.gradle.kts
  16. 7 3
      instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/LoggingEventMapper.java
  17. 1 1
      instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/JbossLogmanagerTest.java
  18. 34 36
      instrumentation/jms/jms-1.1/javaagent/src/jms2Test/groovy/Jms2Test.groovy
  19. 44 47
      instrumentation/jms/jms-1.1/javaagent/src/test/groovy/Jms1Test.groovy
  20. 7 16
      instrumentation/jms/jms-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jms/v3_0/Jms3InstrumentationTest.java
  21. 5 9
      instrumentation/jms/jms-common/javaagent-unit-tests/src/test/java/io/opentelemetry/javaagent/instrumentation/jms/MessageWithDestinationTest.java
  22. 0 6
      instrumentation/jms/jms-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsMessageAttributesGetter.java
  23. 3 5
      instrumentation/jms/jms-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessageWithDestination.java
  24. 0 3
      instrumentation/kafka/kafka-clients/kafka-clients-0.11/testing/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaClientBaseTest.java
  25. 0 2
      instrumentation/kafka/kafka-clients/kafka-clients-2.6/library/src/test/java/io/opentelemetry/instrumentation/kafkaclients/v2_6/InterceptorsTest.java
  26. 0 2
      instrumentation/kafka/kafka-clients/kafka-clients-2.6/library/src/test/java/io/opentelemetry/instrumentation/kafkaclients/v2_6/WrapperTest.java
  27. 0 6
      instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaConsumerAttributesGetter.java
  28. 0 6
      instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaProducerAttributesGetter.java
  29. 0 6
      instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaReceiveAttributesGetter.java
  30. 0 6
      instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsDefaultTest.groovy
  31. 0 4
      instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsSuppressReceiveSpansTest.groovy
  32. 0 1
      instrumentation/log4j/log4j-appender-1.2/javaagent/build.gradle.kts
  33. 7 3
      instrumentation/log4j/log4j-appender-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v1_2/LogEventMapper.java
  34. 1 1
      instrumentation/log4j/log4j-appender-1.2/javaagent/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v1_2/Log4j1Test.java
  35. 0 1
      instrumentation/log4j/log4j-appender-2.17/javaagent/build.gradle.kts
  36. 6 2
      instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_17/Log4jHelper.java
  37. 1 1
      instrumentation/log4j/log4j-appender-2.17/javaagent/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/Log4j2Test.java
  38. 1 1
      instrumentation/log4j/log4j-appender-2.17/javaagent/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/Slf4jToLog4jTest.java
  39. 2 13
      instrumentation/log4j/log4j-appender-2.17/library/README.md
  40. 0 4
      instrumentation/log4j/log4j-appender-2.17/library/build.gradle.kts
  41. 6 2
      instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppender.java
  42. 1 1
      instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/internal/LogEventMapper.java
  43. 5 4
      instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppenderConfigTest.java
  44. 0 2
      instrumentation/logback/logback-appender-1.0/javaagent/build.gradle.kts
  45. 2 2
      instrumentation/logback/logback-appender-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/appender/v1_0/LogbackInstrumentation.java
  46. 1 1
      instrumentation/logback/logback-appender-1.0/javaagent/src/test/java/io/opentelemetry/instrumentation/logback/appender/v1_0/LogbackTest.java
  47. 2 13
      instrumentation/logback/logback-appender-1.0/library/README.md
  48. 0 6
      instrumentation/logback/logback-appender-1.0/library/build.gradle.kts
  49. 2 2
      instrumentation/logback/logback-appender-1.0/library/src/main/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppender.java
  50. 1 1
      instrumentation/logback/logback-appender-1.0/library/src/main/java/io/opentelemetry/instrumentation/logback/appender/v1_0/internal/LoggingEventMapper.java
  51. 4 3
      instrumentation/logback/logback-appender-1.0/library/src/slf4j2ApiTest/java/io/opentelemetry/instrumentation/logback/appender/v1_0/Slf4j2Test.java
  52. 4 3
      instrumentation/logback/logback-appender-1.0/library/src/test/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppenderConfigTest.java
  53. 30 9
      instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java
  54. 11 0
      instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/build.gradle.kts
  55. 63 0
      instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java
  56. 7 6
      instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryApiInstrumentationModule.java
  57. 39 0
      instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryInstrumentation.java
  58. 1 1
      instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLogRecordBuilder.java
  59. 1 1
      instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLogger.java
  60. 1 1
      instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLoggerBuilder.java
  61. 3 5
      instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLoggerProvider.java
  62. 1 1
      instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/LogBridging.java
  63. 4 3
      instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/LoggerTest.java
  64. 0 29
      instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/build.gradle.kts
  65. 0 51
      instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/OpenTelemetryLogsInstrumentation.java
  66. 0 6
      instrumentation/pulsar/pulsar-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/telemetry/PulsarBatchMessagingAttributesGetter.java
  67. 0 6
      instrumentation/pulsar/pulsar-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/telemetry/PulsarMessagingAttributesGetter.java
  68. 0 3
      instrumentation/pulsar/pulsar-2.8/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/PulsarClientTest.groovy
  69. 0 6
      instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitChannelAttributesGetter.java
  70. 0 6
      instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitDeliveryAttributesGetter.java
  71. 0 6
      instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitReceiveAttributesGetter.java
  72. 0 1
      instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/RabbitMqTest.groovy
  73. 0 1
      instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/ReactorRabbitMqTest.groovy
  74. 0 3
      instrumentation/reactor/reactor-kafka-1.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/reactor/kafka/v1_0/AbstractReactorKafkaTest.java
  75. 0 6
      instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/library/src/main/java/io/opentelemetry/instrumentation/rocketmqclient/v4_8/RocketMqConsumerAttributeGetter.java
  76. 0 6
      instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/library/src/main/java/io/opentelemetry/instrumentation/rocketmqclient/v4_8/RocketMqProducerAttributeGetter.java
  77. 0 9
      instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/testing/src/main/groovy/io/opentelemetry/instrumentation/rocketmqclient/v4_8/AbstractRocketMqClientTest.groovy
  78. 0 7
      instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rocketmqclient/v5_0/RocketMqConsumerProcessAttributeGetter.java
  79. 0 7
      instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rocketmqclient/v5_0/RocketMqConsumerReceiveAttributeGetter.java
  80. 0 7
      instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rocketmqclient/v5_0/RocketMqProducerAttributeGetter.java
  81. 0 8
      instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0/testing/src/main/java/io/opentelemetry/instrumentation/rocketmqclient/v5_0/AbstractRocketMqClientSuppressReceiveSpanTest.java
  82. 0 23
      instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0/testing/src/main/java/io/opentelemetry/instrumentation/rocketmqclient/v5_0/AbstractRocketMqClientTest.java
  83. 0 1
      instrumentation/runtime-metrics/runtime-metrics-java8/library/build.gradle.kts
  84. 1 1
      instrumentation/rxjava/rxjava-3-common/testing/src/main/java/io/opentelemetry/instrumentation/rxjava/v3/common/AbstractRxJava3Test.java
  85. 0 2
      instrumentation/spring/spring-boot-autoconfigure/build.gradle.kts
  86. 7 6
      instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java
  87. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfigurationTest.java
  88. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/aspects/TraceAspectAutoConfigurationTest.java
  89. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfigurationTest.java
  90. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfigurationTest.java
  91. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfigurationTest.java
  92. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpLogExporterAutoConfigurationTest.java
  93. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpMetricExporterAutoConfigurationTest.java
  94. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpSpanExporterAutoConfigurationTest.java
  95. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfigurationTest.java
  96. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/resttemplate/RestTemplateAutoConfigurationTest.java
  97. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/webclient/WebClientAutoConfigurationTest.java
  98. 0 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/kafka/KafkaIntegrationTest.java
  99. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/metrics/MicrometerShimAutoConfigurationTest.java
  100. 2 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationAutoConfigurationTest.java

+ 0 - 4
conventions/src/main/kotlin/io.opentelemetry.instrumentation.javaagent-testing.gradle.kts

@@ -25,14 +25,10 @@ dependencies {
   compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api") {
     // OpenTelemetry SDK is not needed for compilation
     exclude(group = "io.opentelemetry", module = "opentelemetry-sdk")
-    exclude(group = "io.opentelemetry", module = "opentelemetry-sdk-metrics")
-    exclude(group = "io.opentelemetry", module = "opentelemetry-sdk-logs")
   }
   compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-tooling") {
     // OpenTelemetry SDK is not needed for compilation
     exclude(group = "io.opentelemetry", module = "opentelemetry-sdk")
-    exclude(group = "io.opentelemetry", module = "opentelemetry-sdk-metrics")
-    exclude(group = "io.opentelemetry", module = "opentelemetry-sdk-logs")
   }
 
   // Used by byte-buddy but not brought in as a transitive dependency

+ 1 - 1
dependencyManagement/build.gradle.kts

@@ -12,7 +12,7 @@ val dependencyVersions = hashMapOf<String, String>()
 rootProject.extra["versions"] = dependencyVersions
 
 // this line is managed by .github/scripts/update-sdk-version.sh
-val otelSdkVersion = "1.26.0"
+val otelSdkVersion = "1.27.0"
 val otelSdkAlphaVersion = otelSdkVersion.replaceFirst("(-SNAPSHOT)?$".toRegex(), "-alpha$1")
 
 // Need both BOM and groovy jars

+ 0 - 1
examples/distro/agent/build.gradle

@@ -74,7 +74,6 @@ tasks {
     dependencies {
       exclude("io.opentelemetry:opentelemetry-api")
       exclude("io.opentelemetry:opentelemetry-api-events")
-      exclude("io.opentelemetry:opentelemetry-api-logs")
       exclude("io.opentelemetry:opentelemetry-context")
       exclude("io.opentelemetry:opentelemetry-semconv")
       // metrics advice API

+ 1 - 1
examples/distro/build.gradle

@@ -27,7 +27,7 @@ subprojects {
   ext {
     versions = [
       // this line is managed by .github/scripts/update-sdk-version.sh
-      opentelemetrySdk           : "1.26.0",
+      opentelemetrySdk           : "1.27.0",
 
       // these lines are managed by .github/scripts/update-version.sh
       opentelemetryJavaagent     : "1.27.0-SNAPSHOT",

+ 0 - 1
examples/distro/testing/agent-for-testing/build.gradle

@@ -71,7 +71,6 @@ tasks {
     dependencies {
       exclude("io.opentelemetry:opentelemetry-api")
       exclude("io.opentelemetry:opentelemetry-api-events")
-      exclude("io.opentelemetry:opentelemetry-api-logs")
       exclude("io.opentelemetry:opentelemetry-context")
       exclude("io.opentelemetry:opentelemetry-semconv")
       // metrics advice API

+ 0 - 1
instrumentation-annotations-support/build.gradle.kts

@@ -17,6 +17,5 @@ dependencies {
   annotationProcessor("com.google.auto.value:auto-value")
 
   testImplementation(project(":testing-common"))
-  testImplementation("io.opentelemetry:opentelemetry-sdk-metrics")
   testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
 }

+ 0 - 4
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/messaging/MessagingAttributesExtractor.java

@@ -67,10 +67,6 @@ public final class MessagingAttributesExtractor<REQUEST, RESPONSE>
   @Override
   public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
     internalSet(attributes, SemanticAttributes.MESSAGING_SYSTEM, getter.getSystem(request));
-    internalSet(
-        attributes,
-        SemanticAttributes.MESSAGING_DESTINATION_KIND,
-        getter.getDestinationKind(request));
     boolean isTemporaryDestination = getter.isTemporaryDestination(request);
     if (isTemporaryDestination) {
       internalSet(attributes, SemanticAttributes.MESSAGING_DESTINATION_TEMPORARY, true);

+ 8 - 1
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/messaging/MessagingAttributesGetter.java

@@ -22,8 +22,15 @@ public interface MessagingAttributesGetter<REQUEST, RESPONSE> {
   @Nullable
   String getSystem(REQUEST request);
 
+  /**
+   * @deprecated This method is deprecated and will be removed in a future release. There is no
+   *     replacement for this concept.
+   */
   @Nullable
-  String getDestinationKind(REQUEST request);
+  @Deprecated
+  default String getDestinationKind(REQUEST request) {
+    return null;
+  }
 
   @Nullable
   String getDestination(REQUEST request);

+ 0 - 6
instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/messaging/MessagingAttributesExtractorTest.java

@@ -63,7 +63,6 @@ class MessagingAttributesExtractorTest {
     // then
     List<MapEntry<AttributeKey<?>, Object>> expectedEntries = new ArrayList<>();
     expectedEntries.add(entry(SemanticAttributes.MESSAGING_SYSTEM, "myQueue"));
-    expectedEntries.add(entry(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"));
     expectedEntries.add(entry(SemanticAttributes.MESSAGING_DESTINATION_NAME, expectedDestination));
     if (temporary) {
       expectedEntries.add(entry(SemanticAttributes.MESSAGING_DESTINATION_TEMPORARY, true));
@@ -118,11 +117,6 @@ class MessagingAttributesExtractorTest {
       return request.get("system");
     }
 
-    @Override
-    public String getDestinationKind(Map<String, String> request) {
-      return request.get("destinationKind");
-    }
-
     @Override
     public String getDestination(Map<String, String> request) {
       return request.get("destination");

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

@@ -19,7 +19,6 @@ dependencies {
   annotationProcessor("com.google.auto.value:auto-value")
 
   testImplementation(project(":testing-common"))
-  testImplementation("io.opentelemetry:opentelemetry-sdk-metrics")
   testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
   testImplementation("org.junit-pioneer:junit-pioneer")
 

+ 0 - 1
instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/KafkaSpanDecorator.java

@@ -61,7 +61,6 @@ class KafkaSpanDecorator extends MessagingSpanDecorator {
     super.pre(attributes, exchange, endpoint, camelDirection);
 
     attributes.put(SemanticAttributes.MESSAGING_OPERATION, "process");
-    attributes.put(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic");
 
     Integer partition = exchange.getIn().getHeader(PARTITION, Integer.class);
     if (partition != null) {

+ 0 - 1
instrumentation/java-util-logging/javaagent/build.gradle.kts

@@ -5,7 +5,6 @@ plugins {
 dependencies {
   compileOnly(project(":instrumentation:java-util-logging:shaded-stub-for-instrumenting"))
 
-  compileOnly("io.opentelemetry:opentelemetry-api-logs")
   compileOnly(project(":javaagent-bootstrap"))
 
   // ensure no cross interference

+ 7 - 3
instrumentation/java-util-logging/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingHelper.java

@@ -6,9 +6,9 @@
 package io.opentelemetry.javaagent.instrumentation.jul;
 
 import application.java.util.logging.Logger;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.common.Attributes;
 import io.opentelemetry.api.common.AttributesBuilder;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
 import io.opentelemetry.api.logs.LogRecordBuilder;
 import io.opentelemetry.api.logs.Severity;
 import io.opentelemetry.context.Context;
@@ -41,7 +41,11 @@ public final class JavaUtilLoggingHelper {
       instrumentationName = "ROOT";
     }
     LogRecordBuilder builder =
-        GlobalLoggerProvider.get().loggerBuilder(instrumentationName).build().logRecordBuilder();
+        GlobalOpenTelemetry.get()
+            .getLogsBridge()
+            .loggerBuilder(instrumentationName)
+            .build()
+            .logRecordBuilder();
     mapLogRecord(builder, logRecord);
     builder.emit();
   }
@@ -81,7 +85,7 @@ public final class JavaUtilLoggingHelper {
     Throwable throwable = logRecord.getThrown();
     if (throwable != null) {
       // TODO (trask) extract method for recording exception into
-      // io.opentelemetry:opentelemetry-api-logs
+      // io.opentelemetry:opentelemetry-api
       attributes.put(SemanticAttributes.EXCEPTION_TYPE, throwable.getClass().getName());
       attributes.put(SemanticAttributes.EXCEPTION_MESSAGE, throwable.getMessage());
       StringWriter writer = new StringWriter();

+ 1 - 1
instrumentation/java-util-logging/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingTest.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.javaagent.instrumentation.jul;
 
-import static io.opentelemetry.sdk.testing.assertj.LogAssertions.assertThat;
+import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
 

+ 0 - 1
instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/build.gradle.kts

@@ -14,7 +14,6 @@ muzzle {
 dependencies {
   library("org.jboss.logmanager:jboss-logmanager:1.1.0.GA")
 
-  compileOnly("io.opentelemetry:opentelemetry-api-logs")
   compileOnly(project(":javaagent-bootstrap"))
 
   // ensure no cross interference

+ 7 - 3
instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/LoggingEventMapper.java

@@ -7,10 +7,10 @@ package io.opentelemetry.javaagent.instrumentation.jbosslogmanager.appender.v1_1
 
 import static java.util.Collections.emptyList;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.common.AttributeKey;
 import io.opentelemetry.api.common.Attributes;
 import io.opentelemetry.api.common.AttributesBuilder;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
 import io.opentelemetry.api.logs.LogRecordBuilder;
 import io.opentelemetry.api.logs.Severity;
 import io.opentelemetry.context.Context;
@@ -58,7 +58,11 @@ public final class LoggingEventMapper {
     }
 
     LogRecordBuilder builder =
-        GlobalLoggerProvider.get().loggerBuilder(instrumentationName).build().logRecordBuilder();
+        GlobalOpenTelemetry.get()
+            .getLogsBridge()
+            .loggerBuilder(instrumentationName)
+            .build()
+            .logRecordBuilder();
 
     String message = record.getFormattedMessage();
     if (message != null) {
@@ -76,7 +80,7 @@ public final class LoggingEventMapper {
     Throwable throwable = record.getThrown();
     if (throwable != null) {
       // TODO (trask) extract method for recording exception into
-      // io.opentelemetry:opentelemetry-api-logs
+      // io.opentelemetry:opentelemetry-api
       attributes.put(SemanticAttributes.EXCEPTION_TYPE, throwable.getClass().getName());
       attributes.put(SemanticAttributes.EXCEPTION_MESSAGE, throwable.getMessage());
       StringWriter writer = new StringWriter();

+ 1 - 1
instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/JbossLogmanagerTest.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.javaagent.instrumentation.jbosslogmanager.appender.v1_1;
 
-import static io.opentelemetry.sdk.testing.assertj.LogAssertions.assertThat;
+import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
 import static org.assertj.core.api.Assertions.assertThat;

+ 34 - 36
instrumentation/jms/jms-1.1/javaagent/src/jms2Test/groovy/Jms2Test.groovy

@@ -81,7 +81,7 @@ class Jms2Test extends AgentInstrumentationSpecification {
     server.stop()
   }
 
-  def "sending a message to #destinationName #destinationType generates spans"() {
+  def "sending a message to #destinationName generates spans"() {
     setup:
     def producer = session.createProducer(destination)
     def consumer = session.createConsumer(destination)
@@ -104,7 +104,7 @@ class Jms2Test extends AgentInstrumentationSpecification {
           name "producer parent"
           hasNoParent()
         }
-        producerSpan(it, 1, destinationType, destinationName, span(0))
+        producerSpan(it, 1, destinationName, span(0))
 
         producerSpanData = span(1)
       }
@@ -113,7 +113,7 @@ class Jms2Test extends AgentInstrumentationSpecification {
           name "consumer parent"
           hasNoParent()
         }
-        consumerSpan(it, 1, destinationType, destinationName, messageId, "receive", span(0), producerSpanData)
+        consumerSpan(it, 1, destinationName, messageId, "receive", span(0), producerSpanData)
       }
     }
 
@@ -122,14 +122,14 @@ class Jms2Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
-    session.createTemporaryQueue()   | "queue"         | "(temporary)"
-    session.createTemporaryTopic()   | "topic"         | "(temporary)"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
+    session.createTemporaryQueue()   | "(temporary)"
+    session.createTemporaryTopic()   | "(temporary)"
   }
 
-  def "sending to a MessageListener on #destinationName #destinationType generates a span"() {
+  def "sending to a MessageListener on #destinationName generates a span"() {
     setup:
     def lock = new CountDownLatch(1)
     def messageRef = new AtomicReference<TextMessage>()
@@ -155,8 +155,8 @@ class Jms2Test extends AgentInstrumentationSpecification {
           name "parent"
           hasNoParent()
         }
-        producerSpan(it, 1, destinationType, destinationName, span(0))
-        consumerSpan(it, 2, destinationType, destinationName, messageRef.get().getJMSMessageID(), "process", span(1))
+        producerSpan(it, 1, destinationName, span(0))
+        consumerSpan(it, 2, destinationName, messageRef.get().getJMSMessageID(), "process", span(1))
       }
     }
     // This check needs to go after all traces have been accounted for
@@ -167,14 +167,14 @@ class Jms2Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
-    session.createTemporaryQueue()   | "queue"         | "(temporary)"
-    session.createTemporaryTopic()   | "topic"         | "(temporary)"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
+    session.createTemporaryQueue()   | "(temporary)"
+    session.createTemporaryTopic()   | "(temporary)"
   }
 
-  def "failing to receive message with receiveNoWait on #destinationName #destinationType works"() {
+  def "failing to receive message with receiveNoWait on #destinationName works"() {
     setup:
     def consumer = session.createConsumer(destination)
 
@@ -190,12 +190,12 @@ class Jms2Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
   }
 
-  def "failing to receive message with wait(timeout) on #destinationName #destinationType works"() {
+  def "failing to receive message with wait(timeout) on #destinationName works"() {
     setup:
     def consumer = session.createConsumer(destination)
 
@@ -211,12 +211,12 @@ class Jms2Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
   }
 
-  def "sending a message to #destinationName #destinationType with explicit destination propagates context"() {
+  def "sending a message to #destinationName with explicit destination propagates context"() {
     given:
     def producer = session.createProducer(null)
     def consumer = session.createConsumer(destination)
@@ -244,8 +244,8 @@ class Jms2Test extends AgentInstrumentationSpecification {
           name "parent"
           hasNoParent()
         }
-        producerSpan(it, 1, destinationType, destinationName, span(0))
-        consumerSpan(it, 2, destinationType, destinationName, messageRef.get().getJMSMessageID(), "process", span(1))
+        producerSpan(it, 1, destinationName, span(0))
+        consumerSpan(it, 2, destinationName, messageRef.get().getJMSMessageID(), "process", span(1))
       }
     }
     // This check needs to go after all traces have been accounted for
@@ -256,14 +256,14 @@ class Jms2Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
-    session.createTemporaryQueue()   | "queue"         | "(temporary)"
-    session.createTemporaryTopic()   | "topic"         | "(temporary)"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
+    session.createTemporaryQueue()   | "(temporary)"
+    session.createTemporaryTopic()   | "(temporary)"
   }
 
-  static producerSpan(TraceAssert trace, int index, String destinationType, String destinationName, SpanData parentSpan = null) {
+  static producerSpan(TraceAssert trace, int index, String destinationName, SpanData parentSpan = null) {
     trace.span(index) {
       name destinationName + " send"
       kind PRODUCER
@@ -275,7 +275,6 @@ class Jms2Test extends AgentInstrumentationSpecification {
       attributes {
         "$SemanticAttributes.MESSAGING_SYSTEM" "jms"
         "$SemanticAttributes.MESSAGING_DESTINATION_NAME" destinationName
-        "$SemanticAttributes.MESSAGING_DESTINATION_KIND" destinationType
         if (destinationName == "(temporary)") {
           "$SemanticAttributes.MESSAGING_DESTINATION_TEMPORARY" true
         }
@@ -287,7 +286,7 @@ class Jms2Test extends AgentInstrumentationSpecification {
   // passing messageId = null will verify message.id is not captured,
   // passing messageId = "" will verify message.id is captured (but won't verify anything about the value),
   // any other value for messageId will verify that message.id is captured and has that same value
-  static consumerSpan(TraceAssert trace, int index, String destinationType, String destinationName, String messageId, String operation, SpanData parentSpan, SpanData linkedSpan = null) {
+  static consumerSpan(TraceAssert trace, int index, String destinationName, String messageId, String operation, SpanData parentSpan, SpanData linkedSpan = null) {
     trace.span(index) {
       name destinationName + " " + operation
       kind CONSUMER
@@ -304,7 +303,6 @@ class Jms2Test extends AgentInstrumentationSpecification {
       attributes {
         "$SemanticAttributes.MESSAGING_SYSTEM" "jms"
         "$SemanticAttributes.MESSAGING_DESTINATION_NAME" destinationName
-        "$SemanticAttributes.MESSAGING_DESTINATION_KIND" destinationType
         "$SemanticAttributes.MESSAGING_OPERATION" operation
         if (messageId != null) {
           //In some tests we don't know exact messageId, so we pass "" and verify just the existence of the attribute

+ 44 - 47
instrumentation/jms/jms-1.1/javaagent/src/test/groovy/Jms1Test.groovy

@@ -56,7 +56,7 @@ class Jms1Test extends AgentInstrumentationSpecification {
     broker.stop()
   }
 
-  def "sending a message to #destinationName #destinationType generates spans"() {
+  def "sending a message to #destinationName generates spans"() {
     setup:
     def producer = session.createProducer(destination)
     def consumer = session.createConsumer(destination)
@@ -79,7 +79,7 @@ class Jms1Test extends AgentInstrumentationSpecification {
           name "producer parent"
           hasNoParent()
         }
-        producerSpan(it, 1, destinationType, destinationName, span(0))
+        producerSpan(it, 1, destinationName, span(0))
 
         producerSpanData = span(1)
       }
@@ -88,7 +88,7 @@ class Jms1Test extends AgentInstrumentationSpecification {
           name "consumer parent"
           hasNoParent()
         }
-        consumerSpan(it, 1, destinationType, destinationName, messageId, "receive", span(0), producerSpanData)
+        consumerSpan(it, 1, destinationName, messageId, "receive", span(0), producerSpanData)
       }
     }
 
@@ -97,14 +97,14 @@ class Jms1Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
-    session.createTemporaryQueue()   | "queue"         | "(temporary)"
-    session.createTemporaryTopic()   | "topic"         | "(temporary)"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
+    session.createTemporaryQueue()   | "(temporary)"
+    session.createTemporaryTopic()   | "(temporary)"
   }
 
-  def "sending to a MessageListener on #destinationName #destinationType generates a span"() {
+  def "sending to a MessageListener on #destinationName generates a span"() {
     setup:
     def lock = new CountDownLatch(1)
     def messageRef = new AtomicReference<TextMessage>()
@@ -124,8 +124,8 @@ class Jms1Test extends AgentInstrumentationSpecification {
     expect:
     assertTraces(1) {
       trace(0, 2) {
-        producerSpan(it, 0, destinationType, destinationName)
-        consumerSpan(it, 1, destinationType, destinationName, messageRef.get().getJMSMessageID(), "process", span(0))
+        producerSpan(it, 0, destinationName)
+        consumerSpan(it, 1, destinationName, messageRef.get().getJMSMessageID(), "process", span(0))
       }
     }
     // This check needs to go after all traces have been accounted for
@@ -136,14 +136,14 @@ class Jms1Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
-    session.createTemporaryQueue()   | "queue"         | "(temporary)"
-    session.createTemporaryTopic()   | "topic"         | "(temporary)"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
+    session.createTemporaryQueue()   | "(temporary)"
+    session.createTemporaryTopic()   | "(temporary)"
   }
 
-  def "failing to receive message with receiveNoWait on #destinationName #destinationType works"() {
+  def "failing to receive message with receiveNoWait on #destinationName works"() {
     setup:
     def consumer = session.createConsumer(destination)
 
@@ -159,12 +159,12 @@ class Jms1Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
   }
 
-  def "failing to receive message with wait(timeout) on #destinationName #destinationType works"() {
+  def "failing to receive message with wait(timeout) on #destinationName works"() {
     setup:
     def consumer = session.createConsumer(destination)
 
@@ -180,12 +180,12 @@ class Jms1Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
   }
 
-  def "sending a read-only message to #destinationName #destinationType fails"() {
+  def "sending a read-only message to #destinationName fails"() {
     setup:
     def producer = session.createProducer(destination)
     def consumer = session.createConsumer(destination)
@@ -208,10 +208,10 @@ class Jms1Test extends AgentInstrumentationSpecification {
     // The consumer span will also not be linked to the parent.
     assertTraces(2) {
       trace(0, 1) {
-        producerSpan(it, 0, destinationType, destinationName)
+        producerSpan(it, 0, destinationName)
       }
       trace(1, 1) {
-        consumerSpan(it, 0, destinationType, destinationName, "", "receive", null)
+        consumerSpan(it, 0, destinationName, "", "receive", null)
       }
     }
 
@@ -220,14 +220,14 @@ class Jms1Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
-    session.createTemporaryQueue()   | "queue"         | "(temporary)"
-    session.createTemporaryTopic()   | "topic"         | "(temporary)"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
+    session.createTemporaryQueue()   | "(temporary)"
+    session.createTemporaryTopic()   | "(temporary)"
   }
 
-  def "sending a message to #destinationName #destinationType with explicit destination propagates context"() {
+  def "sending a message to #destinationName with explicit destination propagates context"() {
     given:
     def producer = session.createProducer(null)
     def consumer = session.createConsumer(destination)
@@ -255,8 +255,8 @@ class Jms1Test extends AgentInstrumentationSpecification {
           name "parent"
           hasNoParent()
         }
-        producerSpan(it, 1, destinationType, destinationName, span(0))
-        consumerSpan(it, 2, destinationType, destinationName, messageRef.get().getJMSMessageID(), "process", span(1))
+        producerSpan(it, 1, destinationName, span(0))
+        consumerSpan(it, 2, destinationName, messageRef.get().getJMSMessageID(), "process", span(1))
       }
     }
     // This check needs to go after all traces have been accounted for
@@ -267,17 +267,16 @@ class Jms1Test extends AgentInstrumentationSpecification {
     consumer.close()
 
     where:
-    destination                      | destinationType | destinationName
-    session.createQueue("someQueue") | "queue"         | "someQueue"
-    session.createTopic("someTopic") | "topic"         | "someTopic"
-    session.createTemporaryQueue()   | "queue"         | "(temporary)"
-    session.createTemporaryTopic()   | "topic"         | "(temporary)"
+    destination                      | destinationName
+    session.createQueue("someQueue") | "someQueue"
+    session.createTopic("someTopic") | "someTopic"
+    session.createTemporaryQueue()   | "(temporary)"
+    session.createTemporaryTopic()   | "(temporary)"
   }
 
   def "capture message header as span attribute"() {
     setup:
     def destinationName = "someQueue"
-    def destinationType = "queue"
     def destination = session.createQueue(destinationName)
     def producer = session.createProducer(destination)
     def consumer = session.createConsumer(destination)
@@ -303,7 +302,7 @@ class Jms1Test extends AgentInstrumentationSpecification {
           name "producer parent"
           hasNoParent()
         }
-        producerSpan(it, 1, destinationType, destinationName, span(0), true)
+        producerSpan(it, 1, destinationName, span(0), true)
 
         producerSpanData = span(1)
       }
@@ -312,7 +311,7 @@ class Jms1Test extends AgentInstrumentationSpecification {
           name "consumer parent"
           hasNoParent()
         }
-        consumerSpan(it, 1, destinationType, destinationName, messageId, "receive", span(0), producerSpanData, true)
+        consumerSpan(it, 1, destinationName, messageId, "receive", span(0), producerSpanData, true)
       }
     }
 
@@ -321,7 +320,7 @@ class Jms1Test extends AgentInstrumentationSpecification {
     consumer.close()
   }
 
-  static producerSpan(TraceAssert trace, int index, String destinationType, String destinationName, SpanData parentSpan = null, boolean testHeaders = false) {
+  static producerSpan(TraceAssert trace, int index, String destinationName, SpanData parentSpan = null, boolean testHeaders = false) {
     trace.span(index) {
       name destinationName + " send"
       kind PRODUCER
@@ -333,7 +332,6 @@ class Jms1Test extends AgentInstrumentationSpecification {
       attributes {
         "$SemanticAttributes.MESSAGING_SYSTEM" "jms"
         "$SemanticAttributes.MESSAGING_DESTINATION_NAME" destinationName
-        "$SemanticAttributes.MESSAGING_DESTINATION_KIND" destinationType
         if (destinationName == "(temporary)") {
           "$SemanticAttributes.MESSAGING_DESTINATION_TEMPORARY" true
         }
@@ -349,7 +347,7 @@ class Jms1Test extends AgentInstrumentationSpecification {
   // passing messageId = null will verify message.id is not captured,
   // passing messageId = "" will verify message.id is captured (but won't verify anything about the value),
   // any other value for messageId will verify that message.id is captured and has that same value
-  static consumerSpan(TraceAssert trace, int index, String destinationType, String destinationName, String messageId, String operation, SpanData parentSpan, SpanData linkedSpan = null, boolean testHeaders = false) {
+  static consumerSpan(TraceAssert trace, int index, String destinationName, String messageId, String operation, SpanData parentSpan, SpanData linkedSpan = null, boolean testHeaders = false) {
     trace.span(index) {
       name destinationName + " " + operation
       kind CONSUMER
@@ -366,7 +364,6 @@ class Jms1Test extends AgentInstrumentationSpecification {
       attributes {
         "$SemanticAttributes.MESSAGING_SYSTEM" "jms"
         "$SemanticAttributes.MESSAGING_DESTINATION_NAME" destinationName
-        "$SemanticAttributes.MESSAGING_DESTINATION_KIND" destinationType
         "$SemanticAttributes.MESSAGING_OPERATION" operation
         if (messageId != null) {
           //In some tests we don't know exact messageId, so we pass "" and verify just the existence of the attribute

+ 7 - 16
instrumentation/jms/jms-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jms/v3_0/Jms3InstrumentationTest.java

@@ -107,8 +107,7 @@ class Jms3InstrumentationTest {
 
   @ArgumentsSource(DestinationsProvider.class)
   @ParameterizedTest
-  void testMessageConsumer(
-      DestinationFactory destinationFactory, String destinationKind, boolean isTemporary)
+  void testMessageConsumer(DestinationFactory destinationFactory, boolean isTemporary)
       throws JMSException {
 
     // given
@@ -148,7 +147,6 @@ class Jms3InstrumentationTest {
                           equalTo(
                               SemanticAttributes.MESSAGING_DESTINATION_NAME,
                               producerDestinationName),
-                          equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, destinationKind),
                           equalTo(SemanticAttributes.MESSAGING_MESSAGE_ID, messageId),
                           messagingTempDestination(isTemporary)));
 
@@ -167,15 +165,13 @@ class Jms3InstrumentationTest {
                             equalTo(
                                 SemanticAttributes.MESSAGING_DESTINATION_NAME,
                                 actualDestinationName),
-                            equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, destinationKind),
                             equalTo(SemanticAttributes.MESSAGING_OPERATION, "receive"),
                             equalTo(SemanticAttributes.MESSAGING_MESSAGE_ID, messageId))));
   }
 
   @ArgumentsSource(DestinationsProvider.class)
   @ParameterizedTest
-  void testMessageListener(
-      DestinationFactory destinationFactory, String destinationKind, boolean isTemporary)
+  void testMessageListener(DestinationFactory destinationFactory, boolean isTemporary)
       throws Exception {
 
     // given
@@ -218,7 +214,6 @@ class Jms3InstrumentationTest {
                             equalTo(
                                 SemanticAttributes.MESSAGING_DESTINATION_NAME,
                                 producerDestinationName),
-                            equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, destinationKind),
                             equalTo(SemanticAttributes.MESSAGING_MESSAGE_ID, messageId),
                             messagingTempDestination(isTemporary)),
                 span ->
@@ -230,7 +225,6 @@ class Jms3InstrumentationTest {
                             equalTo(
                                 SemanticAttributes.MESSAGING_DESTINATION_NAME,
                                 actualDestinationName),
-                            equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, destinationKind),
                             equalTo(SemanticAttributes.MESSAGING_OPERATION, "process"),
                             equalTo(SemanticAttributes.MESSAGING_MESSAGE_ID, messageId)),
                 span -> span.hasName("consumer").hasParent(trace.getSpan(2))));
@@ -258,8 +252,7 @@ class Jms3InstrumentationTest {
 
   @ArgumentsSource(DestinationsProvider.class)
   @ParameterizedTest
-  void shouldCaptureMessageHeaders(
-      DestinationFactory destinationFactory, String destinationKind, boolean isTemporary)
+  void shouldCaptureMessageHeaders(DestinationFactory destinationFactory, boolean isTemporary)
       throws Exception {
 
     // given
@@ -304,7 +297,6 @@ class Jms3InstrumentationTest {
                             equalTo(
                                 SemanticAttributes.MESSAGING_DESTINATION_NAME,
                                 producerDestinationName),
-                            equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, destinationKind),
                             equalTo(SemanticAttributes.MESSAGING_MESSAGE_ID, messageId),
                             messagingTempDestination(isTemporary),
                             equalTo(
@@ -322,7 +314,6 @@ class Jms3InstrumentationTest {
                             equalTo(
                                 SemanticAttributes.MESSAGING_DESTINATION_NAME,
                                 actualDestinationName),
-                            equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, destinationKind),
                             equalTo(SemanticAttributes.MESSAGING_OPERATION, "process"),
                             equalTo(SemanticAttributes.MESSAGING_MESSAGE_ID, messageId),
                             equalTo(
@@ -367,10 +358,10 @@ class Jms3InstrumentationTest {
       DestinationFactory tempQueue = Session::createTemporaryQueue;
 
       return Stream.of(
-          arguments(topic, "topic", false),
-          arguments(queue, "queue", false),
-          arguments(tempTopic, "topic", true),
-          arguments(tempQueue, "queue", true));
+          arguments(topic, false),
+          arguments(queue, false),
+          arguments(tempTopic, true),
+          arguments(tempQueue, true));
     }
   }
 

+ 5 - 9
instrumentation/jms/jms-common/javaagent-unit-tests/src/test/java/io/opentelemetry/javaagent/instrumentation/jms/MessageWithDestinationTest.java

@@ -34,7 +34,7 @@ class MessageWithDestinationTest {
     MessageWithDestination result = MessageWithDestination.create(message, null);
 
     // then
-    assertMessage("unknown", "unknown", /* expectedTemporary= */ false, result);
+    assertMessage("unknown", /* expectedTemporary= */ false, result);
   }
 
   @Test
@@ -46,7 +46,7 @@ class MessageWithDestinationTest {
     MessageWithDestination result = MessageWithDestination.create(message, destination);
 
     // then
-    assertMessage("unknown", "unknown", /* expectedTemporary= */ false, result);
+    assertMessage("unknown", /* expectedTemporary= */ false, result);
   }
 
   @ParameterizedTest
@@ -73,7 +73,7 @@ class MessageWithDestinationTest {
     MessageWithDestination result = MessageWithDestination.create(message, null);
 
     // then
-    assertMessage("queue", expectedDestinationName, expectedTemporary, result);
+    assertMessage(expectedDestinationName, expectedTemporary, result);
   }
 
   @ParameterizedTest
@@ -100,7 +100,7 @@ class MessageWithDestinationTest {
     MessageWithDestination result = MessageWithDestination.create(message, null);
 
     // then
-    assertMessage("topic", expectedDestinationName, expectedTemporary, result);
+    assertMessage(expectedDestinationName, expectedTemporary, result);
   }
 
   static Stream<Arguments> destinations() {
@@ -112,13 +112,9 @@ class MessageWithDestinationTest {
   }
 
   private void assertMessage(
-      String expectedDestinationKind,
-      String expectedDestinationName,
-      boolean expectedTemporary,
-      MessageWithDestination actual) {
+      String expectedDestinationName, boolean expectedTemporary, MessageWithDestination actual) {
 
     assertSame(message, actual.message());
-    assertEquals(expectedDestinationKind, actual.destinationKind());
     assertEquals(expectedDestinationName, actual.destinationName());
     assertEquals(expectedTemporary, actual.isTemporaryDestination());
   }

+ 0 - 6
instrumentation/jms/jms-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsMessageAttributesGetter.java

@@ -23,12 +23,6 @@ enum JmsMessageAttributesGetter implements MessagingAttributesGetter<MessageWith
     return "jms";
   }
 
-  @Nullable
-  @Override
-  public String getDestinationKind(MessageWithDestination messageWithDestination) {
-    return messageWithDestination.destinationKind();
-  }
-
   @Nullable
   @Override
   public String getDestination(MessageWithDestination messageWithDestination) {

+ 3 - 5
instrumentation/jms/jms-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessageWithDestination.java

@@ -17,8 +17,6 @@ public abstract class MessageWithDestination {
 
   public abstract String destinationName();
 
-  public abstract String destinationKind();
-
   public abstract boolean isTemporaryDestination();
 
   public static MessageWithDestination create(
@@ -40,7 +38,7 @@ public abstract class MessageWithDestination {
       return createMessageWithTopic(message, jmsDestination);
     }
     return new AutoValue_MessageWithDestination(
-        message, "unknown", "unknown", /* isTemporaryDestination= */ false);
+        message, "unknown", /* isTemporaryDestination= */ false);
   }
 
   private static MessageWithDestination createMessageWithQueue(
@@ -49,7 +47,7 @@ public abstract class MessageWithDestination {
     String queueName = getDestinationName(queue, DestinationAdapter::getQueueName);
     boolean temporary = queue.isTemporaryQueue() || queueName.startsWith(TIBCO_TMP_PREFIX);
 
-    return new AutoValue_MessageWithDestination(message, queueName, "queue", temporary);
+    return new AutoValue_MessageWithDestination(message, queueName, temporary);
   }
 
   private static MessageWithDestination createMessageWithTopic(
@@ -58,7 +56,7 @@ public abstract class MessageWithDestination {
     String topicName = getDestinationName(topic, DestinationAdapter::getTopicName);
     boolean temporary = topic.isTemporaryTopic() || topicName.startsWith(TIBCO_TMP_PREFIX);
 
-    return new AutoValue_MessageWithDestination(message, topicName, "topic", temporary);
+    return new AutoValue_MessageWithDestination(message, topicName, temporary);
   }
 
   private static String getDestinationName(DestinationAdapter destination, NameGetter nameGetter) {

+ 0 - 3
instrumentation/kafka/kafka-clients/kafka-clients-0.11/testing/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaClientBaseTest.java

@@ -158,7 +158,6 @@ public abstract class KafkaClientBaseTest {
             Arrays.asList(
                 equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                 equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, SHARED_TOPIC),
-                equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                 satisfies(
                     SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID,
                     stringAssert -> stringAssert.startsWith("producer")),
@@ -189,7 +188,6 @@ public abstract class KafkaClientBaseTest {
             Arrays.asList(
                 equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                 equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, SHARED_TOPIC),
-                equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                 equalTo(SemanticAttributes.MESSAGING_OPERATION, "receive"),
                 satisfies(
                     SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID,
@@ -218,7 +216,6 @@ public abstract class KafkaClientBaseTest {
             Arrays.asList(
                 equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                 equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, SHARED_TOPIC),
-                equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                 equalTo(SemanticAttributes.MESSAGING_OPERATION, "process"),
                 satisfies(
                     SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID,

+ 0 - 2
instrumentation/kafka/kafka-clients/kafka-clients-2.6/library/src/test/java/io/opentelemetry/instrumentation/kafkaclients/v2_6/InterceptorsTest.java

@@ -85,7 +85,6 @@ class InterceptorsTest extends KafkaClientBaseTest {
                     .hasAttributesSatisfyingExactly(
                         equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                         equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, SHARED_TOPIC),
-                        equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                         satisfies(
                             SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID,
                             stringAssert -> stringAssert.startsWith("producer")));
@@ -97,7 +96,6 @@ class InterceptorsTest extends KafkaClientBaseTest {
                     .hasAttributesSatisfyingExactly(
                         equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                         equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, SHARED_TOPIC),
-                        equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                         equalTo(SemanticAttributes.MESSAGING_OPERATION, "receive"),
                         equalTo(
                             SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES,

+ 0 - 2
instrumentation/kafka/kafka-clients/kafka-clients-2.6/library/src/test/java/io/opentelemetry/instrumentation/kafkaclients/v2_6/WrapperTest.java

@@ -113,7 +113,6 @@ class WrapperTest extends KafkaClientBaseTest {
             Arrays.asList(
                 equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                 equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, SHARED_TOPIC),
-                equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                 satisfies(
                     SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID,
                     stringAssert -> stringAssert.startsWith("producer")),
@@ -138,7 +137,6 @@ class WrapperTest extends KafkaClientBaseTest {
             Arrays.asList(
                 equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                 equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, SHARED_TOPIC),
-                equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                 equalTo(SemanticAttributes.MESSAGING_OPERATION, "receive"),
                 equalTo(
                     SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES,

+ 0 - 6
instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaConsumerAttributesGetter.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.instrumentation.kafka.internal;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -21,11 +20,6 @@ enum KafkaConsumerAttributesGetter implements MessagingAttributesGetter<KafkaPro
     return "kafka";
   }
 
-  @Override
-  public String getDestinationKind(KafkaProcessRequest request) {
-    return SemanticAttributes.MessagingDestinationKindValues.TOPIC;
-  }
-
   @Override
   public String getDestination(KafkaProcessRequest request) {
     return request.getRecord().topic();

+ 0 - 6
instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaProducerAttributesGetter.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.instrumentation.kafka.internal;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -27,11 +26,6 @@ enum KafkaProducerAttributesGetter
     return "kafka";
   }
 
-  @Override
-  public String getDestinationKind(KafkaProducerRequest request) {
-    return SemanticAttributes.MessagingDestinationKindValues.TOPIC;
-  }
-
   @Override
   public String getDestination(KafkaProducerRequest request) {
     return request.getRecord().topic();

+ 0 - 6
instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaReceiveAttributesGetter.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.instrumentation.kafka.internal;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.Set;
@@ -23,11 +22,6 @@ enum KafkaReceiveAttributesGetter implements MessagingAttributesGetter<KafkaRece
     return "kafka";
   }
 
-  @Override
-  public String getDestinationKind(KafkaReceiveRequest request) {
-    return SemanticAttributes.MessagingDestinationKindValues.TOPIC;
-  }
-
   @Override
   @Nullable
   public String getDestination(KafkaReceiveRequest request) {

+ 0 - 6
instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsDefaultTest.groovy

@@ -99,7 +99,6 @@ class KafkaStreamsDefaultTest extends KafkaStreamsBaseTest {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "kafka"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" STREAM_PENDING
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID" { it.startsWith("producer") }
             "$SemanticAttributes.MESSAGING_KAFKA_DESTINATION_PARTITION" { it >= 0 }
             "$SemanticAttributes.MESSAGING_KAFKA_MESSAGE_OFFSET" 0
@@ -118,7 +117,6 @@ class KafkaStreamsDefaultTest extends KafkaStreamsBaseTest {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "kafka"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" STREAM_PENDING
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "receive"
             "$SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID" { it.endsWith("consumer") }
             if (Boolean.getBoolean("testLatestDeps")) {
@@ -136,7 +134,6 @@ class KafkaStreamsDefaultTest extends KafkaStreamsBaseTest {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "kafka"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" STREAM_PENDING
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "process"
             "$SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID" { it.endsWith("consumer") }
             "$SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES" Long
@@ -159,7 +156,6 @@ class KafkaStreamsDefaultTest extends KafkaStreamsBaseTest {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "kafka"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" STREAM_PROCESSED
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID" { it.endsWith("producer") }
             "$SemanticAttributes.MESSAGING_KAFKA_DESTINATION_PARTITION" { it >= 0 }
             "$SemanticAttributes.MESSAGING_KAFKA_MESSAGE_OFFSET" 0
@@ -177,7 +173,6 @@ class KafkaStreamsDefaultTest extends KafkaStreamsBaseTest {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "kafka"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" STREAM_PROCESSED
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "receive"
             "$SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID" { it.startsWith("consumer") }
             if (Boolean.getBoolean("testLatestDeps")) {
@@ -195,7 +190,6 @@ class KafkaStreamsDefaultTest extends KafkaStreamsBaseTest {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "kafka"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" STREAM_PROCESSED
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "process"
             "$SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID" { it.startsWith("consumer") }
             "$SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES" Long

+ 0 - 4
instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsSuppressReceiveSpansTest.groovy

@@ -94,7 +94,6 @@ class KafkaStreamsSuppressReceiveSpansTest extends KafkaStreamsBaseTest {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "kafka"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" STREAM_PENDING
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID" "producer-1"
             "$SemanticAttributes.MESSAGING_KAFKA_DESTINATION_PARTITION" { it >= 0 }
             "$SemanticAttributes.MESSAGING_KAFKA_MESSAGE_OFFSET" 0
@@ -109,7 +108,6 @@ class KafkaStreamsSuppressReceiveSpansTest extends KafkaStreamsBaseTest {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "kafka"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" STREAM_PENDING
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "process"
             "$SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID" { it.endsWith("consumer") }
             "$SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES" Long
@@ -135,7 +133,6 @@ class KafkaStreamsSuppressReceiveSpansTest extends KafkaStreamsBaseTest {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "kafka"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" STREAM_PROCESSED
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID" String
             "$SemanticAttributes.MESSAGING_KAFKA_DESTINATION_PARTITION" { it >= 0 }
             "$SemanticAttributes.MESSAGING_KAFKA_MESSAGE_OFFSET" 0
@@ -149,7 +146,6 @@ class KafkaStreamsSuppressReceiveSpansTest extends KafkaStreamsBaseTest {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "kafka"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" STREAM_PROCESSED
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "process"
             "$SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID" { it.startsWith("consumer") }
             "$SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES" Long

+ 0 - 1
instrumentation/log4j/log4j-appender-1.2/javaagent/build.gradle.kts

@@ -16,7 +16,6 @@ dependencies {
   // 1.2 introduces MDC and there's no version earlier than 1.2.4 available
   library("log4j:log4j:1.2.4")
 
-  compileOnly("io.opentelemetry:opentelemetry-api-logs")
   compileOnly(project(":javaagent-bootstrap"))
 
   testImplementation("org.awaitility:awaitility")

+ 7 - 3
instrumentation/log4j/log4j-appender-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v1_2/LogEventMapper.java

@@ -7,10 +7,10 @@ package io.opentelemetry.javaagent.instrumentation.log4j.appender.v1_2;
 
 import static java.util.Collections.emptyList;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.common.AttributeKey;
 import io.opentelemetry.api.common.Attributes;
 import io.opentelemetry.api.common.AttributesBuilder;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
 import io.opentelemetry.api.logs.LogRecordBuilder;
 import io.opentelemetry.api.logs.Severity;
 import io.opentelemetry.context.Context;
@@ -64,7 +64,11 @@ public final class LogEventMapper {
       instrumentationName = "ROOT";
     }
     LogRecordBuilder builder =
-        GlobalLoggerProvider.get().loggerBuilder(instrumentationName).build().logRecordBuilder();
+        GlobalOpenTelemetry.get()
+            .getLogsBridge()
+            .loggerBuilder(instrumentationName)
+            .build()
+            .logRecordBuilder();
 
     // message
     if (message != null) {
@@ -82,7 +86,7 @@ public final class LogEventMapper {
     // throwable
     if (throwable != null) {
       // TODO (trask) extract method for recording exception into
-      // io.opentelemetry:opentelemetry-api-logs
+      // io.opentelemetry:opentelemetry-api
       attributes.put(SemanticAttributes.EXCEPTION_TYPE, throwable.getClass().getName());
       attributes.put(SemanticAttributes.EXCEPTION_MESSAGE, throwable.getMessage());
       StringWriter writer = new StringWriter();

+ 1 - 1
instrumentation/log4j/log4j-appender-1.2/javaagent/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v1_2/Log4j1Test.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.instrumentation.log4j.appender.v1_2;
 
-import static io.opentelemetry.sdk.testing.assertj.LogAssertions.assertThat;
+import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
 

+ 0 - 1
instrumentation/log4j/log4j-appender-2.17/javaagent/build.gradle.kts

@@ -16,7 +16,6 @@ val testLatestDeps = findProperty("testLatestDeps") as Boolean
 dependencies {
   library("org.apache.logging.log4j:log4j-core:2.17.0")
 
-  compileOnly("io.opentelemetry:opentelemetry-api-logs")
   compileOnly(project(":javaagent-bootstrap"))
 
   implementation(project(":instrumentation:log4j:log4j-appender-2.17:library"))

+ 6 - 2
instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_17/Log4jHelper.java

@@ -7,7 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.log4j.appender.v2_17;
 
 import static java.util.Collections.emptyList;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.logs.LogRecordBuilder;
 import io.opentelemetry.instrumentation.log4j.appender.v2_17.internal.ContextDataAccessor;
 import io.opentelemetry.instrumentation.log4j.appender.v2_17.internal.LogEventMapper;
@@ -59,7 +59,11 @@ public final class Log4jHelper {
       instrumentationName = "ROOT";
     }
     LogRecordBuilder builder =
-        GlobalLoggerProvider.get().loggerBuilder(instrumentationName).build().logRecordBuilder();
+        GlobalOpenTelemetry.get()
+            .getLogsBridge()
+            .loggerBuilder(instrumentationName)
+            .build()
+            .logRecordBuilder();
     Map<String, String> contextData = ThreadContext.getImmutableContext();
     mapper.mapLogEvent(builder, message, level, marker, throwable, contextData);
     builder.emit();

+ 1 - 1
instrumentation/log4j/log4j-appender-2.17/javaagent/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/Log4j2Test.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.instrumentation.log4j.appender.v2_17;
 
-import static io.opentelemetry.sdk.testing.assertj.LogAssertions.assertThat;
+import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
 

+ 1 - 1
instrumentation/log4j/log4j-appender-2.17/javaagent/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/Slf4jToLog4jTest.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.instrumentation.log4j.appender.v2_17;
 
-import static io.opentelemetry.sdk.testing.assertj.LogAssertions.assertThat;
+import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
 

+ 2 - 13
instrumentation/log4j/log4j-appender-2.17/library/README.md

@@ -14,6 +14,7 @@ release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20
 For Maven, add to your `pom.xml` dependencies:
 
 ```xml
+
 <dependencies>
   <dependency>
     <groupId>io.opentelemetry.instrumentation</groupId>
@@ -53,17 +54,5 @@ The following demonstrates how you might configure the appender in your `log4j.x
 </Configuration>
 ```
 
-Next, configure `GlobalLoggerProvider` with an `SdkLoggerProvider` in your application.
-
-```
-SdkLoggerProvider sdkLoggerProvider =
-  SdkLoggerProvider.builder()
-    .setResource(Resource.create(...))
-    .addLogProcessor(...)
-    .build();
-GlobalLoggerProvider.set(sdkLoggerProvider);
-```
-
 In this example Log4j2 log events will be sent to both the console appender and
-the `OpenTelemetryAppender`, which will drop the logs until `GlobalLoggerProvider.set(..)` is
-called. Once initialized, logs will be emitted to a `Logger` obtained from the `SdkLoggerProvider`.
+the `OpenTelemetryAppender`.

+ 0 - 4
instrumentation/log4j/log4j-appender-2.17/library/build.gradle.kts

@@ -3,11 +3,7 @@ plugins {
 }
 
 dependencies {
-  implementation("io.opentelemetry:opentelemetry-api-logs")
-
   library("org.apache.logging.log4j:log4j-core:2.17.0")
 
-  testImplementation("io.opentelemetry:opentelemetry-sdk-logs")
   testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
-  testImplementation("io.opentelemetry:opentelemetry-sdk-logs-testing")
 }

+ 6 - 2
instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppender.java

@@ -8,7 +8,7 @@ package io.opentelemetry.instrumentation.log4j.appender.v2_17;
 import static java.util.Collections.emptyList;
 
 import com.google.errorprone.annotations.CanIgnoreReturnValue;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.logs.LogRecordBuilder;
 import io.opentelemetry.instrumentation.log4j.appender.v2_17.internal.ContextDataAccessor;
 import io.opentelemetry.instrumentation.log4j.appender.v2_17.internal.LogEventMapper;
@@ -146,7 +146,11 @@ public class OpenTelemetryAppender extends AbstractAppender {
       instrumentationName = "ROOT";
     }
     LogRecordBuilder builder =
-        GlobalLoggerProvider.get().loggerBuilder(instrumentationName).build().logRecordBuilder();
+        GlobalOpenTelemetry.get()
+            .getLogsBridge()
+            .loggerBuilder(instrumentationName)
+            .build()
+            .logRecordBuilder();
     ReadOnlyStringMap contextData = event.getContextData();
     mapper.mapLogEvent(
         builder,

+ 1 - 1
instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/internal/LogEventMapper.java

@@ -186,7 +186,7 @@ public final class LogEventMapper<T> {
 
   private static void setThrowable(AttributesBuilder attributes, Throwable throwable) {
     // TODO (trask) extract method for recording exception into
-    // io.opentelemetry:opentelemetry-api-logs
+    // io.opentelemetry:opentelemetry-api
     attributes.put(SemanticAttributes.EXCEPTION_TYPE, throwable.getClass().getName());
     attributes.put(SemanticAttributes.EXCEPTION_MESSAGE, throwable.getMessage());
     StringWriter writer = new StringWriter();

+ 5 - 4
instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppenderConfigTest.java

@@ -6,16 +6,17 @@
 package io.opentelemetry.instrumentation.log4j.appender.v2_17;
 
 import static io.opentelemetry.api.common.AttributeKey.stringKey;
-import static io.opentelemetry.sdk.testing.assertj.LogAssertions.assertThat;
+import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.common.Attributes;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
 import io.opentelemetry.api.logs.Severity;
 import io.opentelemetry.api.trace.Span;
 import io.opentelemetry.api.trace.SpanContext;
 import io.opentelemetry.context.Scope;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
 import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
 import io.opentelemetry.sdk.logs.SdkLoggerProvider;
 import io.opentelemetry.sdk.logs.data.LogRecordData;
@@ -60,8 +61,8 @@ class OpenTelemetryAppenderConfigTest {
             .addLogRecordProcessor(SimpleLogRecordProcessor.create(logRecordExporter))
             .build();
 
-    GlobalLoggerProvider.resetForTest();
-    GlobalLoggerProvider.set(loggerProvider);
+    GlobalOpenTelemetry.resetForTest();
+    GlobalOpenTelemetry.set(OpenTelemetrySdk.builder().setLoggerProvider(loggerProvider).build());
   }
 
   @BeforeEach

+ 0 - 2
instrumentation/logback/logback-appender-1.0/javaagent/build.gradle.kts

@@ -42,12 +42,10 @@ dependencies {
     }
   }
 
-  compileOnly("io.opentelemetry:opentelemetry-api-logs")
   compileOnly(project(":javaagent-bootstrap"))
 
   implementation(project(":instrumentation:logback:logback-appender-1.0:library"))
 
-  testImplementation("io.opentelemetry:opentelemetry-sdk-logs-testing")
   testImplementation("org.awaitility:awaitility")
 }
 

+ 2 - 2
instrumentation/logback/logback-appender-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/appender/v1_0/LogbackInstrumentation.java

@@ -13,7 +13,7 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
 import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
 
 import ch.qos.logback.classic.spi.ILoggingEvent;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.logs.LoggerProvider;
 import io.opentelemetry.javaagent.bootstrap.CallDepth;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
@@ -51,7 +51,7 @@ class LogbackInstrumentation implements TypeInstrumentation {
       // logging framework delegates to another
       callDepth = CallDepth.forClass(LoggerProvider.class);
       if (callDepth.getAndIncrement() == 0) {
-        mapper().emit(GlobalLoggerProvider.get(), event);
+        mapper().emit(GlobalOpenTelemetry.get().getLogsBridge(), event);
       }
     }
 

+ 1 - 1
instrumentation/logback/logback-appender-1.0/javaagent/src/test/java/io/opentelemetry/instrumentation/logback/appender/v1_0/LogbackTest.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.instrumentation.logback.appender.v1_0;
 
-import static io.opentelemetry.sdk.testing.assertj.LogAssertions.assertThat;
+import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
 

+ 2 - 13
instrumentation/logback/logback-appender-1.0/library/README.md

@@ -14,6 +14,7 @@ release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20
 For Maven, add to your `pom.xml` dependencies:
 
 ```xml
+
 <dependencies>
   <dependency>
     <groupId>io.opentelemetry.instrumentation</groupId>
@@ -57,17 +58,5 @@ The following demonstrates how you might configure the appender in your `logback
 </configuration>
 ```
 
-Next, configure `GlobalLoggerProvider` with an `SdkLoggerProvider` in your application.
-
-```
-SdkLoggerProvider sdkLoggerProvider =
-  SdkLoggerProvider.builder()
-    .setResource(Resource.create(...))
-    .addLogProcessor(...)
-    .build();
-GlobalLoggerProvider.set(sdkLoggerProvider);
-```
-
 In this example Logback log events will be sent to both the console appender and
-the `OpenTelemetryAppender`, which will drop the logs until `GlobalLoggerProvider.set(..)` is
-called. Once initialized, logs will be emitted to a `Logger` obtained from the `SdkLoggerProvider`.
+the `OpenTelemetryAppender`.

+ 0 - 6
instrumentation/logback/logback-appender-1.0/library/build.gradle.kts

@@ -5,7 +5,6 @@ plugins {
 
 dependencies {
   compileOnly(project(":muzzle"))
-  implementation("io.opentelemetry:opentelemetry-api-logs")
 
   // pin the version strictly to avoid overriding by dependencyManagement versions
   compileOnly("ch.qos.logback:logback-classic") {
@@ -36,8 +35,6 @@ dependencies {
     }
   }
 
-  testImplementation("io.opentelemetry:opentelemetry-sdk-logs")
-  testImplementation("io.opentelemetry:opentelemetry-sdk-logs-testing")
   testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
 }
 
@@ -63,9 +60,6 @@ testing {
     val slf4j2ApiTest by registering(JvmTestSuite::class) {
       dependencies {
         implementation(project(":instrumentation:logback:logback-appender-1.0:library"))
-        implementation("io.opentelemetry:opentelemetry-api-logs")
-        implementation("io.opentelemetry:opentelemetry-sdk-logs")
-        implementation("io.opentelemetry:opentelemetry-sdk-logs-testing")
         implementation("io.opentelemetry:opentelemetry-sdk-testing")
 
         if (latestDepTest) {

+ 2 - 2
instrumentation/logback/logback-appender-1.0/library/src/main/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppender.java

@@ -9,7 +9,7 @@ import static java.util.Collections.emptyList;
 
 import ch.qos.logback.classic.spi.ILoggingEvent;
 import ch.qos.logback.core.UnsynchronizedAppenderBase;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.instrumentation.logback.appender.v1_0.internal.LoggingEventMapper;
 import java.util.Arrays;
 import java.util.List;
@@ -42,7 +42,7 @@ public class OpenTelemetryAppender extends UnsynchronizedAppenderBase<ILoggingEv
 
   @Override
   protected void append(ILoggingEvent event) {
-    mapper.emit(GlobalLoggerProvider.get(), event);
+    mapper.emit(GlobalOpenTelemetry.get().getLogsBridge(), event);
   }
 
   /**

+ 1 - 1
instrumentation/logback/logback-appender-1.0/library/src/main/java/io/opentelemetry/instrumentation/logback/appender/v1_0/internal/LoggingEventMapper.java

@@ -178,7 +178,7 @@ public final class LoggingEventMapper {
 
   private static void setThrowable(AttributesBuilder attributes, Throwable throwable) {
     // TODO (trask) extract method for recording exception into
-    // io.opentelemetry:opentelemetry-api-logs
+    // io.opentelemetry:opentelemetry-api
     attributes.put(SemanticAttributes.EXCEPTION_TYPE, throwable.getClass().getName());
     attributes.put(SemanticAttributes.EXCEPTION_MESSAGE, throwable.getMessage());
     StringWriter writer = new StringWriter();

+ 4 - 3
instrumentation/logback/logback-appender-1.0/library/src/slf4j2ApiTest/java/io/opentelemetry/instrumentation/logback/appender/v1_0/Slf4j2Test.java

@@ -7,8 +7,9 @@ package io.opentelemetry.instrumentation.logback.appender.v1_0;
 
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.common.AttributeKey;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
 import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
 import io.opentelemetry.sdk.logs.SdkLoggerProvider;
 import io.opentelemetry.sdk.logs.data.LogRecordData;
@@ -43,8 +44,8 @@ public class Slf4j2Test {
             .addLogRecordProcessor(SimpleLogRecordProcessor.create(logRecordExporter))
             .build();
 
-    GlobalLoggerProvider.resetForTest();
-    GlobalLoggerProvider.set(loggerProvider);
+    GlobalOpenTelemetry.resetForTest();
+    GlobalOpenTelemetry.set(OpenTelemetrySdk.builder().setLoggerProvider(loggerProvider).build());
   }
 
   @BeforeEach

+ 4 - 3
instrumentation/logback/logback-appender-1.0/library/src/test/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppenderConfigTest.java

@@ -7,12 +7,13 @@ package io.opentelemetry.instrumentation.logback.appender.v1_0;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.common.AttributeKey;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
 import io.opentelemetry.api.logs.Severity;
 import io.opentelemetry.api.trace.Span;
 import io.opentelemetry.api.trace.SpanContext;
 import io.opentelemetry.context.Scope;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
 import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
 import io.opentelemetry.sdk.logs.SdkLoggerProvider;
 import io.opentelemetry.sdk.logs.data.LogRecordData;
@@ -54,8 +55,8 @@ class OpenTelemetryAppenderConfigTest {
             .addLogRecordProcessor(SimpleLogRecordProcessor.create(logRecordExporter))
             .build();
 
-    GlobalLoggerProvider.resetForTest();
-    GlobalLoggerProvider.set(loggerProvider);
+    GlobalOpenTelemetry.resetForTest();
+    GlobalOpenTelemetry.set(OpenTelemetrySdk.builder().setLoggerProvider(loggerProvider).build());
   }
 
   @BeforeEach

+ 30 - 9
instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java

@@ -10,6 +10,7 @@ import application.io.opentelemetry.api.trace.TracerProvider;
 import application.io.opentelemetry.context.propagation.ContextPropagators;
 import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.propagation.ApplicationContextPropagators;
 import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.ApplicationTracerProvider;
+import javax.annotation.Nullable;
 
 // Our convention for accessing agent package
 @SuppressWarnings("UnnecessarilyFullyQualified")
@@ -18,15 +19,9 @@ public class ApplicationOpenTelemetry implements OpenTelemetry {
   public static final OpenTelemetry INSTANCE;
 
   static {
-    OpenTelemetry instance = null;
-    try {
-      // this class is defined in opentelemetry-api-1.10
-      Class<?> clazz =
-          Class.forName(
-              "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.ApplicationOpenTelemetry110");
-      instance = (OpenTelemetry) clazz.getField("INSTANCE").get(null);
-    } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) {
-      // fall through
+    OpenTelemetry instance = getOpenTelemetry127();
+    if (instance == null) {
+      instance = getOpenTelemetry110();
     }
     if (instance == null) {
       instance = new ApplicationOpenTelemetry();
@@ -56,4 +51,30 @@ public class ApplicationOpenTelemetry implements OpenTelemetry {
   public ContextPropagators getPropagators() {
     return applicationContextPropagators;
   }
+
+  @Nullable
+  private static OpenTelemetry getOpenTelemetry127() {
+    try {
+      // this class is defined in opentelemetry-api-1.27
+      Class<?> clazz =
+          Class.forName(
+              "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127");
+      return (OpenTelemetry) clazz.getField("INSTANCE").get(null);
+    } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) {
+      return null;
+    }
+  }
+
+  @Nullable
+  private static OpenTelemetry getOpenTelemetry110() {
+    try {
+      // this class is defined in opentelemetry-api-1.10
+      Class<?> clazz =
+          Class.forName(
+              "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.ApplicationOpenTelemetry110");
+      return (OpenTelemetry) clazz.getField("INSTANCE").get(null);
+    } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) {
+      return null;
+    }
+  }
 }

+ 11 - 0
instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/build.gradle.kts

@@ -0,0 +1,11 @@
+plugins {
+  id("otel.javaagent-instrumentation")
+}
+
+dependencies {
+  compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "v1_27"))
+  implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent"))
+  implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent"))
+  implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent"))
+  implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent"))
+}

+ 63 - 0
instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java

@@ -0,0 +1,63 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27;
+
+import application.io.opentelemetry.api.OpenTelemetry;
+import application.io.opentelemetry.api.logs.LoggerProvider;
+import application.io.opentelemetry.api.metrics.MeterProvider;
+import application.io.opentelemetry.api.trace.TracerProvider;
+import application.io.opentelemetry.context.propagation.ContextPropagators;
+import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.propagation.ApplicationContextPropagators;
+import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics.ApplicationMeterProvider;
+import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_15.metrics.ApplicationMeterFactory115;
+import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLoggerProvider;
+import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_4.trace.ApplicationTracerProvider14;
+
+public final class ApplicationOpenTelemetry127 implements OpenTelemetry {
+
+  // Accessed with reflection
+  @SuppressWarnings("unused")
+  public static final OpenTelemetry INSTANCE = new ApplicationOpenTelemetry127();
+
+  private final TracerProvider applicationTracerProvider;
+  private final ContextPropagators applicationContextPropagators;
+  private final MeterProvider applicationMeterProvider;
+  private final LoggerProvider applicationLoggerProvider;
+
+  @SuppressWarnings("UnnecessarilyFullyQualified")
+  private ApplicationOpenTelemetry127() {
+    io.opentelemetry.api.OpenTelemetry agentOpenTelemetry =
+        io.opentelemetry.api.GlobalOpenTelemetry.get();
+    applicationTracerProvider =
+        new ApplicationTracerProvider14(agentOpenTelemetry.getTracerProvider());
+    applicationContextPropagators =
+        new ApplicationContextPropagators(agentOpenTelemetry.getPropagators());
+    applicationMeterProvider =
+        new ApplicationMeterProvider(
+            new ApplicationMeterFactory115(), agentOpenTelemetry.getMeterProvider());
+    applicationLoggerProvider = new ApplicationLoggerProvider(agentOpenTelemetry.getLogsBridge());
+  }
+
+  @Override
+  public TracerProvider getTracerProvider() {
+    return applicationTracerProvider;
+  }
+
+  @Override
+  public MeterProvider getMeterProvider() {
+    return applicationMeterProvider;
+  }
+
+  @Override
+  public LoggerProvider getLogsBridge() {
+    return applicationLoggerProvider;
+  }
+
+  @Override
+  public ContextPropagators getPropagators() {
+    return applicationContextPropagators;
+  }
+}

+ 7 - 6
instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/OpenTelemetryApiLogsInstrumentationModule.java → instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryApiInstrumentationModule.java

@@ -3,22 +3,23 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs;
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27;
+
+import static java.util.Collections.singletonList;
 
 import com.google.auto.service.AutoService;
 import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
-import java.util.Collections;
 import java.util.List;
 
 @AutoService(InstrumentationModule.class)
-public class OpenTelemetryApiLogsInstrumentationModule extends InstrumentationModule {
-  public OpenTelemetryApiLogsInstrumentationModule() {
-    super("opentelemetry-api-logs");
+public class OpenTelemetryApiInstrumentationModule extends InstrumentationModule {
+  public OpenTelemetryApiInstrumentationModule() {
+    super("opentelemetry-api", "opentelemetry-api-1.27");
   }
 
   @Override
   public List<TypeInstrumentation> typeInstrumentations() {
-    return Collections.singletonList(new OpenTelemetryLogsInstrumentation());
+    return singletonList(new OpenTelemetryInstrumentation());
   }
 }

+ 39 - 0
instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryInstrumentation.java

@@ -0,0 +1,39 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27;
+
+import static net.bytebuddy.matcher.ElementMatchers.named;
+import static net.bytebuddy.matcher.ElementMatchers.none;
+
+import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
+import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
+import net.bytebuddy.asm.Advice;
+import net.bytebuddy.description.type.TypeDescription;
+import net.bytebuddy.matcher.ElementMatcher;
+
+public class OpenTelemetryInstrumentation implements TypeInstrumentation {
+
+  @Override
+  public ElementMatcher<TypeDescription> typeMatcher() {
+    return named("application.io.opentelemetry.api.GlobalOpenTelemetry");
+  }
+
+  @Override
+  public void transform(TypeTransformer transformer) {
+    transformer.applyAdviceToMethod(
+        none(), OpenTelemetryInstrumentation.class.getName() + "$InitAdvice");
+  }
+
+  @SuppressWarnings({"ReturnValueIgnored", "unused"})
+  public static class InitAdvice {
+    @Advice.OnMethodEnter
+    public static void init() {
+      // the sole purpose of this advice is to ensure that ApplicationOpenTelemetry127 is recognized
+      // as helper class and injected into class loader
+      ApplicationOpenTelemetry127.class.getName();
+    }
+  }
+}

+ 1 - 1
instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLogRecordBuilder.java → instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLogRecordBuilder.java

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge;
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs;
 
 import application.io.opentelemetry.api.common.AttributeKey;
 import application.io.opentelemetry.api.logs.LogRecordBuilder;

+ 1 - 1
instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLogger.java → instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLogger.java

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge;
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs;
 
 import application.io.opentelemetry.api.logs.LogRecordBuilder;
 import application.io.opentelemetry.api.logs.Logger;

+ 1 - 1
instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLoggerBuilder.java → instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLoggerBuilder.java

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge;
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs;
 
 import application.io.opentelemetry.api.logs.Logger;
 import application.io.opentelemetry.api.logs.LoggerBuilder;

+ 3 - 5
instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLoggerProvider.java → instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLoggerProvider.java

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge;
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs;
 
 import application.io.opentelemetry.api.logs.LoggerBuilder;
 import application.io.opentelemetry.api.logs.LoggerProvider;
@@ -12,12 +12,10 @@ import application.io.opentelemetry.api.logs.LoggerProvider;
 @SuppressWarnings("UnnecessarilyFullyQualified")
 public class ApplicationLoggerProvider implements LoggerProvider {
 
-  public static final LoggerProvider INSTANCE = new ApplicationLoggerProvider();
-
   private final io.opentelemetry.api.logs.LoggerProvider agentLoggerProvider;
 
-  public ApplicationLoggerProvider() {
-    this.agentLoggerProvider = io.opentelemetry.api.logs.GlobalLoggerProvider.get();
+  public ApplicationLoggerProvider(io.opentelemetry.api.logs.LoggerProvider agentLoggerProvider) {
+    this.agentLoggerProvider = agentLoggerProvider;
   }
 
   @Override

+ 1 - 1
instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/LogBridging.java → instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/LogBridging.java

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge;
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs;
 
 import application.io.opentelemetry.api.logs.Severity;
 import java.util.EnumMap;

+ 4 - 3
instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/LoggerTest.java → instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/LoggerTest.java

@@ -3,14 +3,14 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs;
+package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.awaitility.Awaitility.await;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.common.AttributeKey;
 import io.opentelemetry.api.common.Attributes;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
 import io.opentelemetry.api.logs.Logger;
 import io.opentelemetry.api.logs.Severity;
 import io.opentelemetry.api.trace.Span;
@@ -39,7 +39,8 @@ class LoggerTest {
   void setupLogger(TestInfo test) {
     instrumentationName = "test-" + test.getDisplayName();
     logger =
-        GlobalLoggerProvider.get()
+        GlobalOpenTelemetry.get()
+            .getLogsBridge()
             .loggerBuilder(instrumentationName)
             .setInstrumentationVersion("1.2.3")
             .setSchemaUrl("http://schema.org")

+ 0 - 29
instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/build.gradle.kts

@@ -1,29 +0,0 @@
-plugins {
-  id("otel.javaagent-instrumentation")
-}
-
-dependencies {
-  // this instrumentation needs to be able to reference both the OpenTelemetry API
-  // that is shaded in the bootstrap class loader (for sending telemetry to the agent),
-  // and the OpenTelemetry API that the user brings (in order to capture that telemetry)
-  //
-  // since (all) instrumentation already uses OpenTelemetry API for sending telemetry to the agent,
-  // this instrumentation uses a "temporarily shaded" OpenTelemetry API to represent the
-  // OpenTelemetry API that the user brings
-  //
-  // then later, after the OpenTelemetry API in the bootstrap class loader is shaded,
-  // the "temporarily shaded" OpenTelemetry API is unshaded, so that it will apply to the
-  // OpenTelemetry API that the user brings
-  //
-  // so in the code "application.io.opentelemetry.*" refers to the (unshaded) OpenTelemetry API that
-  // the application brings (as those references will be translated during the build to remove the
-  // "application." prefix)
-  //
-  // and in the code "io.opentelemetry.*" refers to the (shaded) OpenTelemetry API that is used by
-  // the agent (as those references will later be shaded)
-  compileOnly("io.opentelemetry:opentelemetry-api-logs")
-  compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "shadow"))
-  implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent"))
-
-  testImplementation("io.opentelemetry:opentelemetry-sdk-logs")
-}

+ 0 - 51
instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/OpenTelemetryLogsInstrumentation.java

@@ -1,51 +0,0 @@
-/*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs;
-
-import static net.bytebuddy.matcher.ElementMatchers.isMethod;
-import static net.bytebuddy.matcher.ElementMatchers.isStatic;
-import static net.bytebuddy.matcher.ElementMatchers.named;
-import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
-
-import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
-import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
-import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge.ApplicationLoggerProvider;
-import net.bytebuddy.asm.Advice;
-import net.bytebuddy.description.type.TypeDescription;
-import net.bytebuddy.matcher.ElementMatcher;
-
-// Our convention for accessing agent package
-@SuppressWarnings("UnnecessarilyFullyQualified")
-public class OpenTelemetryLogsInstrumentation implements TypeInstrumentation {
-
-  @Override
-  public ElementMatcher<TypeDescription> typeMatcher() {
-    return named("application.io.opentelemetry.api.logs.GlobalLoggerProvider");
-  }
-
-  @Override
-  public void transform(TypeTransformer transformer) {
-    transformer.applyAdviceToMethod(
-        isMethod().and(isStatic()).and(named("get")).and(takesArguments(0)),
-        OpenTelemetryLogsInstrumentation.class.getName() + "$GetGlobalLogsAdvice");
-  }
-
-  @SuppressWarnings("unused")
-  public static class GetGlobalLogsAdvice {
-
-    @Advice.OnMethodEnter(skipOn = Advice.OnDefaultValue.class)
-    public static Object onEnter() {
-      return null;
-    }
-
-    @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
-    public static void methodExit(
-        @Advice.Return(readOnly = false)
-            application.io.opentelemetry.api.logs.LoggerProvider loggerProvider) {
-      loggerProvider = ApplicationLoggerProvider.INSTANCE;
-    }
-  }
-}

+ 0 - 6
instrumentation/pulsar/pulsar-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/telemetry/PulsarBatchMessagingAttributesGetter.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.javaagent.instrumentation.pulsar.v2_8.telemetry;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -22,11 +21,6 @@ enum PulsarBatchMessagingAttributesGetter
     return "pulsar";
   }
 
-  @Override
-  public String getDestinationKind(PulsarBatchRequest request) {
-    return SemanticAttributes.MessagingDestinationKindValues.TOPIC;
-  }
-
   @Nullable
   @Override
   public String getDestination(PulsarBatchRequest request) {

+ 0 - 6
instrumentation/pulsar/pulsar-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/telemetry/PulsarMessagingAttributesGetter.java

@@ -9,7 +9,6 @@ import static java.util.Collections.emptyList;
 import static java.util.Collections.singletonList;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.List;
 import javax.annotation.Nullable;
 import org.apache.pulsar.client.api.Message;
@@ -22,11 +21,6 @@ enum PulsarMessagingAttributesGetter implements MessagingAttributesGetter<Pulsar
     return "pulsar";
   }
 
-  @Override
-  public String getDestinationKind(PulsarRequest request) {
-    return SemanticAttributes.MessagingDestinationKindValues.TOPIC;
-  }
-
   @Nullable
   @Override
   public String getDestination(PulsarRequest request) {

+ 0 - 3
instrumentation/pulsar/pulsar-2.8/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/PulsarClientTest.groovy

@@ -586,7 +586,6 @@ class PulsarClientTest extends AgentInstrumentationSpecification {
         "$SemanticAttributes.MESSAGING_SYSTEM" "pulsar"
         "$SemanticAttributes.NET_PEER_NAME" brokerHost
         "$SemanticAttributes.NET_PEER_PORT" brokerPort
-        "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
         "$SemanticAttributes.MESSAGING_DESTINATION_NAME" destination
         if (msgId == String) {
           "$SemanticAttributes.MESSAGING_MESSAGE_ID" String
@@ -622,7 +621,6 @@ class PulsarClientTest extends AgentInstrumentationSpecification {
       }
       attributes {
         "$SemanticAttributes.MESSAGING_SYSTEM" "pulsar"
-        "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
         "$SemanticAttributes.NET_PEER_NAME" brokerHost
         "$SemanticAttributes.NET_PEER_PORT" brokerPort
         "$SemanticAttributes.MESSAGING_DESTINATION_NAME" destination
@@ -655,7 +653,6 @@ class PulsarClientTest extends AgentInstrumentationSpecification {
       childOf parentSpan
       attributes {
         "$SemanticAttributes.MESSAGING_SYSTEM" "pulsar"
-        "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
         "$SemanticAttributes.MESSAGING_DESTINATION_NAME" destination
         if (msgId == String) {
           "$SemanticAttributes.MESSAGING_MESSAGE_ID" String

+ 0 - 6
instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitChannelAttributesGetter.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.javaagent.instrumentation.rabbitmq;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.Collections;
 import java.util.List;
 import javax.annotation.Nullable;
@@ -19,11 +18,6 @@ enum RabbitChannelAttributesGetter implements MessagingAttributesGetter<ChannelA
     return "rabbitmq";
   }
 
-  @Override
-  public String getDestinationKind(ChannelAndMethod channelAndMethod) {
-    return SemanticAttributes.MessagingDestinationKindValues.QUEUE;
-  }
-
   @Nullable
   @Override
   public String getDestination(ChannelAndMethod channelAndMethod) {

+ 0 - 6
instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitDeliveryAttributesGetter.java

@@ -9,7 +9,6 @@ import static java.util.Collections.emptyList;
 import static java.util.Collections.singletonList;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.List;
 import java.util.Map;
 import javax.annotation.Nullable;
@@ -22,11 +21,6 @@ enum RabbitDeliveryAttributesGetter implements MessagingAttributesGetter<Deliver
     return "rabbitmq";
   }
 
-  @Override
-  public String getDestinationKind(DeliveryRequest request) {
-    return SemanticAttributes.MessagingDestinationKindValues.QUEUE;
-  }
-
   @Nullable
   @Override
   public String getDestination(DeliveryRequest request) {

+ 0 - 6
instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitReceiveAttributesGetter.java

@@ -7,7 +7,6 @@ package io.opentelemetry.javaagent.instrumentation.rabbitmq;
 
 import com.rabbitmq.client.GetResponse;
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.Collections;
 import java.util.List;
 import javax.annotation.Nullable;
@@ -21,11 +20,6 @@ enum RabbitReceiveAttributesGetter
     return "rabbitmq";
   }
 
-  @Override
-  public String getDestinationKind(ReceiveRequest request) {
-    return SemanticAttributes.MessagingDestinationKindValues.QUEUE;
-  }
-
   @Nullable
   @Override
   public String getDestination(ReceiveRequest request) {

+ 0 - 1
instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/RabbitMqTest.groovy

@@ -426,7 +426,6 @@ class RabbitMqTest extends AgentInstrumentationSpecification implements WithRabb
 
         "$SemanticAttributes.MESSAGING_SYSTEM" "rabbitmq"
         "$SemanticAttributes.MESSAGING_DESTINATION_NAME" exchange
-        "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "queue"
 
         "$SemanticAttributes.MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY" { it == null || it == routingKey || it.startsWith("amq.gen-") }
         if (operation != null && operation != "send") {

+ 0 - 1
instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/ReactorRabbitMqTest.groovy

@@ -42,7 +42,6 @@ class ReactorRabbitMqTest extends AgentInstrumentationSpecification implements W
             "$SemanticAttributes.NET_SOCK_PEER_PORT" Long
             "$SemanticAttributes.NET_SOCK_FAMILY" { it == SemanticAttributes.NetSockFamilyValues.INET6 || it == null }
             "$SemanticAttributes.MESSAGING_SYSTEM" "rabbitmq"
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "queue"
             "rabbitmq.command" "exchange.declare"
           }
         }

+ 0 - 3
instrumentation/reactor/reactor-kafka-1.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/reactor/kafka/v1_0/AbstractReactorKafkaTest.java

@@ -180,7 +180,6 @@ public abstract class AbstractReactorKafkaTest {
             asList(
                 equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                 equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, record.topic()),
-                equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                 satisfies(
                     SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID,
                     stringAssert -> stringAssert.startsWith("producer")),
@@ -203,7 +202,6 @@ public abstract class AbstractReactorKafkaTest {
             asList(
                 equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                 equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, topic),
-                equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                 equalTo(SemanticAttributes.MESSAGING_OPERATION, "receive"),
                 satisfies(
                     SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID,
@@ -225,7 +223,6 @@ public abstract class AbstractReactorKafkaTest {
             asList(
                 equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                 equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, record.topic()),
-                equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                 equalTo(SemanticAttributes.MESSAGING_OPERATION, "process"),
                 satisfies(
                     SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID,

+ 0 - 6
instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/library/src/main/java/io/opentelemetry/instrumentation/rocketmqclient/v4_8/RocketMqConsumerAttributeGetter.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.instrumentation.rocketmqclient.v4_8;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.Collections;
 import java.util.List;
 import javax.annotation.Nullable;
@@ -20,11 +19,6 @@ enum RocketMqConsumerAttributeGetter implements MessagingAttributesGetter<Messag
     return "rocketmq";
   }
 
-  @Override
-  public String getDestinationKind(MessageExt request) {
-    return SemanticAttributes.MessagingDestinationKindValues.TOPIC;
-  }
-
   @Override
   public String getDestination(MessageExt request) {
     return request.getTopic();

+ 0 - 6
instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/library/src/main/java/io/opentelemetry/instrumentation/rocketmqclient/v4_8/RocketMqProducerAttributeGetter.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.instrumentation.rocketmqclient.v4_8;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.Collections;
 import java.util.List;
 import javax.annotation.Nullable;
@@ -23,11 +22,6 @@ enum RocketMqProducerAttributeGetter
     return "rocketmq";
   }
 
-  @Override
-  public String getDestinationKind(SendMessageContext sendMessageContext) {
-    return SemanticAttributes.MessagingDestinationKindValues.TOPIC;
-  }
-
   @Nullable
   @Override
   public String getDestination(SendMessageContext sendMessageContext) {

+ 0 - 9
instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/testing/src/main/groovy/io/opentelemetry/instrumentation/rocketmqclient/v4_8/AbstractRocketMqClientTest.groovy

@@ -106,7 +106,6 @@ abstract class AbstractRocketMqClientTest extends InstrumentationSpecification {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "rocketmq"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" sharedTopic
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_MESSAGE_ID" String
             "$SemanticAttributes.MESSAGING_ROCKETMQ_MESSAGE_TAG" "TagA"
             "messaging.rocketmq.broker_address" String
@@ -120,7 +119,6 @@ abstract class AbstractRocketMqClientTest extends InstrumentationSpecification {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "rocketmq"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" sharedTopic
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "process"
             "$SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES" Long
             "$SemanticAttributes.MESSAGING_MESSAGE_ID" String
@@ -162,7 +160,6 @@ abstract class AbstractRocketMqClientTest extends InstrumentationSpecification {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "rocketmq"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" sharedTopic
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_MESSAGE_ID" String
             "$SemanticAttributes.MESSAGING_ROCKETMQ_MESSAGE_TAG" "TagA"
             "messaging.rocketmq.broker_address" String
@@ -176,7 +173,6 @@ abstract class AbstractRocketMqClientTest extends InstrumentationSpecification {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "rocketmq"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" sharedTopic
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "process"
             "$SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES" Long
             "$SemanticAttributes.MESSAGING_MESSAGE_ID" String
@@ -240,7 +236,6 @@ abstract class AbstractRocketMqClientTest extends InstrumentationSpecification {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "rocketmq"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" sharedTopic
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_MESSAGE_ID" String
             "messaging.rocketmq.broker_address" String
             "messaging.rocketmq.send_result" "SEND_OK"
@@ -263,7 +258,6 @@ abstract class AbstractRocketMqClientTest extends InstrumentationSpecification {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "rocketmq"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" sharedTopic
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "process"
             "$SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES" Long
             "$SemanticAttributes.MESSAGING_MESSAGE_ID" String
@@ -281,7 +275,6 @@ abstract class AbstractRocketMqClientTest extends InstrumentationSpecification {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "rocketmq"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" sharedTopic
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "process"
             "$SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES" Long
             "$SemanticAttributes.MESSAGING_MESSAGE_ID" String
@@ -327,7 +320,6 @@ abstract class AbstractRocketMqClientTest extends InstrumentationSpecification {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "rocketmq"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" sharedTopic
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_MESSAGE_ID" String
             "$SemanticAttributes.MESSAGING_ROCKETMQ_MESSAGE_TAG" "TagA"
             "messaging.rocketmq.broker_address" String
@@ -342,7 +334,6 @@ abstract class AbstractRocketMqClientTest extends InstrumentationSpecification {
           attributes {
             "$SemanticAttributes.MESSAGING_SYSTEM" "rocketmq"
             "$SemanticAttributes.MESSAGING_DESTINATION_NAME" sharedTopic
-            "$SemanticAttributes.MESSAGING_DESTINATION_KIND" "topic"
             "$SemanticAttributes.MESSAGING_OPERATION" "process"
             "$SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES" Long
             "$SemanticAttributes.MESSAGING_MESSAGE_ID" String

+ 0 - 7
instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rocketmqclient/v5_0/RocketMqConsumerProcessAttributeGetter.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.javaagent.instrumentation.rocketmqclient.v5_0;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.Collections;
 import java.util.List;
 import javax.annotation.Nullable;
@@ -23,12 +22,6 @@ enum RocketMqConsumerProcessAttributeGetter
     return "rocketmq";
   }
 
-  @Nullable
-  @Override
-  public String getDestinationKind(MessageView messageView) {
-    return SemanticAttributes.MessagingDestinationKindValues.TOPIC;
-  }
-
   @Nullable
   @Override
   public String getDestination(MessageView messageView) {

+ 0 - 7
instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rocketmqclient/v5_0/RocketMqConsumerReceiveAttributeGetter.java

@@ -7,7 +7,6 @@ package io.opentelemetry.javaagent.instrumentation.rocketmqclient.v5_0;
 
 import apache.rocketmq.v2.ReceiveMessageRequest;
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.List;
 import javax.annotation.Nullable;
 import org.apache.rocketmq.client.apis.message.MessageView;
@@ -22,12 +21,6 @@ enum RocketMqConsumerReceiveAttributeGetter
     return "rocketmq";
   }
 
-  @Nullable
-  @Override
-  public String getDestinationKind(ReceiveMessageRequest request) {
-    return SemanticAttributes.MessagingDestinationKindValues.TOPIC;
-  }
-
   @Nullable
   @Override
   public String getDestination(ReceiveMessageRequest request) {

+ 0 - 7
instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rocketmqclient/v5_0/RocketMqProducerAttributeGetter.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.javaagent.instrumentation.rocketmqclient.v5_0;
 
 import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.Collections;
 import java.util.List;
 import javax.annotation.Nullable;
@@ -23,12 +22,6 @@ enum RocketMqProducerAttributeGetter
     return "rocketmq";
   }
 
-  @Nullable
-  @Override
-  public String getDestinationKind(PublishingMessageImpl message) {
-    return SemanticAttributes.MessagingDestinationKindValues.TOPIC;
-  }
-
   @Nullable
   @Override
   public String getDestination(PublishingMessageImpl message) {

+ 0 - 8
instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0/testing/src/main/java/io/opentelemetry/instrumentation/rocketmqclient/v5_0/AbstractRocketMqClientSuppressReceiveSpanTest.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.instrumentation.rocketmqclient.v5_0;
 
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
-import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.MESSAGING_DESTINATION_KIND;
 import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.MESSAGING_DESTINATION_NAME;
 import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.MESSAGING_MESSAGE_ID;
 import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES;
@@ -22,7 +21,6 @@ import io.opentelemetry.api.trace.SpanKind;
 import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
 import io.opentelemetry.instrumentation.testing.util.ThrowingSupplier;
 import io.opentelemetry.sdk.trace.data.StatusData;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.nio.charset.StandardCharsets;
 import java.time.Duration;
 import java.util.Arrays;
@@ -123,9 +121,6 @@ public abstract class AbstractRocketMqClientSuppressReceiveSpanTest {
                                     equalTo(
                                         MESSAGING_MESSAGE_ID,
                                         sendReceipt.getMessageId().toString()),
-                                    equalTo(
-                                        MESSAGING_DESTINATION_KIND,
-                                        SemanticAttributes.MessagingDestinationKindValues.TOPIC),
                                     equalTo(MESSAGING_DESTINATION_NAME, topic)),
                         span ->
                             span.hasKind(SpanKind.CONSUMER)
@@ -143,9 +138,6 @@ public abstract class AbstractRocketMqClientSuppressReceiveSpanTest {
                                     equalTo(
                                         MESSAGING_MESSAGE_ID,
                                         sendReceipt.getMessageId().toString()),
-                                    equalTo(
-                                        MESSAGING_DESTINATION_KIND,
-                                        SemanticAttributes.MessagingDestinationKindValues.TOPIC),
                                     equalTo(MESSAGING_DESTINATION_NAME, topic),
                                     equalTo(MESSAGING_OPERATION, "process")),
                         span ->

+ 0 - 23
instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0/testing/src/main/java/io/opentelemetry/instrumentation/rocketmqclient/v5_0/AbstractRocketMqClientTest.java

@@ -7,7 +7,6 @@ package io.opentelemetry.instrumentation.rocketmqclient.v5_0;
 
 import static io.opentelemetry.instrumentation.testing.util.TelemetryDataUtil.orderByRootSpanKind;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
-import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.MESSAGING_DESTINATION_KIND;
 import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.MESSAGING_DESTINATION_NAME;
 import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.MESSAGING_MESSAGE_ID;
 import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES;
@@ -32,7 +31,6 @@ import io.opentelemetry.sdk.testing.assertj.SpanDataAssert;
 import io.opentelemetry.sdk.trace.data.LinkData;
 import io.opentelemetry.sdk.trace.data.SpanData;
 import io.opentelemetry.sdk.trace.data.StatusData;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.time.Duration;
@@ -420,9 +418,6 @@ public abstract class AbstractRocketMqClientTest {
                 equalTo(MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES, (long) body.length),
                 equalTo(MESSAGING_SYSTEM, "rocketmq"),
                 equalTo(MESSAGING_MESSAGE_ID, sendReceipt.getMessageId().toString()),
-                equalTo(
-                    MESSAGING_DESTINATION_KIND,
-                    SemanticAttributes.MessagingDestinationKindValues.TOPIC),
                 equalTo(MESSAGING_DESTINATION_NAME, topic)));
     attributeAssertions.addAll(Arrays.asList(extraAttributes));
 
@@ -451,9 +446,6 @@ public abstract class AbstractRocketMqClientTest {
                 equalTo(MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES, (long) body.length),
                 equalTo(MESSAGING_SYSTEM, "rocketmq"),
                 equalTo(MESSAGING_MESSAGE_ID, sendReceipt.getMessageId().toString()),
-                equalTo(
-                    MESSAGING_DESTINATION_KIND,
-                    SemanticAttributes.MessagingDestinationKindValues.TOPIC),
                 equalTo(MESSAGING_DESTINATION_NAME, topic)));
     attributeAssertions.addAll(Arrays.asList(extraAttributes));
 
@@ -482,9 +474,6 @@ public abstract class AbstractRocketMqClientTest {
                 equalTo(MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES, (long) body.length),
                 equalTo(MESSAGING_SYSTEM, "rocketmq"),
                 equalTo(MESSAGING_MESSAGE_ID, sendReceipt.getMessageId().toString()),
-                equalTo(
-                    MESSAGING_DESTINATION_KIND,
-                    SemanticAttributes.MessagingDestinationKindValues.TOPIC),
                 equalTo(MESSAGING_DESTINATION_NAME, topic)));
     attributeAssertions.addAll(Arrays.asList(extraAttributes));
 
@@ -502,9 +491,6 @@ public abstract class AbstractRocketMqClientTest {
         .hasAttributesSatisfyingExactly(
             equalTo(MESSAGING_ROCKETMQ_CLIENT_GROUP, consumerGroup),
             equalTo(MESSAGING_SYSTEM, "rocketmq"),
-            equalTo(
-                MESSAGING_DESTINATION_KIND,
-                SemanticAttributes.MessagingDestinationKindValues.TOPIC),
             equalTo(MESSAGING_DESTINATION_NAME, topic),
             equalTo(MESSAGING_OPERATION, "receive"));
   }
@@ -528,9 +514,6 @@ public abstract class AbstractRocketMqClientTest {
                 equalTo(MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES, (long) body.length),
                 equalTo(MESSAGING_SYSTEM, "rocketmq"),
                 equalTo(MESSAGING_MESSAGE_ID, sendReceipt.getMessageId().toString()),
-                equalTo(
-                    MESSAGING_DESTINATION_KIND,
-                    SemanticAttributes.MessagingDestinationKindValues.TOPIC),
                 equalTo(MESSAGING_DESTINATION_NAME, topic),
                 equalTo(MESSAGING_OPERATION, "process")));
     attributeAssertions.addAll(Arrays.asList(extraAttributes));
@@ -564,9 +547,6 @@ public abstract class AbstractRocketMqClientTest {
                 equalTo(MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES, (long) body.length),
                 equalTo(MESSAGING_SYSTEM, "rocketmq"),
                 equalTo(MESSAGING_MESSAGE_ID, sendReceipt.getMessageId().toString()),
-                equalTo(
-                    MESSAGING_DESTINATION_KIND,
-                    SemanticAttributes.MessagingDestinationKindValues.TOPIC),
                 equalTo(MESSAGING_DESTINATION_NAME, topic),
                 equalTo(MESSAGING_OPERATION, "process")));
     attributeAssertions.addAll(Arrays.asList(extraAttributes));
@@ -600,9 +580,6 @@ public abstract class AbstractRocketMqClientTest {
                 equalTo(MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES, (long) body.length),
                 equalTo(MESSAGING_SYSTEM, "rocketmq"),
                 equalTo(MESSAGING_MESSAGE_ID, sendReceipt.getMessageId().toString()),
-                equalTo(
-                    MESSAGING_DESTINATION_KIND,
-                    SemanticAttributes.MessagingDestinationKindValues.TOPIC),
                 equalTo(MESSAGING_DESTINATION_NAME, topic),
                 equalTo(MESSAGING_OPERATION, "process")));
     attributeAssertions.addAll(Arrays.asList(extraAttributes));

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

@@ -6,6 +6,5 @@ dependencies {
   implementation(project(":instrumentation-api"))
   implementation("io.opentelemetry:opentelemetry-extension-incubator")
 
-  testImplementation("io.opentelemetry:opentelemetry-sdk-metrics")
   testImplementation(project(":testing-common"))
 }

+ 1 - 1
instrumentation/rxjava/rxjava-3-common/testing/src/main/java/io/opentelemetry/instrumentation/rxjava/v3/common/AbstractRxJava3Test.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.instrumentation.rxjava.v3.common;
 
-import static io.opentelemetry.sdk.testing.assertj.LogAssertions.assertThat;
+import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.attributeEntry;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 

+ 0 - 2
instrumentation/spring/spring-boot-autoconfigure/build.gradle.kts

@@ -37,7 +37,6 @@ dependencies {
   compileOnly("io.opentelemetry:opentelemetry-extension-trace-propagators")
   compileOnly("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
   compileOnly("io.opentelemetry:opentelemetry-exporter-logging")
-  compileOnly("io.opentelemetry:opentelemetry-exporter-otlp-logs")
   compileOnly("io.opentelemetry:opentelemetry-exporter-jaeger")
   compileOnly("io.opentelemetry:opentelemetry-exporter-otlp")
   compileOnly("io.opentelemetry:opentelemetry-exporter-zipkin")
@@ -63,7 +62,6 @@ dependencies {
   testImplementation("io.opentelemetry:opentelemetry-extension-trace-propagators")
   testImplementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
   testImplementation("io.opentelemetry:opentelemetry-exporter-logging")
-  testImplementation("io.opentelemetry:opentelemetry-exporter-otlp-logs")
   testImplementation("io.opentelemetry:opentelemetry-exporter-jaeger")
   testImplementation("io.opentelemetry:opentelemetry-exporter-otlp")
   testImplementation("io.opentelemetry:opentelemetry-exporter-zipkin")

+ 7 - 6
instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java

@@ -5,8 +5,8 @@
 
 package io.opentelemetry.instrumentation.spring.autoconfigure;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.OpenTelemetry;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
 import io.opentelemetry.api.trace.TracerProvider;
 import io.opentelemetry.context.propagation.ContextPropagators;
 import io.opentelemetry.instrumentation.spring.autoconfigure.resources.SpringResourceConfigProperties;
@@ -83,16 +83,14 @@ public class OpenTelemetryAutoConfiguration {
       SdkLoggerProviderBuilder loggerProviderBuilder = SdkLoggerProvider.builder();
       loggerProviderBuilder.setResource(otelResource);
 
-      loggerExportersProvider.getIfAvailable(Collections::emptyList).stream()
+      loggerExportersProvider
+          .getIfAvailable(Collections::emptyList)
           .forEach(
               loggerExporter ->
                   loggerProviderBuilder.addLogRecordProcessor(
                       BatchLogRecordProcessor.builder(loggerExporter).build()));
 
-      SdkLoggerProvider loggerProvider = loggerProviderBuilder.build();
-      GlobalLoggerProvider.set(loggerProvider);
-
-      return loggerProvider;
+      return loggerProviderBuilder.build();
     }
 
     @Bean
@@ -143,6 +141,9 @@ public class OpenTelemetryAutoConfiguration {
 
       ContextPropagators propagators = propagatorsProvider.getIfAvailable(ContextPropagators::noop);
 
+      // global is needed for logging appenders
+      GlobalOpenTelemetry.set(OpenTelemetrySdk.builder().setLoggerProvider(loggerProvider).build());
+
       return OpenTelemetrySdk.builder()
           .setTracerProvider(tracerProvider)
           .setMeterProvider(meterProvider)

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfigurationTest.java

@@ -8,9 +8,9 @@ package io.opentelemetry.instrumentation.spring.autoconfigure;
 import static io.opentelemetry.semconv.resource.attributes.ResourceAttributes.SERVICE_NAME;
 import static org.assertj.core.api.Assertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.OpenTelemetry;
 import io.opentelemetry.api.common.AttributeKey;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
 import io.opentelemetry.instrumentation.spring.autoconfigure.resources.OtelResourceAutoConfiguration;
 import io.opentelemetry.sdk.OpenTelemetrySdk;
 import io.opentelemetry.sdk.logs.SdkLoggerProvider;
@@ -39,7 +39,7 @@ class OpenTelemetryAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/aspects/TraceAspectAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.aspects;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
@@ -26,7 +26,7 @@ public class TraceAspectAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.jaeger;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
@@ -27,7 +27,7 @@ class JaegerSpanExporterAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.logging;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.logging.LoggingMetricExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
@@ -26,7 +26,7 @@ class LoggingMetricExporterAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.logging;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.logging.LoggingSpanExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
@@ -28,7 +28,7 @@ class LoggingSpanExporterAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpLogExporterAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.otlp;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
@@ -25,7 +25,7 @@ class OtlpLogExporterAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpMetricExporterAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.otlp;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
@@ -25,7 +25,7 @@ class OtlpMetricExporterAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpSpanExporterAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.otlp;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
@@ -27,7 +27,7 @@ class OtlpSpanExporterAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.zipkin;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
@@ -27,7 +27,7 @@ class ZipkinSpanExporterAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/resttemplate/RestTemplateAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.httpclients.restte
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
@@ -26,7 +26,7 @@ class RestTemplateAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/webclient/WebClientAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.httpclients.webcli
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
@@ -26,7 +26,7 @@ class WebClientAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 0 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/kafka/KafkaIntegrationTest.java

@@ -109,7 +109,6 @@ class KafkaIntegrationTest {
                         .hasAttributesSatisfyingExactly(
                             equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                             equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, "testTopic"),
-                            equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                             satisfies(
                                 SemanticAttributes.MESSAGING_KAFKA_CLIENT_ID,
                                 stringAssert -> stringAssert.startsWith("producer")),
@@ -127,7 +126,6 @@ class KafkaIntegrationTest {
                         .hasAttributesSatisfyingExactly(
                             equalTo(SemanticAttributes.MESSAGING_SYSTEM, "kafka"),
                             equalTo(SemanticAttributes.MESSAGING_DESTINATION_NAME, "testTopic"),
-                            equalTo(SemanticAttributes.MESSAGING_DESTINATION_KIND, "topic"),
                             equalTo(SemanticAttributes.MESSAGING_OPERATION, "process"),
                             satisfies(
                                 SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES,

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/metrics/MicrometerShimAutoConfigurationTest.java

@@ -8,7 +8,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.metrics;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import io.micrometer.core.instrument.MeterRegistry;
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.instrumentation.micrometer.v1_5.OpenTelemetryMeterRegistry;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
@@ -27,7 +27,7 @@ class MicrometerShimAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 2 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationAutoConfigurationTest.java

@@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.propagators;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import io.opentelemetry.api.logs.GlobalLoggerProvider;
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.context.propagation.TextMapPropagator;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import org.junit.jupiter.api.BeforeEach;
@@ -26,7 +26,7 @@ class PropagationAutoConfigurationTest {
 
   @BeforeEach
   void resetGlobalLoggerProvider() {
-    GlobalLoggerProvider.resetForTest();
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

Some files were not shown because too many files changed in this diff