Skip to content

Commit 53162ff

Browse files
authored
[improve][monitor] Upgrade OpenTelemetry to 1.56.0, Otel instrumentation to 2.21.0 and Otel semconv to 1.37.0 (#24994)
1 parent 8fb418b commit 53162ff

File tree

5 files changed

+62
-70
lines changed

5 files changed

+62
-70
lines changed

distribution/server/src/assemble/LICENSE.bin.txt

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -339,12 +339,12 @@ The Apache Software License, Version 2.0
339339
- io.prometheus-simpleclient_tracer_otel-0.16.0.jar
340340
- io.prometheus-simpleclient_tracer_otel_agent-0.16.0.jar
341341
* Prometheus exporter
342-
- io.prometheus-prometheus-metrics-config-1.3.4.jar
343-
- io.prometheus-prometheus-metrics-exporter-common-1.3.4.jar
344-
- io.prometheus-prometheus-metrics-exporter-httpserver-1.3.4.jar
345-
- io.prometheus-prometheus-metrics-exposition-formats-1.3.4.jar
346-
- io.prometheus-prometheus-metrics-model-1.3.4.jar
347-
- io.prometheus-prometheus-metrics-exposition-textformats-1.3.4.jar
342+
- io.prometheus-prometheus-metrics-config-1.3.10.jar
343+
- io.prometheus-prometheus-metrics-exporter-common-1.3.10.jar
344+
- io.prometheus-prometheus-metrics-exporter-httpserver-1.3.10.jar
345+
- io.prometheus-prometheus-metrics-exposition-formats-no-protobuf-1.3.10.jar
346+
- io.prometheus-prometheus-metrics-model-1.3.10.jar
347+
- io.prometheus-prometheus-metrics-exposition-textformats-1.3.10.jar
348348
* Jakarta Bean Validation API
349349
- jakarta.validation-jakarta.validation-api-2.0.2.jar
350350
- javax.validation-validation-api-1.1.0.Final.jar
@@ -418,17 +418,16 @@ The Apache Software License, Version 2.0
418418
* Google Error Prone Annotations - com.google.errorprone-error_prone_annotations-2.38.0.jar
419419
* Apache Thrift - org.apache.thrift-libthrift-0.14.2.jar
420420
* OkHttp3
421-
- com.squareup.okhttp3-logging-interceptor-4.9.3.jar
422-
- com.squareup.okhttp3-okhttp-4.9.3.jar
421+
- com.squareup.okhttp3-logging-interceptor-5.3.1.jar
422+
- com.squareup.okhttp3-okhttp-5.3.1.jar
423+
- com.squareup.okhttp3-okhttp-jvm-5.3.1.jar
423424
* Okio
424-
- com.squareup.okio-okio-3.4.0.jar
425-
- com.squareup.okio-okio-jvm-3.4.0.jar
425+
- com.squareup.okio-okio-3.16.3.jar
426+
- com.squareup.okio-okio-jvm-3.16.3.jar
426427
* Javassist -- org.javassist-javassist-3.25.0-GA.jar
427428
* Kotlin Standard Lib
428429
- org.jetbrains.kotlin-kotlin-stdlib-1.8.20.jar
429430
- org.jetbrains.kotlin-kotlin-stdlib-common-1.8.20.jar
430-
- org.jetbrains.kotlin-kotlin-stdlib-jdk7-1.8.20.jar
431-
- org.jetbrains.kotlin-kotlin-stdlib-jdk8-1.8.20.jar
432431
- org.jetbrains-annotations-13.0.jar
433432
* gRPC
434433
- io.grpc-grpc-all-1.75.0.jar
@@ -519,27 +518,28 @@ The Apache Software License, Version 2.0
519518
* RoaringBitmap
520519
- org.roaringbitmap-RoaringBitmap-1.2.0.jar
521520
* OpenTelemetry
522-
- io.opentelemetry-opentelemetry-api-1.45.0.jar
523-
- io.opentelemetry-opentelemetry-api-incubator-1.45.0-alpha.jar
524-
- io.opentelemetry-opentelemetry-context-1.45.0.jar
525-
- io.opentelemetry-opentelemetry-exporter-common-1.45.0.jar
526-
- io.opentelemetry-opentelemetry-exporter-otlp-1.45.0.jar
527-
- io.opentelemetry-opentelemetry-exporter-otlp-common-1.45.0.jar
528-
- io.opentelemetry-opentelemetry-exporter-prometheus-1.45.0-alpha.jar
529-
- io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.45.0.jar
530-
- io.opentelemetry-opentelemetry-sdk-1.45.0.jar
531-
- io.opentelemetry-opentelemetry-sdk-common-1.45.0.jar
532-
- io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.45.0.jar
533-
- io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.45.0.jar
534-
- io.opentelemetry-opentelemetry-sdk-logs-1.45.0.jar
535-
- io.opentelemetry-opentelemetry-sdk-metrics-1.45.0.jar
536-
- io.opentelemetry-opentelemetry-sdk-trace-1.45.0.jar
537-
- io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-1.33.6.jar
538-
- io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-semconv-1.33.6-alpha.jar
539-
- io.opentelemetry.instrumentation-opentelemetry-resources-1.33.6-alpha.jar
540-
- io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java17-1.33.6-alpha.jar
541-
- io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java8-1.33.6-alpha.jar
542-
- io.opentelemetry.semconv-opentelemetry-semconv-1.29.0-alpha.jar
521+
- io.opentelemetry-opentelemetry-api-1.56.0.jar
522+
- io.opentelemetry-opentelemetry-api-incubator-1.56.0-alpha.jar
523+
- io.opentelemetry-opentelemetry-common-1.56.0.jar
524+
- io.opentelemetry-opentelemetry-context-1.56.0.jar
525+
- io.opentelemetry-opentelemetry-exporter-common-1.56.0.jar
526+
- io.opentelemetry-opentelemetry-exporter-otlp-1.56.0.jar
527+
- io.opentelemetry-opentelemetry-exporter-otlp-common-1.56.0.jar
528+
- io.opentelemetry-opentelemetry-exporter-prometheus-1.56.0-alpha.jar
529+
- io.opentelemetry-opentelemetry-exporter-sender-okhttp-1.56.0.jar
530+
- io.opentelemetry-opentelemetry-sdk-1.56.0.jar
531+
- io.opentelemetry-opentelemetry-sdk-common-1.56.0.jar
532+
- io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-1.56.0.jar
533+
- io.opentelemetry-opentelemetry-sdk-extension-autoconfigure-spi-1.56.0.jar
534+
- io.opentelemetry-opentelemetry-sdk-logs-1.56.0.jar
535+
- io.opentelemetry-opentelemetry-sdk-metrics-1.56.0.jar
536+
- io.opentelemetry-opentelemetry-sdk-trace-1.56.0.jar
537+
- io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-2.21.0.jar
538+
- io.opentelemetry.instrumentation-opentelemetry-instrumentation-api-incubator-2.21.0-alpha.jar
539+
- io.opentelemetry.instrumentation-opentelemetry-resources-2.21.0-alpha.jar
540+
- io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java17-2.21.0-alpha.jar
541+
- io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java8-2.21.0-alpha.jar
542+
- io.opentelemetry.semconv-opentelemetry-semconv-1.37.0.jar
543543
- com.google.cloud.opentelemetry-detector-resources-support-0.33.0.jar
544544
- io.opentelemetry.contrib-opentelemetry-gcp-resources-1.48.0-alpha.jar
545545
* Spotify completable-futures

distribution/shell/src/assemble/LICENSE.bin.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -389,9 +389,10 @@ The Apache Software License, Version 2.0
389389
- log4j-slf4j2-impl-2.25.2.jar
390390
- log4j-web-2.25.2.jar
391391
* OpenTelemetry
392-
- opentelemetry-api-1.45.0.jar
393-
- opentelemetry-api-incubator-1.45.0-alpha.jar
394-
- opentelemetry-context-1.45.0.jar
392+
- opentelemetry-api-1.56.0.jar
393+
- opentelemetry-api-incubator-1.56.0-alpha.jar
394+
- opentelemetry-common-1.56.0.jar
395+
- opentelemetry-context-1.56.0.jar
395396

396397
* BookKeeper
397398
- bookkeeper-common-allocator-4.17.2.jar

pom.xml

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -285,9 +285,9 @@ flexible messaging model and an intuitive client API.</description>
285285
<jna.version>5.12.1</jna.version>
286286
<kubernetesclient.version>18.0.0</kubernetesclient.version>
287287
<jose4j.version>0.9.4</jose4j.version>
288-
<okhttp3.version>4.9.3</okhttp3.version>
288+
<okhttp3.version>5.3.1</okhttp3.version>
289289
<!-- use okio version that matches the okhttp3 version -->
290-
<okio.version>3.4.0</okio.version>
290+
<okio.version>3.16.3</okio.version>
291291
<!-- override kotlin-stdlib used by okio in order to address CVE-2020-29582 -->
292292
<kotlin-stdlib.version>1.8.20</kotlin-stdlib.version>
293293
<nsq-client.version>1.0</nsq-client.version>
@@ -306,11 +306,11 @@ flexible messaging model and an intuitive client API.</description>
306306
the core logic is switched to java implementation of zstd in org.apache.commons:commons-compress -->
307307
<zstd-jni.version>1.5.7-3</zstd-jni.version>
308308
<netty-reactive-streams.version>2.0.6</netty-reactive-streams.version>
309-
<opentelemetry.version>1.45.0</opentelemetry.version>
309+
<opentelemetry.version>1.56.0</opentelemetry.version>
310310
<opentelemetry.alpha.version>${opentelemetry.version}-alpha</opentelemetry.alpha.version>
311-
<opentelemetry.instrumentation.version>1.33.6</opentelemetry.instrumentation.version>
311+
<opentelemetry.instrumentation.version>2.21.0</opentelemetry.instrumentation.version>
312312
<opentelemetry.instrumentation.alpha.version>${opentelemetry.instrumentation.version}-alpha</opentelemetry.instrumentation.alpha.version>
313-
<opentelemetry.semconv.version>1.29.0-alpha</opentelemetry.semconv.version>
313+
<opentelemetry.semconv.version>1.37.0</opentelemetry.semconv.version>
314314
<picocli.version>4.7.5</picocli.version>
315315
<re2j.version>1.8</re2j.version>
316316
<completable-futures.version>0.3.6</completable-futures.version>
@@ -1631,23 +1631,17 @@ flexible messaging model and an intuitive client API.</description>
16311631

16321632
<dependency>
16331633
<groupId>com.squareup.okhttp3</groupId>
1634-
<artifactId>okhttp</artifactId>
1635-
<version>${okhttp3.version}</version>
1636-
</dependency>
1637-
<dependency>
1638-
<groupId>com.squareup.okhttp3</groupId>
1639-
<artifactId>okhttp-urlconnection</artifactId>
1640-
<version>${okhttp3.version}</version>
1641-
</dependency>
1642-
<dependency>
1643-
<groupId>com.squareup.okhttp3</groupId>
1644-
<artifactId>logging-interceptor</artifactId>
1634+
<artifactId>okhttp-bom</artifactId>
16451635
<version>${okhttp3.version}</version>
1636+
<type>pom</type>
1637+
<scope>import</scope>
16461638
</dependency>
16471639
<dependency>
16481640
<groupId>com.squareup.okio</groupId>
1649-
<artifactId>okio</artifactId>
1641+
<artifactId>okio-bom</artifactId>
16501642
<version>${okio.version}</version>
1643+
<type>pom</type>
1644+
<scope>import</scope>
16511645
</dependency>
16521646

16531647
<dependency>

pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryService.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder;
2929
import io.opentelemetry.sdk.common.export.MemoryMode;
3030
import io.opentelemetry.sdk.resources.Resource;
31-
import io.opentelemetry.semconv.ResourceAttributes;
31+
import io.opentelemetry.semconv.ServiceAttributes;
3232
import java.io.Closeable;
3333
import java.util.Map;
3434
import java.util.Objects;
@@ -74,9 +74,9 @@ public OpenTelemetryService(String clusterName,
7474
sdkBuilder.addPropertiesSupplier(() -> Map.of(
7575
OTEL_SDK_DISABLED_KEY, "true",
7676
// Cardinality limit includes the overflow attribute set, so we need to add 1.
77-
"otel.experimental.metrics.cardinality.limit", Integer.toString(MAX_CARDINALITY_LIMIT + 1),
77+
"otel.java.metrics.cardinality.limit", Integer.toString(MAX_CARDINALITY_LIMIT + 1),
7878
// Reduce number of allocations by using reusable data mode.
79-
"otel.java.experimental.exporter.memory_mode", MemoryMode.REUSABLE_DATA.name()
79+
"otel.java.exporter.memory_mode", MemoryMode.REUSABLE_DATA.name()
8080
));
8181

8282
sdkBuilder.addResourceCustomizer(
@@ -87,13 +87,13 @@ public OpenTelemetryService(String clusterName,
8787
resourceBuilder.put(OpenTelemetryAttributes.PULSAR_CLUSTER, clusterName);
8888
}
8989
if (StringUtils.isNotBlank(serviceName)
90-
&& Objects.equals(Resource.getDefault().getAttribute(ResourceAttributes.SERVICE_NAME),
91-
resource.getAttribute(ResourceAttributes.SERVICE_NAME))) {
92-
resourceBuilder.put(ResourceAttributes.SERVICE_NAME, serviceName);
90+
&& Objects.equals(Resource.getDefault().getAttribute(ServiceAttributes.SERVICE_NAME),
91+
resource.getAttribute(ServiceAttributes.SERVICE_NAME))) {
92+
resourceBuilder.put(ServiceAttributes.SERVICE_NAME, serviceName);
9393
}
9494
if (StringUtils.isNotBlank(serviceVersion)
95-
&& resource.getAttribute(ResourceAttributes.SERVICE_VERSION) == null) {
96-
resourceBuilder.put(ResourceAttributes.SERVICE_VERSION, serviceVersion);
95+
&& resource.getAttribute(ServiceAttributes.SERVICE_VERSION) == null) {
96+
resourceBuilder.put(ServiceAttributes.SERVICE_VERSION, serviceVersion);
9797
}
9898
return resource.merge(resourceBuilder.build());
9999
});
@@ -123,7 +123,7 @@ public OpenTelemetryService(String clusterName,
123123
// disable JFR based telemetry and use only JMX telemetry
124124
.disableAllFeatures()
125125
// enable experimental JMX telemetry in addition
126-
.enableExperimentalJmxTelemetry()
126+
.emitExperimentalTelemetry()
127127
.build());
128128
}
129129

