This is an automated email from the ASF dual-hosted git repository.
merlimat pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 0b7cc3d0a4 Upgrade OpenTelemetry libraries to 1.61.0 / 2.27.0 (#4773)
0b7cc3d0a4 is described below
commit 0b7cc3d0a442a93bd4751f6f558dfb474a0ef20c
Author: Lari Hotari <[email protected]>
AuthorDate: Tue May 5 00:09:35 2026 +0300
Upgrade OpenTelemetry libraries to 1.61.0 / 2.27.0 (#4773)
* Upgrade OpenTelemetry libraries
* Migrate OtelMetricsProvider to RuntimeTelemetry and
ExplicitBucketHistogramOptions
The runtime-telemetry-java8 module's individual observer classes (Classes,
Cpu, GarbageCollector, MemoryPools, Threads, ExperimentalBufferPools) were
removed in opentelemetry-instrumentation 2.27.0; switch to the unified
opentelemetry-runtime-telemetry module's RuntimeTelemetry builder.
Also replace the Aggregation.explicitBucketHistogram(List<Double>) overload
deprecated in opentelemetry-java SDK 1.60.0 with the new
ExplicitBucketHistogramOptions form.
* Fix license files
---
.../src/main/resources/LICENSE-all.bin.txt | 61 +++++++++++-----------
.../src/main/resources/LICENSE-bkctl.bin.txt | 31 ++++++-----
.../src/main/resources/LICENSE-server.bin.txt | 61 +++++++++++-----------
pom.xml | 8 +--
.../otel-metrics-provider/pom.xml | 2 +-
.../bookkeeper/stats/otel/OtelMetricsProvider.java | 29 +++++-----
6 files changed, 95 insertions(+), 97 deletions(-)
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
index f66fb0c91a..207660d466 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
@@ -333,34 +333,33 @@ Apache Software License, Version 2.
- lib/com.carrotsearch-hppc-0.9.1.jar [53]
- lib/com.squareup.okhttp3-okhttp-jvm-5.3.1.jar [54]
- lib/com.squareup.okio-okio-jvm-3.16.3.jar [54]
-- lib/io.opentelemetry-opentelemetry-api-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-api-incubator-1.56.0-alpha.jar [55]
-- lib/io.opentelemetry-opentelemetry-common-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-context-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-exporter-common-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-exporter-otlp-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-exporter-otlp-common-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-exporter-prometheus-1.56.0-alpha.jar [55]
-- lib/io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-sdk-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-sdk-common-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.56.0.jar
[55]
--
lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.56.0.jar
[55]
-- lib/io.opentelemetry-opentelemetry-sdk-logs-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-sdk-metrics-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-sdk-trace-1.56.0.jar [55]
-- lib/io.opentelemetry.contrib-opentelemetry-gcp-resources-1.52.0-alpha.jar
[55]
-- lib/io.opentelemetry.semconv-opentelemetry-semconv-1.37.0.jar [55]
--
lib/io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-2.21.0.jar
[59]
--
lib/io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-incubator-2.21.0-alpha.jar
[59]
--
lib/io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java8-2.21.0-alpha.jar
[59]
-- lib/com.google.cloud.opentelemetry-detector-resources-support-0.36.0.jar [55]
-- lib/io.prometheus-prometheus-metrics-config-1.3.10.jar [60]
-- lib/io.prometheus-prometheus-metrics-exporter-common-1.3.10.jar [60]
-- lib/io.prometheus-prometheus-metrics-exporter-httpserver-1.3.10.jar [60]
--
lib/io.prometheus-prometheus-metrics-exposition-formats-no-protobuf-1.3.10.jar
[60]
-- lib/io.prometheus-prometheus-metrics-exposition-textformats-1.3.10.jar [60]
-- lib/io.prometheus-prometheus-metrics-model-1.3.10.jar [60]
+- lib/io.opentelemetry-opentelemetry-api-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-api-incubator-1.61.0-alpha.jar [55]
+- lib/io.opentelemetry-opentelemetry-common-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-context-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-exporter-common-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-exporter-otlp-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-exporter-otlp-common-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-exporter-prometheus-1.61.0-alpha.jar [55]
+- lib/io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-sdk-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-sdk-common-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.61.0.jar
[55]
+-
lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.61.0.jar
[55]
+- lib/io.opentelemetry-opentelemetry-sdk-logs-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-sdk-metrics-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-sdk-trace-1.61.0.jar [55]
+- lib/io.opentelemetry.contrib-opentelemetry-gcp-resources-1.56.0-alpha.jar
[55]
+- lib/io.opentelemetry.semconv-opentelemetry-semconv-1.41.0.jar [55]
+-
lib/io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-2.27.0.jar
[59]
+-
lib/io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-incubator-2.27.0-alpha.jar
[59]
+-
lib/io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-2.27.0-alpha.jar
[59]
+- lib/io.prometheus-prometheus-metrics-config-1.5.1.jar [60]
+- lib/io.prometheus-prometheus-metrics-exporter-common-1.5.1.jar [60]
+- lib/io.prometheus-prometheus-metrics-exporter-httpserver-1.5.1.jar [60]
+-
lib/io.prometheus-prometheus-metrics-exposition-formats-no-protobuf-1.5.1.jar
[60]
+- lib/io.prometheus-prometheus-metrics-exposition-textformats-1.5.1.jar [60]
+- lib/io.prometheus-prometheus-metrics-model-1.5.1.jar [60]
- lib/org.jetbrains-annotations-13.0.jar [56]
- lib/org.jetbrains.kotlin-kotlin-stdlib-2.2.21.jar [56]
- lib/com.lmax-disruptor-4.0.0.jar [57]
@@ -414,12 +413,12 @@ Apache Software License, Version 2.
[52] Source available at
https://github.com/HdrHistogram/HdrHistogram/tree/HdrHistogram-2.1.10
[53] Source available at https://github.com/carrotsearch/hppc/tree/0.9.1
[54] Source available at
https://github.com/square/okio/releases/tag/parent-3.16.3
-[55] Source available at
https://github.com/open-telemetry/opentelemetry-java/releases/tag/v1.56.0
+[55] Source available at
https://github.com/open-telemetry/opentelemetry-java/releases/tag/v1.61.0
[56] Source available at
https://github.com/JetBrains/kotlin/releases/tag/v2.2.21
[57] Source available at
https://github.com/LMAX-Exchange/disruptor/releases/tag/4.0.0
[58] Source available at
https://github.com/apache/commons-lang/tree/rel/commons-lang-3.20.0
-[59] Source available at
https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/v2.21.0
-[60] Source available at https://github.com/prometheus/client_java/tree/v1.3.10
+[59] Source available at
https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/v2.27.0
+[60] Source available at https://github.com/prometheus/client_java/tree/v1.5.1
[61] Source available at
https://github.com/apache/commons-text/tree/rel/commons-text-1.13.1
[62] Source available at
https://github.com/apache/commons-beanutils/tree/rel/commons-beanutils-1.11.0
[63] Source available at
https://github.com/googleapis/sdk-platform-java/tree/v2.53.0/api-common-java
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt
b/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt
index 8b39fb9a5d..808babc8d6 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt
@@ -295,21 +295,20 @@ Apache Software License, Version 2.
- lib/io.reactivex.rxjava3-rxjava-3.0.1.jar [51]
- lib/com.carrotsearch-hppc-0.9.1.jar [52]
- lib/com.lmax-disruptor-4.0.0.jar [53]
-- lib/io.opentelemetry-opentelemetry-api-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-common-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-context-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-api-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-common-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-context-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-sdk-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-sdk-common-1.56.0.jar [55]
--
lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.56.0.jar
[55]
-- lib/io.opentelemetry-opentelemetry-sdk-logs-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-sdk-metrics-1.56.0.jar [55]
-- lib/io.opentelemetry-opentelemetry-sdk-trace-1.56.0.jar [55]
-- lib/io.opentelemetry.contrib-opentelemetry-gcp-resources-1.52.0-alpha.jar
[55]
-- lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.56.0.jar
[55]
-- lib/com.google.cloud.opentelemetry-detector-resources-support-0.36.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-api-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-common-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-context-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-api-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-common-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-context-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-sdk-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-sdk-common-1.61.0.jar [55]
+-
lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.61.0.jar
[55]
+- lib/io.opentelemetry-opentelemetry-sdk-logs-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-sdk-metrics-1.61.0.jar [55]
+- lib/io.opentelemetry-opentelemetry-sdk-trace-1.61.0.jar [55]
+- lib/io.opentelemetry.contrib-opentelemetry-gcp-resources-1.56.0-alpha.jar
[55]
+- lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.61.0.jar
[55]
[1] Source available at
https://github.com/FasterXML/jackson-annotations/tree/jackson-annotations-2.17.1
[2] Source available at
https://github.com/FasterXML/jackson-core/tree/jackson-core-2.17.1
@@ -351,7 +350,7 @@ Apache Software License, Version 2.
[51] Source available at https://github.com/ReactiveX/RxJava/tree/v3.0.1
[52] Source available at https://github.com/carrotsearch/hppc/tree/0.9.1
[53] Source available at
https://github.com/LMAX-Exchange/disruptor/releases/tag/4.0.0
-[54] Source available at
https://github.com/open-telemetry/opentelemetry-java/releases/tag/v1.56.0
+[54] Source available at
https://github.com/open-telemetry/opentelemetry-java/releases/tag/v1.61.0
[55] Source available at
https://github.com/apache/commons-lang/tree/rel/commons-lang-3.20.0
[56] Source available at
https://github.com/apache/commons-text/tree/rel/commons-text-1.13.1
[57] Source available at
https://github.com/apache/commons-beanutils/tree/rel/commons-beanutils-1.11.0
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
index 362493a051..b9f76c2ef3 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
@@ -329,34 +329,33 @@ Apache Software License, Version 2.
- lib/com.carrotsearch-hppc-0.9.1.jar [52]
- lib/com.squareup.okhttp3-okhttp-jvm-5.3.1.jar [53]
- lib/com.squareup.okio-okio-jvm-3.16.3.jar [53]
-- lib/io.opentelemetry-opentelemetry-api-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-api-incubator-1.56.0-alpha.jar [54]
-- lib/io.opentelemetry-opentelemetry-common-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-context-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-exporter-common-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-exporter-otlp-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-exporter-otlp-common-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-exporter-prometheus-1.56.0-alpha.jar [54]
-- lib/io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-sdk-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-sdk-common-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.56.0.jar
[54]
--
lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.56.0.jar
[54]
-- lib/io.opentelemetry-opentelemetry-sdk-logs-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-sdk-metrics-1.56.0.jar [54]
-- lib/io.opentelemetry-opentelemetry-sdk-trace-1.56.0.jar [54]
--
lib/io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-2.21.0.jar
[58]
--
lib/io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-incubator-2.21.0-alpha.jar
[58]
--
lib/io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java8-2.21.0-alpha.jar
[58]
-- lib/io.opentelemetry.contrib-opentelemetry-gcp-resources-1.52.0-alpha.jar
[54]
-- lib/io.opentelemetry.semconv-opentelemetry-semconv-1.37.0.jar [54]
-- lib/com.google.cloud.opentelemetry-detector-resources-support-0.36.0.jar [54]
-- lib/io.prometheus-prometheus-metrics-config-1.3.10.jar [59]
-- lib/io.prometheus-prometheus-metrics-exporter-common-1.3.10.jar [59]
-- lib/io.prometheus-prometheus-metrics-exporter-httpserver-1.3.10.jar [59]
--
lib/io.prometheus-prometheus-metrics-exposition-formats-no-protobuf-1.3.10.jar
[59]
-- lib/io.prometheus-prometheus-metrics-exposition-textformats-1.3.10.jar [59]
-- lib/io.prometheus-prometheus-metrics-model-1.3.10.jar [59]
+- lib/io.opentelemetry-opentelemetry-api-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-api-incubator-1.61.0-alpha.jar [54]
+- lib/io.opentelemetry-opentelemetry-common-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-context-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-exporter-common-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-exporter-otlp-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-exporter-otlp-common-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-exporter-prometheus-1.61.0-alpha.jar [54]
+- lib/io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-sdk-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-sdk-common-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.61.0.jar
[54]
+-
lib/io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.61.0.jar
[54]
+- lib/io.opentelemetry-opentelemetry-sdk-logs-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-sdk-metrics-1.61.0.jar [54]
+- lib/io.opentelemetry-opentelemetry-sdk-trace-1.61.0.jar [54]
+-
lib/io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-2.27.0.jar
[58]
+-
lib/io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-incubator-2.27.0-alpha.jar
[58]
+-
lib/io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-2.27.0-alpha.jar
[58]
+- lib/io.opentelemetry.contrib-opentelemetry-gcp-resources-1.56.0-alpha.jar
[54]
+- lib/io.opentelemetry.semconv-opentelemetry-semconv-1.41.0.jar [54]
+- lib/io.prometheus-prometheus-metrics-config-1.5.1.jar [59]
+- lib/io.prometheus-prometheus-metrics-exporter-common-1.5.1.jar [59]
+- lib/io.prometheus-prometheus-metrics-exporter-httpserver-1.5.1.jar [59]
+-
lib/io.prometheus-prometheus-metrics-exposition-formats-no-protobuf-1.5.1.jar
[59]
+- lib/io.prometheus-prometheus-metrics-exposition-textformats-1.5.1.jar [59]
+- lib/io.prometheus-prometheus-metrics-model-1.5.1.jar [59]
- lib/org.jetbrains-annotations-13.0.jar [55]
- lib/org.jetbrains.kotlin-kotlin-stdlib-2.2.21.jar [55]
- lib/com.lmax-disruptor-4.0.0.jar [56]
@@ -409,12 +408,12 @@ Apache Software License, Version 2.
[51] Source available at https://github.com/ReactiveX/RxJava/tree/v3.0.1
[52] Source available at https://github.com/carrotsearch/hppc/tree/0.9.1
[53] Source available at
https://github.com/square/okio/releases/tag/parent-3.16.3
-[54] Source available at
https://github.com/open-telemetry/opentelemetry-java/releases/tag/v1.56.0
+[54] Source available at
https://github.com/open-telemetry/opentelemetry-java/releases/tag/v1.61.0
[55] Source available at
https://github.com/JetBrains/kotlin/releases/tag/v2.2.21
[56] Source available at
https://github.com/LMAX-Exchange/disruptor/releases/tag/4.0.0
[57] Source available at
https://github.com/apache/commons-lang/tree/rel/commons-lang-3.20.0
-[58] Source available at
https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/v2.21.0
-[59] Source available at https://github.com/prometheus/client_java/tree/v1.3.10
+[58] Source available at
https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/v2.27.0
+[59] Source available at https://github.com/prometheus/client_java/tree/v1.5.1
[60] Source available at
https://github.com/apache/commons-text/tree/rel/commons-text-1.13.1
[61] Source available at
https://github.com/apache/commons-beanutils/tree/rel/commons-beanutils-1.11.0
[62] Source available at
https://github.com/googleapis/sdk-platform-java/tree/v2.53.0/api-common-java
diff --git a/pom.xml b/pom.xml
index d18f145ed7..68d5e0ecb4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -227,10 +227,10 @@
<forkCount.variable>1</forkCount.variable>
<servlet-api.version>4.0.0</servlet-api.version>
<rxjava.version>3.0.1</rxjava.version>
- <otel.version>1.56.0</otel.version>
- <otel.instrumentation.version>2.21.0</otel.instrumentation.version>
- <otel.semconv.version>1.37.0</otel.semconv.version>
- <otel.contrib.version>1.52.0</otel.contrib.version>
+ <otel.version>1.61.0</otel.version>
+ <otel.instrumentation.version>2.27.0</otel.instrumentation.version>
+ <otel.semconv.version>1.41.0</otel.semconv.version>
+ <otel.contrib.version>1.56.0</otel.contrib.version>
<okhttp3.version>5.3.1</okhttp3.version>
<!-- use okio version that matches the okhttp3 version -->
<okio.version>3.16.3</okio.version>
diff --git a/stats/bookkeeper-stats-providers/otel-metrics-provider/pom.xml
b/stats/bookkeeper-stats-providers/otel-metrics-provider/pom.xml
index 796fcef49e..5310fe9f40 100644
--- a/stats/bookkeeper-stats-providers/otel-metrics-provider/pom.xml
+++ b/stats/bookkeeper-stats-providers/otel-metrics-provider/pom.xml
@@ -49,7 +49,7 @@
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
- <artifactId>opentelemetry-runtime-telemetry-java8</artifactId>
+ <artifactId>opentelemetry-runtime-telemetry</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
diff --git
a/stats/bookkeeper-stats-providers/otel-metrics-provider/src/main/java/org/apache/bookkeeper/stats/otel/OtelMetricsProvider.java
b/stats/bookkeeper-stats-providers/otel-metrics-provider/src/main/java/org/apache/bookkeeper/stats/otel/OtelMetricsProvider.java
index f812151d6d..4d1c379f30 100644
---
a/stats/bookkeeper-stats-providers/otel-metrics-provider/src/main/java/org/apache/bookkeeper/stats/otel/OtelMetricsProvider.java
+++
b/stats/bookkeeper-stats-providers/otel-metrics-provider/src/main/java/org/apache/bookkeeper/stats/otel/OtelMetricsProvider.java
@@ -22,14 +22,13 @@ import io.netty.util.internal.PlatformDependent;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.metrics.Meter;
-import io.opentelemetry.instrumentation.runtimemetrics.java8.Classes;
-import io.opentelemetry.instrumentation.runtimemetrics.java8.Cpu;
-import io.opentelemetry.instrumentation.runtimemetrics.java8.GarbageCollector;
-import io.opentelemetry.instrumentation.runtimemetrics.java8.MemoryPools;
-import io.opentelemetry.instrumentation.runtimemetrics.java8.Threads;
-import
io.opentelemetry.instrumentation.runtimemetrics.java8.internal.ExperimentalBufferPools;
+import io.opentelemetry.instrumentation.runtimetelemetry.RuntimeTelemetry;
+import
io.opentelemetry.instrumentation.runtimetelemetry.RuntimeTelemetryBuilder;
+import io.opentelemetry.instrumentation.runtimetelemetry.internal.Experimental;
+import io.opentelemetry.instrumentation.runtimetelemetry.internal.Internal;
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
import io.opentelemetry.sdk.metrics.Aggregation;
+import io.opentelemetry.sdk.metrics.ExplicitBucketHistogramOptions;
import io.opentelemetry.sdk.metrics.InstrumentSelector;
import io.opentelemetry.sdk.metrics.InstrumentType;
import io.opentelemetry.sdk.metrics.View;
@@ -83,7 +82,10 @@ public class OtelMetricsProvider implements StatsProvider {
.setType(InstrumentType.HISTOGRAM)
.build(),
View.builder()
-
.setAggregation(Aggregation.explicitBucketHistogram(histogramBuckets))
+
.setAggregation(Aggregation.explicitBucketHistogram(
+
ExplicitBucketHistogramOptions.builder()
+
.setBucketBoundaries(histogramBuckets)
+ .build()))
.build())
).build();
@@ -95,13 +97,12 @@ public class OtelMetricsProvider implements StatsProvider {
public void start(Configuration conf) {
boolean exposeDefaultJVMMetrics =
conf.getBoolean("exposeDefaultJVMMetrics", true);
if (exposeDefaultJVMMetrics) {
- // Include standard JVM stats
- MemoryPools.registerObservers(openTelemetry);
- ExperimentalBufferPools.registerObservers(openTelemetry);
- Classes.registerObservers(openTelemetry);
- Cpu.registerObservers(openTelemetry);
- Threads.registerObservers(openTelemetry);
- GarbageCollector.registerObservers(openTelemetry, true);
+ // Include standard JVM stats (memory pools, classes, CPU,
threads, GC)
+ // plus experimental buffer pool metrics, with GC cause attribute
capture.
+ RuntimeTelemetryBuilder runtimeTelemetryBuilder =
RuntimeTelemetry.builder(openTelemetry);
+ Experimental.setEmitExperimentalMetrics(runtimeTelemetryBuilder,
true);
+ Internal.setCaptureGcCause(runtimeTelemetryBuilder, true);
+ runtimeTelemetryBuilder.build();
meter.gaugeBuilder("process.runtime.jvm.memory.direct_bytes_used")
.buildWithCallback(odm ->
odm.record(getDirectMemoryUsage.get()));