Skip to content

Commit 8c20056

Browse files
opentelemetrybotlauritMateusz Rzeszutek
authored
[release/v1.32.x] Bridge opentelemetry api 1.32 (#10317)
Co-authored-by: Lauri Tulmin <[email protected]> Co-authored-by: Mateusz Rzeszutek <[email protected]>
1 parent 9d246ad commit 8c20056

File tree

22 files changed

+1019
-12
lines changed

22 files changed

+1019
-12
lines changed

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

+25-4
Original file line numberDiff line numberDiff line change
@@ -63,18 +63,39 @@ public ContextPropagators getPropagators() {
6363
}
6464

6565
private static ApplicationMeterFactory getMeterFactory() {
66-
try {
66+
// this class is defined in opentelemetry-api-1.32
67+
ApplicationMeterFactory meterFactory =
68+
getMeterFactory(
69+
"io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_32.incubator.metrics.ApplicationMeterFactory132Incubator");
70+
if (meterFactory == null) {
71+
// this class is defined in opentelemetry-api-1.32
72+
meterFactory =
73+
getMeterFactory(
74+
"io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_32.metrics.ApplicationMeterFactory132");
75+
}
76+
if (meterFactory == null) {
6777
// this class is defined in opentelemetry-api-1.31
68-
Class<?> clazz =
69-
Class.forName(
78+
meterFactory =
79+
getMeterFactory(
7080
"io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_31.metrics.ApplicationMeterFactory131");
81+
}
82+
if (meterFactory == null) {
83+
meterFactory = new ApplicationMeterFactory115();
84+
}
85+
86+
return meterFactory;
87+
}
88+
89+
private static ApplicationMeterFactory getMeterFactory(String className) {
90+
try {
91+
Class<?> clazz = Class.forName(className);
7192
return (ApplicationMeterFactory) clazz.getConstructor().newInstance();
7293
} catch (ClassNotFoundException
7394
| NoSuchMethodException
7495
| InstantiationException
7596
| IllegalAccessException
7697
| InvocationTargetException exception) {
77-
return new ApplicationMeterFactory115();
98+
return null;
7899
}
79100
}
80101
}

instrumentation/opentelemetry-api/opentelemetry-api-1.31/javaagent/build.gradle.kts

+9
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,12 @@ dependencies {
1414

1515
testImplementation("io.opentelemetry:opentelemetry-extension-incubator")
1616
}
17+
18+
configurations.configureEach {
19+
if (name == "testRuntimeClasspath" || name == "testCompileClasspath") {
20+
resolutionStrategy {
21+
force("io.opentelemetry:opentelemetry-api:1.31.0")
22+
force("io.opentelemetry:opentelemetry-extension-incubator:1.31.0-alpha")
23+
}
24+
}
25+
}

instrumentation/opentelemetry-api/opentelemetry-api-1.31/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_31/metrics/ApplicationDoubleHistogramBuilder131.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99
import application.io.opentelemetry.api.metrics.LongHistogramBuilder;
1010
import application.io.opentelemetry.extension.incubator.metrics.ExtendedDoubleHistogramBuilder;
1111
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging;
12+
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics.ApplicationDoubleHistogramBuilder;
1213
import java.util.List;
1314

14-
final class ApplicationDoubleHistogramBuilder131 extends ApplicationDoubleHistogramBuilder132
15+
final class ApplicationDoubleHistogramBuilder131 extends ApplicationDoubleHistogramBuilder
1516
implements ExtendedDoubleHistogramBuilder {
1617

1718
private final io.opentelemetry.api.metrics.DoubleHistogramBuilder agentBuilder;

instrumentation/opentelemetry-api/opentelemetry-api-1.31/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_31/metrics/ApplicationLongHistogramBuilder131.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88
import application.io.opentelemetry.api.common.AttributeKey;
99
import application.io.opentelemetry.extension.incubator.metrics.ExtendedLongHistogramBuilder;
1010
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging;
11+
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.metrics.ApplicationLongHistogramBuilder;
1112
import java.util.List;
1213

13-
final class ApplicationLongHistogramBuilder131 extends ApplicationLongHistogramBuilder132
14+
final class ApplicationLongHistogramBuilder131 extends ApplicationLongHistogramBuilder
1415
implements ExtendedLongHistogramBuilder {
1516

1617
private final io.opentelemetry.api.metrics.LongHistogramBuilder agentBuilder;

instrumentation/opentelemetry-api/opentelemetry-api-1.31/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_31/metrics/ApplicationMeter131.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
import application.io.opentelemetry.api.metrics.LongUpDownCounterBuilder;
1212
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_15.metrics.ApplicationMeter115;
1313

14-
class ApplicationMeter131 extends ApplicationMeter115 {
14+
public class ApplicationMeter131 extends ApplicationMeter115 {
1515

1616
private final io.opentelemetry.api.metrics.Meter agentMeter;
1717

18-
ApplicationMeter131(io.opentelemetry.api.metrics.Meter agentMeter) {
18+
protected ApplicationMeter131(io.opentelemetry.api.metrics.Meter agentMeter) {
1919
super(agentMeter);
2020
this.agentMeter = agentMeter;
2121
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
plugins {
2+
id("otel.javaagent-instrumentation")
3+
}
4+
5+
dependencies {
6+
compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "v1_32"))
7+
compileOnly("io.opentelemetry:opentelemetry-extension-incubator")
8+
9+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent"))
10+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent"))
11+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent"))
12+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent"))
13+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent"))
14+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.31:javaagent"))
15+
}
16+
17+
testing {
18+
suites {
19+
val incubatorTest by registering(JvmTestSuite::class) {
20+
dependencies {
21+
implementation("io.opentelemetry:opentelemetry-extension-incubator")
22+
}
23+
}
24+
}
25+
}
26+
27+
tasks {
28+
check {
29+
dependsOn(testing.suites)
30+
}
31+
}

0 commit comments

Comments
 (0)