Browse Source

Separate ktor 2.0 client and server instrumentation (#11454)

Lauri Tulmin 9 months ago
parent
commit
f4f9b80455

+ 31 - 0
instrumentation/ktor/ktor-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v2_0/KtorClientInstrumentationModule.java

@@ -0,0 +1,31 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.ktor.v2_0;
+
+import static java.util.Collections.singletonList;
+
+import com.google.auto.service.AutoService;
+import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
+import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
+import java.util.List;
+
+@AutoService(InstrumentationModule.class)
+public class KtorClientInstrumentationModule extends InstrumentationModule {
+
+  public KtorClientInstrumentationModule() {
+    super("ktor", "ktor-client", "ktor-2.0", "ktor-client-2.0");
+  }
+
+  @Override
+  public boolean isHelperClass(String className) {
+    return className.startsWith("io.opentelemetry.extension.kotlin.");
+  }
+
+  @Override
+  public List<TypeInstrumentation> typeInstrumentations() {
+    return singletonList(new HttpClientInstrumentation());
+  }
+}

+ 5 - 5
instrumentation/ktor/ktor-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v2_0/KtorInstrumentationModule.java → instrumentation/ktor/ktor-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v2_0/KtorServerInstrumentationModule.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.javaagent.instrumentation.ktor.v2_0;
 
-import static java.util.Arrays.asList;
+import static java.util.Collections.singletonList;
 
 import com.google.auto.service.AutoService;
 import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
@@ -13,10 +13,10 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import java.util.List;
 
 @AutoService(InstrumentationModule.class)
-public class KtorInstrumentationModule extends InstrumentationModule {
+public class KtorServerInstrumentationModule extends InstrumentationModule {
 
-  public KtorInstrumentationModule() {
-    super("ktor", "ktor-2.0");
+  public KtorServerInstrumentationModule() {
+    super("ktor", "ktor-server", "ktor-2.0", "ktor-server-2.0");
   }
 
   @Override
@@ -26,6 +26,6 @@ public class KtorInstrumentationModule extends InstrumentationModule {
 
   @Override
   public List<TypeInstrumentation> typeInstrumentations() {
-    return asList(new ServerInstrumentation(), new HttpClientInstrumentation());
+    return singletonList(new ServerInstrumentation());
   }
 }