pulsar-opentelemetry/src/test/java/org/apache/pulsar/opentelemetry/OpenTelemetryServiceTest.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package org.apache.pulsar.opentelemetry;
2020

2121
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
22-
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
2322
import io.opentelemetry.api.common.AttributeKey;
2423
import io.opentelemetry.api.common.Attributes;
2524
import io.opentelemetry.api.metrics.LongCounterBuilder;
@@ -29,7 +28,7 @@
2928
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
3029
import io.opentelemetry.sdk.metrics.export.MetricReader;
3130
import io.opentelemetry.sdk.testing.exporter.InMemoryMetricReader;
32-
import io.opentelemetry.semconv.ResourceAttributes;
31+
import io.opentelemetry.semconv.ServiceAttributes;
3332
import java.util.List;
3433
import java.util.Map;
3534
import java.util.concurrent.TimeUnit;
@@ -38,7 +37,6 @@
3837
import lombok.Cleanup;
3938
import org.apache.commons.lang3.StringUtils;
4039
import org.apache.pulsar.broker.stats.prometheus.PrometheusMetricsClient;
41-
import org.assertj.core.api.AbstractCharSequenceAssert;
4240
import org.awaitility.Awaitility;
4341
import org.testng.annotations.AfterMethod;
4442
import org.testng.annotations.BeforeMethod;
@@ -98,7 +96,7 @@ public void testClusterNameCannotBeEmpty() {
9896
}
9997

