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

lhotari pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new f2a22bb2163 [improve][build] Upgrade OpenTelemetry to latest (java 
1.62.0, instrumentation 2.28.1, semconv 1.41.1) (#25906)
f2a22bb2163 is described below

commit f2a22bb2163f7a87f0e5382e89d2a22fd3ff26c5
Author: Lari Hotari <[email protected]>
AuthorDate: Mon Jun 1 10:41:04 2026 +0300

    [improve][build] Upgrade OpenTelemetry to latest (java 1.62.0, 
instrumentation 2.28.1, semconv 1.41.1) (#25906)
---
 distribution/server/src/assemble/LICENSE.bin.txt    | 16 ++++++++--------
 distribution/shell/src/assemble/LICENSE.bin.txt     |  2 +-
 gradle/libs.versions.toml                           | 10 +++++-----
 .../pulsar/opentelemetry/OpenTelemetryService.java  |  9 ++++++++-
 .../opentelemetry/OpenTelemetryServiceTest.java     | 21 +++++++++++++++++++++
 5 files changed, 43 insertions(+), 15 deletions(-)

diff --git a/distribution/server/src/assemble/LICENSE.bin.txt 
b/distribution/server/src/assemble/LICENSE.bin.txt
index 5cb6438d7c8..05e9050e2e0 100644
--- a/distribution/server/src/assemble/LICENSE.bin.txt
+++ b/distribution/server/src/assemble/LICENSE.bin.txt
@@ -528,13 +528,13 @@ The Apache Software License, Version 2.0
     - org.roaringbitmap-RoaringBitmap-1.6.9.jar
   * OpenTelemetry
     - io.opentelemetry-opentelemetry-api-1.62.0.jar
-    - io.opentelemetry-opentelemetry-api-incubator-1.61.0-alpha.jar
+    - io.opentelemetry-opentelemetry-api-incubator-1.62.0-alpha.jar
     - io.opentelemetry-opentelemetry-common-1.62.0.jar
     - io.opentelemetry-opentelemetry-context-1.62.0.jar
     - io.opentelemetry-opentelemetry-exporter-common-1.62.0.jar
     - io.opentelemetry-opentelemetry-exporter-otlp-1.62.0.jar
     - io.opentelemetry-opentelemetry-exporter-otlp-common-1.62.0.jar
-    - io.opentelemetry-opentelemetry-exporter-prometheus-1.61.0-alpha.jar
+    - io.opentelemetry-opentelemetry-exporter-prometheus-1.62.0-alpha.jar
     - io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.62.0.jar
     - io.opentelemetry-opentelemetry-sdk-1.62.0.jar
     - io.opentelemetry-opentelemetry-sdk-common-1.62.0.jar
@@ -543,13 +543,13 @@ The Apache Software License, Version 2.0
     - io.opentelemetry-opentelemetry-sdk-logs-1.62.0.jar
     - io.opentelemetry-opentelemetry-sdk-metrics-1.62.0.jar
     - io.opentelemetry-opentelemetry-sdk-trace-1.62.0.jar
-    - 
io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-2.27.0.jar
-    - 
io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-incubator-2.27.0-alpha.jar
-    - io.opentelemetry.instrumentation-opentelemetry-resources-2.27.0-alpha.jar
-    - 
io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-2.27.0-alpha.jar
-    - io.opentelemetry.semconv-opentelemetry-semconv-1.41.0.jar
+    - 
io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-2.28.1.jar
+    - 
io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-incubator-2.28.1-alpha.jar
+    - io.opentelemetry.instrumentation-opentelemetry-resources-2.28.1-alpha.jar
+    - 
io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-2.28.1-alpha.jar
+    - io.opentelemetry.semconv-opentelemetry-semconv-1.41.1.jar
     - com.google.cloud.opentelemetry-detector-resources-support-0.36.0.jar
-    - io.opentelemetry.contrib-opentelemetry-gcp-resources-1.48.0-alpha.jar
+    - io.opentelemetry.contrib-opentelemetry-gcp-resources-1.57.0-alpha.jar
   * Spotify completable-futures
     - com.spotify-completable-futures-0.3.6.jar
   * JSpecify
diff --git a/distribution/shell/src/assemble/LICENSE.bin.txt 
b/distribution/shell/src/assemble/LICENSE.bin.txt
index a56e6b5f20c..3491eec8f8b 100644
--- a/distribution/shell/src/assemble/LICENSE.bin.txt
+++ b/distribution/shell/src/assemble/LICENSE.bin.txt
@@ -388,7 +388,7 @@ The Apache Software License, Version 2.0
     - log4j-web-2.25.4.jar
  * OpenTelemetry
     - opentelemetry-api-1.62.0.jar
-    - opentelemetry-api-incubator-1.61.0-alpha.jar
+    - opentelemetry-api-incubator-1.62.0-alpha.jar
     - opentelemetry-common-1.62.0.jar
     - opentelemetry-context-1.62.0.jar
   * Slog
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index cd94415b05b..f7a7a81cbb3 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -39,10 +39,10 @@ log4j2 = "2.25.4"
 lombok = "1.18.42"
 # OpenTelemetry
 opentelemetry = "1.62.0"
-opentelemetry-alpha = "1.61.0-alpha"
-opentelemetry-instrumentation = "2.27.0"
-opentelemetry-instrumentation-alpha = "2.27.0-alpha"
-opentelemetry-semconv = "1.41.0"
+opentelemetry-alpha = "1.62.0-alpha"
+opentelemetry-instrumentation = "2.28.1"
+opentelemetry-instrumentation-alpha = "2.28.1-alpha"
+opentelemetry-semconv = "1.41.1"
 # Apache Commons
 commons-lang3 = "3.20.0"
 commons-io = "2.21.0"
@@ -79,7 +79,7 @@ google-auth = "1.24.1"
 google-http-client = "1.41.0"
 j2objc-annotations = "1.3"
 opencensus = "0.28.0"
-opentelemetry-gcp-resources = "1.48.0-alpha"
+opentelemetry-gcp-resources = "1.57.0-alpha"
 # Data structures / Utils
 guava = "33.4.8-jre"
 caffeine = "3.2.4"
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 9dcc4cd02e2..abe9266f5d3 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
@@ -47,6 +47,7 @@ import org.apache.commons.lang3.StringUtils;
 public class OpenTelemetryService implements Closeable {
 
     public static final String OTEL_SDK_DISABLED_KEY = "otel.sdk.disabled";
+    static final String OTEL_EXPORTER_PROMETHEUS_HOST_KEY = 
"otel.exporter.prometheus.host";
     static final int MAX_CARDINALITY_LIMIT = 10000;
 
     private final AtomicReference<OpenTelemetrySdk> openTelemetrySdkReference 
= new AtomicReference<>();
@@ -79,7 +80,13 @@ public class OpenTelemetryService implements Closeable {
                 // Cardinality limit includes the overflow attribute set, so 
we need to add 1.
                 "otel.java.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.exporter.memory_mode", 
MemoryMode.REUSABLE_DATA.name(),
+                // Preserve the pre-OpenTelemetry-1.62.0 behavior of binding 
the Prometheus exporter's HTTP server
+                // to all interfaces. OpenTelemetry 1.62.0 changed the default 
host from "0.0.0.0" to "localhost",
+                // which makes the metrics endpoint unreachable from outside 
the host (e.g. another container or a
+                // remote Prometheus scraper). Supplied as a default, so it is 
still overridden by an explicit
+                // OTEL_EXPORTER_PROMETHEUS_HOST environment variable / 
otel.exporter.prometheus.host system property.
+                OTEL_EXPORTER_PROMETHEUS_HOST_KEY, "0.0.0.0"
         ));
 
         sdkBuilder.addResourceCustomizer(
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 fbf819aed78..efb6bdecccb 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
@@ -33,6 +33,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Consumer;
 import lombok.Cleanup;
 import org.apache.commons.lang3.StringUtils;
@@ -153,6 +154,26 @@ public class OpenTelemetryServiceTest {
         });
     }
 
+    @Test
+    public void testPrometheusExporterDefaultsToAllInterfacesHost() {
+        // OpenTelemetry 1.62.0 changed the Prometheus exporter's default 
server host from "0.0.0.0" to "localhost".
+        // Pulsar restores the previous "0.0.0.0" default so the metrics 
endpoint stays reachable from outside the
+        // local host (e.g. another container or a remote Prometheus scraper). 
The default must remain overridable
+        // via the standard OTEL_EXPORTER_PROMETHEUS_HOST / 
otel.exporter.prometheus.host configuration.
+        var capturedHost = new AtomicReference<String>();
+        @Cleanup
+        var ots = OpenTelemetryService.builder()
+                .builderCustomizer(getBuilderCustomizer(null,
+                        Map.of(OpenTelemetryService.OTEL_SDK_DISABLED_KEY, 
"false"))
+                        .andThen(builder -> 
builder.addPropertiesCustomizer(config -> {
+                            
capturedHost.set(config.getString(OpenTelemetryService.OTEL_EXPORTER_PROMETHEUS_HOST_KEY));
+                            return Map.of();
+                        })))
+                .clusterName("openTelemetryServicePrometheusHostTestCluster")
+                .build();
+        assertThat(capturedHost.get()).isEqualTo("0.0.0.0");
+    }
+
     @Test
     public void testLongCounter() {
         var longCounter = meter.counterBuilder("dummyLongCounter").build();

Reply via email to