This is an automated email from the ASF dual-hosted git repository.

technoboy pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/branch-4.1 by this push:
     new 7644c5cde15 Revert "[improve][monitor] Upgrade OpenTelemetry to 
1.56.0, Otel instrumentation to 2.21.0 and Otel semconv to 1.37.0 (#24994)"
7644c5cde15 is described below

commit 7644c5cde15d796a4175ecf1d263f084248f7bf3
Author: Jiwe Guo <[email protected]>
AuthorDate: Mon Dec 1 14:48:23 2025 +0800

    Revert "[improve][monitor] Upgrade OpenTelemetry to 1.56.0, Otel 
instrumentation to 2.21.0 and Otel semconv to 1.37.0 (#24994)"
    
    This reverts commit 1f03c38a20524d72b15f9b9326d916683862ddd0.
---
 distribution/server/src/assemble/LICENSE.bin.txt   | 66 +++++++++++-----------
 distribution/shell/src/assemble/LICENSE.bin.txt    |  7 +--
 pom.xml                                            | 28 +++++----
 .../pulsar/opentelemetry/OpenTelemetryService.java | 18 +++---
 .../opentelemetry/OpenTelemetryServiceTest.java    | 13 +++--
 5 files changed, 70 insertions(+), 62 deletions(-)

diff --git a/distribution/server/src/assemble/LICENSE.bin.txt 
b/distribution/server/src/assemble/LICENSE.bin.txt
index 8820f1483cf..7af4a4bda8b 100644
--- a/distribution/server/src/assemble/LICENSE.bin.txt
+++ b/distribution/server/src/assemble/LICENSE.bin.txt
@@ -338,12 +338,12 @@ The Apache Software License, Version 2.0
     - io.prometheus-simpleclient_tracer_otel-0.16.0.jar
     - io.prometheus-simpleclient_tracer_otel_agent-0.16.0.jar
  * Prometheus exporter
-    - io.prometheus-prometheus-metrics-config-1.3.10.jar
-    - io.prometheus-prometheus-metrics-exporter-common-1.3.10.jar
-    - io.prometheus-prometheus-metrics-exporter-httpserver-1.3.10.jar
-    - 
io.prometheus-prometheus-metrics-exposition-formats-no-protobuf-1.3.10.jar
-    - io.prometheus-prometheus-metrics-model-1.3.10.jar
-    - io.prometheus-prometheus-metrics-exposition-textformats-1.3.10.jar
+    - io.prometheus-prometheus-metrics-config-1.3.4.jar
+    - io.prometheus-prometheus-metrics-exporter-common-1.3.4.jar
+    - io.prometheus-prometheus-metrics-exporter-httpserver-1.3.4.jar
+    - io.prometheus-prometheus-metrics-exposition-formats-1.3.4.jar
+    - io.prometheus-prometheus-metrics-model-1.3.4.jar
+    - io.prometheus-prometheus-metrics-exposition-textformats-1.3.4.jar
  * Jakarta Bean Validation API
     - jakarta.validation-jakarta.validation-api-2.0.2.jar
     - javax.validation-validation-api-1.1.0.Final.jar
@@ -417,16 +417,17 @@ The Apache Software License, Version 2.0
  * Google Error Prone Annotations - 
com.google.errorprone-error_prone_annotations-2.38.0.jar
  * Apache Thrift - org.apache.thrift-libthrift-0.14.2.jar
  * OkHttp3
-     - com.squareup.okhttp3-logging-interceptor-5.3.1.jar
-     - com.squareup.okhttp3-okhttp-5.3.1.jar
-     - com.squareup.okhttp3-okhttp-jvm-5.3.1.jar
+     - com.squareup.okhttp3-logging-interceptor-4.9.3.jar
+     - com.squareup.okhttp3-okhttp-4.9.3.jar
  * Okio
-     - com.squareup.okio-okio-3.16.3.jar
-     - com.squareup.okio-okio-jvm-3.16.3.jar
+     - com.squareup.okio-okio-3.4.0.jar
+     - com.squareup.okio-okio-jvm-3.4.0.jar
  * Javassist -- org.javassist-javassist-3.25.0-GA.jar
  * Kotlin Standard Lib
      - org.jetbrains.kotlin-kotlin-stdlib-1.8.20.jar
      - org.jetbrains.kotlin-kotlin-stdlib-common-1.8.20.jar
+     - org.jetbrains.kotlin-kotlin-stdlib-jdk7-1.8.20.jar
+     - org.jetbrains.kotlin-kotlin-stdlib-jdk8-1.8.20.jar
      - org.jetbrains-annotations-13.0.jar
  * gRPC
     - io.grpc-grpc-all-1.75.0.jar
@@ -517,28 +518,27 @@ The Apache Software License, Version 2.0
   * RoaringBitmap
     - org.roaringbitmap-RoaringBitmap-1.2.0.jar
   * OpenTelemetry
-    - io.opentelemetry-opentelemetry-api-1.56.0.jar
-    - io.opentelemetry-opentelemetry-api-incubator-1.56.0-alpha.jar
-    - io.opentelemetry-opentelemetry-common-1.56.0.jar
-    - io.opentelemetry-opentelemetry-context-1.56.0.jar
-    - io.opentelemetry-opentelemetry-exporter-common-1.56.0.jar
-    - io.opentelemetry-opentelemetry-exporter-otlp-1.56.0.jar
-    - io.opentelemetry-opentelemetry-exporter-otlp-common-1.56.0.jar
-    - io.opentelemetry-opentelemetry-exporter-prometheus-1.56.0-alpha.jar
-    - io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.56.0.jar
-    - io.opentelemetry-opentelemetry-sdk-1.56.0.jar
-    - io.opentelemetry-opentelemetry-sdk-common-1.56.0.jar
-    - io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.56.0.jar
-    - io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.56.0.jar
-    - io.opentelemetry-opentelemetry-sdk-logs-1.56.0.jar
-    - io.opentelemetry-opentelemetry-sdk-metrics-1.56.0.jar
-    - io.opentelemetry-opentelemetry-sdk-trace-1.56.0.jar
-    - 
io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-2.21.0.jar
-    - 
io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-incubator-2.21.0-alpha.jar
-    - io.opentelemetry.instrumentation-opentelemetry-resources-2.21.0-alpha.jar
-    - 
io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java17-2.21.0-alpha.jar
-    - 
io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java8-2.21.0-alpha.jar
-    - io.opentelemetry.semconv-opentelemetry-semconv-1.37.0.jar
+    - io.opentelemetry-opentelemetry-api-1.45.0.jar
+    - io.opentelemetry-opentelemetry-api-incubator-1.45.0-alpha.jar
+    - io.opentelemetry-opentelemetry-context-1.45.0.jar
+    - io.opentelemetry-opentelemetry-exporter-common-1.45.0.jar
+    - io.opentelemetry-opentelemetry-exporter-otlp-1.45.0.jar
+    - io.opentelemetry-opentelemetry-exporter-otlp-common-1.45.0.jar
+    - io.opentelemetry-opentelemetry-exporter-prometheus-1.45.0-alpha.jar
+    - io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.45.0.jar
+    - io.opentelemetry-opentelemetry-sdk-1.45.0.jar
+    - io.opentelemetry-opentelemetry-sdk-common-1.45.0.jar
+    - io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.45.0.jar
+    - io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.45.0.jar
+    - io.opentelemetry-opentelemetry-sdk-logs-1.45.0.jar
+    - io.opentelemetry-opentelemetry-sdk-metrics-1.45.0.jar
+    - io.opentelemetry-opentelemetry-sdk-trace-1.45.0.jar
+    - 
io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-1.33.6.jar
+    - 
io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-semconv-1.33.6-alpha.jar
+    - io.opentelemetry.instrumentation-opentelemetry-resources-1.33.6-alpha.jar
+    - 
io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java17-1.33.6-alpha.jar
+    - 
io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java8-1.33.6-alpha.jar
+    - io.opentelemetry.semconv-opentelemetry-semconv-1.29.0-alpha.jar
     - com.google.cloud.opentelemetry-detector-resources-support-0.33.0.jar
     - io.opentelemetry.contrib-opentelemetry-gcp-resources-1.48.0-alpha.jar
   * Spotify completable-futures
diff --git a/distribution/shell/src/assemble/LICENSE.bin.txt 
b/distribution/shell/src/assemble/LICENSE.bin.txt
index 5cb2a9f5e5c..bd90346e734 100644
--- a/distribution/shell/src/assemble/LICENSE.bin.txt
+++ b/distribution/shell/src/assemble/LICENSE.bin.txt
@@ -388,10 +388,9 @@ The Apache Software License, Version 2.0
     - log4j-slf4j2-impl-2.25.2.jar
     - log4j-web-2.25.2.jar
  * OpenTelemetry
-    - opentelemetry-api-1.56.0.jar
-    - opentelemetry-api-incubator-1.56.0-alpha.jar
-    - opentelemetry-common-1.56.0.jar
-    - opentelemetry-context-1.56.0.jar
+    - opentelemetry-api-1.45.0.jar
+    - opentelemetry-api-incubator-1.45.0-alpha.jar
+    - opentelemetry-context-1.45.0.jar
 
  * BookKeeper
     - bookkeeper-common-allocator-4.17.2.jar
diff --git a/pom.xml b/pom.xml
index 7e20110788a..2385682e78e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -285,9 +285,9 @@ flexible messaging model and an intuitive client 
API.</description>
     <jna.version>5.12.1</jna.version>
     <kubernetesclient.version>18.0.0</kubernetesclient.version>
     <jose4j.version>0.9.4</jose4j.version>
-    <okhttp3.version>5.3.1</okhttp3.version>
+    <okhttp3.version>4.9.3</okhttp3.version>
     <!-- use okio version that matches the okhttp3 version -->
-    <okio.version>3.16.3</okio.version>
+    <okio.version>3.4.0</okio.version>
     <!-- override kotlin-stdlib used by okio in order to address 
CVE-2020-29582 -->
     <kotlin-stdlib.version>1.8.20</kotlin-stdlib.version>
     <nsq-client.version>1.0</nsq-client.version>
@@ -306,11 +306,11 @@ flexible messaging model and an intuitive client 
API.</description>
     the core logic is switched to java implementation of zstd in 
org.apache.commons:commons-compress -->
     <zstd-jni.version>1.5.7-3</zstd-jni.version>
     <netty-reactive-streams.version>2.0.6</netty-reactive-streams.version>
-    <opentelemetry.version>1.56.0</opentelemetry.version>
+    <opentelemetry.version>1.45.0</opentelemetry.version>
     
<opentelemetry.alpha.version>${opentelemetry.version}-alpha</opentelemetry.alpha.version>
-    
<opentelemetry.instrumentation.version>2.21.0</opentelemetry.instrumentation.version>
+    
<opentelemetry.instrumentation.version>1.33.6</opentelemetry.instrumentation.version>
     
<opentelemetry.instrumentation.alpha.version>${opentelemetry.instrumentation.version}-alpha</opentelemetry.instrumentation.alpha.version>
-    <opentelemetry.semconv.version>1.37.0</opentelemetry.semconv.version>
+    <opentelemetry.semconv.version>1.29.0-alpha</opentelemetry.semconv.version>
     <picocli.version>4.7.5</picocli.version>
     <re2j.version>1.8</re2j.version>
     <completable-futures.version>0.3.6</completable-futures.version>
@@ -1635,17 +1635,23 @@ flexible messaging model and an intuitive client 
API.</description>
 
       <dependency>
         <groupId>com.squareup.okhttp3</groupId>
-        <artifactId>okhttp-bom</artifactId>
+        <artifactId>okhttp</artifactId>
+        <version>${okhttp3.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.squareup.okhttp3</groupId>
+        <artifactId>okhttp-urlconnection</artifactId>
+        <version>${okhttp3.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.squareup.okhttp3</groupId>
+        <artifactId>logging-interceptor</artifactId>
         <version>${okhttp3.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
       </dependency>
       <dependency>
         <groupId>com.squareup.okio</groupId>
-        <artifactId>okio-bom</artifactId>
+        <artifactId>okio</artifactId>
         <version>${okio.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
       </dependency>
 
       <dependency>
diff --git 
a/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryService.java
 
b/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryService.java
index d143b743d34..e6c6d95273e 100644
--- 
a/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryService.java
+++ 
b/pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryService.java
@@ -28,7 +28,7 @@ import 
io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
 import 
io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder;
 import io.opentelemetry.sdk.common.export.MemoryMode;
 import io.opentelemetry.sdk.resources.Resource;
-import io.opentelemetry.semconv.ServiceAttributes;
+import io.opentelemetry.semconv.ResourceAttributes;
 import java.io.Closeable;
 import java.util.Map;
 import java.util.Objects;
@@ -74,9 +74,9 @@ public class OpenTelemetryService implements Closeable {
         sdkBuilder.addPropertiesSupplier(() -> Map.of(
                 OTEL_SDK_DISABLED_KEY, "true",
                 // Cardinality limit includes the overflow attribute set, so 
we need to add 1.
-                "otel.java.metrics.cardinality.limit", 
Integer.toString(MAX_CARDINALITY_LIMIT + 1),
+                "otel.experimental.metrics.cardinality.limit", 
Integer.toString(MAX_CARDINALITY_LIMIT + 1),
                 // Reduce number of allocations by using reusable data mode.
-                "otel.java.exporter.memory_mode", 
MemoryMode.REUSABLE_DATA.name()
+                "otel.java.experimental.exporter.memory_mode", 
MemoryMode.REUSABLE_DATA.name()
         ));
 
         sdkBuilder.addResourceCustomizer(
@@ -87,13 +87,13 @@ public class OpenTelemetryService implements Closeable {
                         
resourceBuilder.put(OpenTelemetryAttributes.PULSAR_CLUSTER, clusterName);
                     }
                     if (StringUtils.isNotBlank(serviceName)
-                            && 
Objects.equals(Resource.getDefault().getAttribute(ServiceAttributes.SERVICE_NAME),
-                                              
resource.getAttribute(ServiceAttributes.SERVICE_NAME))) {
-                        resourceBuilder.put(ServiceAttributes.SERVICE_NAME, 
serviceName);
+                            && 
Objects.equals(Resource.getDefault().getAttribute(ResourceAttributes.SERVICE_NAME),
+                                              
resource.getAttribute(ResourceAttributes.SERVICE_NAME))) {
+                        resourceBuilder.put(ResourceAttributes.SERVICE_NAME, 
serviceName);
                     }
                     if (StringUtils.isNotBlank(serviceVersion)
-                            && 
resource.getAttribute(ServiceAttributes.SERVICE_VERSION) == null) {
-                        resourceBuilder.put(ServiceAttributes.SERVICE_VERSION, 
serviceVersion);
+                            && 
resource.getAttribute(ResourceAttributes.SERVICE_VERSION) == null) {
+                        
resourceBuilder.put(ResourceAttributes.SERVICE_VERSION, serviceVersion);
                     }
                     return resource.merge(resourceBuilder.build());
                 });
@@ -123,7 +123,7 @@ public class OpenTelemetryService implements Closeable {
                 // disable JFR based telemetry and use only JMX telemetry
                 .disableAllFeatures()
                 // enable experimental JMX telemetry in addition
-                .emitExperimentalTelemetry()
+                .enableExperimentalJmxTelemetry()
                 .build());
     }
 
diff --git 
a/pulsar-opentelemetry/src/test/java/org/apache/pulsar/opentelemetry/OpenTelemetryServiceTest.java
 
b/pulsar-opentelemetry/src/test/java/org/apache/pulsar/opentelemetry/OpenTelemetryServiceTest.java
index e3dd29cd1b2..99d4189d8f8 100644
--- 
a/pulsar-opentelemetry/src/test/java/org/apache/pulsar/opentelemetry/OpenTelemetryServiceTest.java
+++ 
b/pulsar-opentelemetry/src/test/java/org/apache/pulsar/opentelemetry/OpenTelemetryServiceTest.java
@@ -19,6 +19,7 @@
 package org.apache.pulsar.opentelemetry;
 
 import static 
io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
+import static 
io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
 import io.opentelemetry.api.common.AttributeKey;
 import io.opentelemetry.api.common.Attributes;
 import io.opentelemetry.api.metrics.LongCounterBuilder;
@@ -28,7 +29,7 @@ import 
io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder;
 import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
 import io.opentelemetry.sdk.metrics.export.MetricReader;
 import io.opentelemetry.sdk.testing.exporter.InMemoryMetricReader;
-import io.opentelemetry.semconv.ServiceAttributes;
+import io.opentelemetry.semconv.ResourceAttributes;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
@@ -37,6 +38,7 @@ import java.util.function.Consumer;
 import lombok.Cleanup;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.pulsar.broker.stats.prometheus.PrometheusMetricsClient;
+import org.assertj.core.api.AbstractCharSequenceAssert;
 import org.awaitility.Awaitility;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
@@ -96,7 +98,7 @@ public class OpenTelemetryServiceTest {
     }
 
     @Test
-    public void testServiceAttributesAreSet() throws Exception {
+    public void testResourceAttributesAreSet() throws Exception {
         @Cleanup
         var reader = InMemoryMetricReader.create();
 
@@ -114,8 +116,9 @@ public class OpenTelemetryServiceTest {
             .allSatisfy(metric -> assertThat(metric)
                 .hasResourceSatisfying(resource -> resource
                     .hasAttribute(OpenTelemetryAttributes.PULSAR_CLUSTER, 
"testServiceNameAndVersion")
-                    .hasAttribute(ServiceAttributes.SERVICE_NAME, 
"openTelemetryServiceTestService")
-                    .hasAttribute(ServiceAttributes.SERVICE_VERSION, 
"1.0.0")));
+                    .hasAttribute(ResourceAttributes.SERVICE_NAME, 
"openTelemetryServiceTestService")
+                    .hasAttribute(ResourceAttributes.SERVICE_VERSION, "1.0.0")
+                    .hasAttribute(satisfies(ResourceAttributes.HOST_NAME, 
AbstractCharSequenceAssert::isNotBlank))));
     }
 
     @Test
@@ -227,7 +230,7 @@ public class OpenTelemetryServiceTest {
 
         // Buffer Pool Metrics
         // Replaces jvm_buffer_pool_used_bytes
-        assertThat(metrics).anySatisfy(metric -> 
assertThat(metric).hasName("jvm.buffer.memory.used"));
+        assertThat(metrics).anySatisfy(metric -> 
assertThat(metric).hasName("jvm.buffer.memory.usage"));
         // Replaces jvm_buffer_pool_capacity_bytes
         assertThat(metrics).anySatisfy(metric -> 
assertThat(metric).hasName("jvm.buffer.memory.limit"));
         // Replaces jvm_buffer_pool_used_buffers

Reply via email to