10098
@Test
101-
public void testResourceAttributesAreSet() throws Exception {
99+
public void testServiceAttributesAreSet() throws Exception {
102100
@Cleanup
103101
var reader = InMemoryMetricReader.create();
104102

@@ -116,9 +114,8 @@ public void testResourceAttributesAreSet() throws Exception {
116114
.allSatisfy(metric -> assertThat(metric)
117115
.hasResourceSatisfying(resource -> resource
118116
.hasAttribute(OpenTelemetryAttributes.PULSAR_CLUSTER, "testServiceNameAndVersion")
119-
.hasAttribute(ResourceAttributes.SERVICE_NAME, "openTelemetryServiceTestService")
120-
.hasAttribute(ResourceAttributes.SERVICE_VERSION, "1.0.0")
121-
.hasAttribute(satisfies(ResourceAttributes.HOST_NAME, AbstractCharSequenceAssert::isNotBlank))));
117+
.hasAttribute(ServiceAttributes.SERVICE_NAME, "openTelemetryServiceTestService")
118+
.hasAttribute(ServiceAttributes.SERVICE_VERSION, "1.0.0")));
122119
}
123120

124121
@Test
@@ -230,7 +227,7 @@ public void testJvmRuntimeMetrics() {
230227

231228
// Buffer Pool Metrics
232229
// Replaces jvm_buffer_pool_used_bytes
233-
assertThat(metrics).anySatisfy(metric -> assertThat(metric).hasName("jvm.buffer.memory.usage"));
230+
assertThat(metrics).anySatisfy(metric -> assertThat(metric).hasName("jvm.buffer.memory.used"));
234231
// Replaces jvm_buffer_pool_capacity_bytes
235232
assertThat(metrics).anySatisfy(metric -> assertThat(metric).hasName("jvm.buffer.memory.limit"));
236233
// Replaces jvm_buffer_pool_used_buffers

0 commit comments

Comments
 (0)