Skip to content

Commit 66d5921

Browse files
committed
add ExtendedOpenTelemetry
1 parent 75aaad5 commit 66d5921

File tree

11 files changed

+161
-2
lines changed

11 files changed

+161
-2
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_4.trace.ApplicationTracerProvider14;
2323
import java.lang.reflect.InvocationTargetException;
2424

25-
public final class ApplicationOpenTelemetry127 implements OpenTelemetry {
25+
public class ApplicationOpenTelemetry127 implements OpenTelemetry {
2626

2727
// Accessed with reflection
2828
@SuppressWarnings("unused")
@@ -34,7 +34,7 @@ public final class ApplicationOpenTelemetry127 implements OpenTelemetry {
3434
private final LoggerProvider applicationLoggerProvider;
3535

3636
@SuppressWarnings("UnnecessarilyFullyQualified")
37-
private ApplicationOpenTelemetry127() {
37+
protected ApplicationOpenTelemetry127() {
3838
io.opentelemetry.api.OpenTelemetry agentOpenTelemetry =
3939
io.opentelemetry.api.GlobalOpenTelemetry.get();
4040
applicationTracerProvider =
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
plugins {
2+
id("otel.javaagent-instrumentation")
3+
}
4+
5+
dependencies {
6+
compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "v1_55"))
7+
compileOnly("io.opentelemetry:opentelemetry-api-incubator")
8+
9+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent"))
10+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent"))
11+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.40:javaagent"))
12+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent"))
13+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent"))
14+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent"))
15+
implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent"))
16+
17+
testImplementation("io.opentelemetry:opentelemetry-api-incubator")
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator;
2+
3+
import application.io.opentelemetry.api.incubator.ExtendedOpenTelemetry;
4+
import application.io.opentelemetry.api.incubator.config.ConfigProvider;
5+
6+
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127;
7+
8+
public class ApplicationOpenTelemetry155Incubator extends ApplicationOpenTelemetry127
9+
implements ExtendedOpenTelemetry {
10+
11+
io.opentelemetry.api.incubator.ExtendedOpenTelemetry extendedOpenTelemetry =
12+
(io.opentelemetry.api.incubator.ExtendedOpenTelemetry)
13+
io.opentelemetry.api.GlobalOpenTelemetry.get();
14+
15+
@Override
16+
public ConfigProvider getConfigProvider() {
17+
return extendedOpenTelemetry.getConfigProvider();
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator;
7+
8+
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
9+
import static java.util.Collections.singletonList;
10+
11+
import com.google.auto.service.AutoService;
12+
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
13+
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
14+
import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule;
15+
import java.util.List;
16+
import net.bytebuddy.matcher.ElementMatcher;
17+
18+
@AutoService(InstrumentationModule.class)
19+
public class OpenTelemetryApiIncubatorInstrumentationModule extends InstrumentationModule
20+
implements ExperimentalInstrumentationModule {
21+
public OpenTelemetryApiIncubatorInstrumentationModule() {
22+
super("opentelemetry-api", "opentelemetry-api-1.55", "opentelemetry-api-incubator-1.55");
23+
}
24+
25+
@Override
26+
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
27+
return hasClassesNamed(
28+
"application.io.opentelemetry.api.common.Value",
29+
"io.opentelemetry.api.incubator.ExtendedOpenTelemetry");
30+
}
31+
32+
@Override
33+
public List<TypeInstrumentation> typeInstrumentations() {
34+
return singletonList(new OpenTelemetryIncubatorInstrumentation());
35+
}
36+
37+
@Override
38+
public String getModuleGroup() {
39+
return "opentelemetry-api-bridge";
40+
}
41+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator;/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
import static net.bytebuddy.matcher.ElementMatchers.named;
7+
import static net.bytebuddy.matcher.ElementMatchers.none;
8+
9+
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
10+
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
11+
import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs.ApplicationLoggerFactory152Incubator;
12+
import net.bytebuddy.asm.Advice;
13+
import net.bytebuddy.description.type.TypeDescription;
14+
import net.bytebuddy.matcher.ElementMatcher;
15+
16+
public class OpenTelemetryIncubatorInstrumentation implements TypeInstrumentation {
17+
18+
@Override
19+
public ElementMatcher<TypeDescription> typeMatcher() {
20+
return named("application.io.opentelemetry.api.GlobalOpenTelemetry");
21+
}
22+
23+
@Override
24+
public void transform(TypeTransformer transformer) {
25+
transformer.applyAdviceToMethod(
26+
none(), OpenTelemetryIncubatorInstrumentation.class.getName() + "$InitAdvice");
27+
}
28+
29+
@SuppressWarnings({"ReturnValueIgnored", "unused"})
30+
public static class InitAdvice {
31+
@Advice.OnMethodEnter
32+
public static void init() {
33+
// the sole purpose of this advice is to ensure that ApplicationLoggerFactory152Incubator is
34+
// recognized as helper class and injected into class loader
35+
ApplicationLoggerFactory152Incubator.class.getName();
36+
}
37+
}
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config;
2+
3+
import application.io.opentelemetry.api.incubator.config.ConfigProvider;
4+
import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
5+
import javax.annotation.Nullable;
6+
7+
public class ApplicationConfigProvider155Incubator implements ConfigProvider {
8+
@Nullable
9+
@Override
10+
public DeclarativeConfigProperties getInstrumentationConfig() {
11+
return null;
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_55.incubator.config;
2+
3+
import application.io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
4+
5+
public class ApplicationDeclarativeConfigProperties155Incubator implements
6+
DeclarativeConfigProperties {}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
classification: internal

javaagent/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ dependencies {
9090
baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent"))
9191
baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent"))
9292
baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent"))
93+
baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.55:javaagent"))
9394
baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-api:javaagent"))
9495
baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent"))
9596
baseJavaagentLibs(project(":instrumentation:executors:javaagent"))

opentelemetry-api-shaded-for-instrumenting/build.gradle.kts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,13 @@ val v1_52Deps by configurations.creating {
9393
exclude("io.opentelemetry", "opentelemetry-bom")
9494
exclude("io.opentelemetry", "opentelemetry-bom-alpha")
9595
}
96+
val v1_55Deps by configurations.creating {
97+
isCanBeResolved = true
98+
isCanBeConsumed = false
99+
// exclude the bom added by dependencyManagement
100+
exclude("io.opentelemetry", "opentelemetry-bom")
101+
exclude("io.opentelemetry", "opentelemetry-bom-alpha")
102+
}
96103
// configuration for publishing the shadowed artifact
97104
val v1_10 by configurations.creating {
98105
isCanBeConsumed = true
@@ -142,6 +149,10 @@ val v1_52 by configurations.creating {
142149
isCanBeConsumed = true
143150
isCanBeResolved = false
144151
}
152+
val v1_55 by configurations.creating {
153+
isCanBeConsumed = true
154+
isCanBeResolved = false
155+
}
145156

146157
dependencies {
147158
latestDeps("io.opentelemetry:opentelemetry-api")
@@ -223,6 +234,11 @@ dependencies {
223234
strictly("1.52.0-alpha")
224235
}
225236
}
237+
v1_55Deps("io.opentelemetry:$it") {
238+
version {
239+
strictly("1.55.0-alpha")
240+
}
241+
}
226242
}
227243
}
228244

@@ -286,6 +302,10 @@ tasks {
286302
configurations = listOf(v1_52Deps)
287303
archiveClassifier.set("v1_52")
288304
}
305+
val v1_55Shadow by registering(ShadowJar::class) {
306+
configurations = listOf(v1_55Deps)
307+
archiveClassifier.set("v1_55")
308+
}
289309

290310
artifacts {
291311
add(v1_10.name, v1_10Shadow)
@@ -300,5 +320,6 @@ tasks {
300320
add(v1_47.name, v1_47Shadow)
301321
add(v1_50.name, v1_50Shadow)
302322
add(v1_52.name, v1_52Shadow)
323+
add(v1_55.name, v1_55Shadow)
303324
}
304325
}

0 commit comments

Comments
 (0)