diff --git a/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/client/AbstractKtorClientTracingBuilder.kt b/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/client/AbstractKtorClientTracingBuilder.kt index 3b99bba1f6af..e9aec7b41a3c 100644 --- a/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/client/AbstractKtorClientTracingBuilder.kt +++ b/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/client/AbstractKtorClientTracingBuilder.kt @@ -13,7 +13,9 @@ import io.opentelemetry.api.common.AttributesBuilder import io.opentelemetry.context.Context import io.opentelemetry.instrumentation.api.incubator.builder.internal.DefaultHttpClientInstrumenterBuilder import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor +import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor import io.opentelemetry.instrumentation.ktor.internal.KtorBuilderUtil +import java.util.function.Function abstract class AbstractKtorClientTracingBuilder( private val instrumentationName: String @@ -169,4 +171,8 @@ abstract class AbstractKtorClientTracingBuilder( fun emitExperimentalHttpClientMetrics() { clientBuilder.setEmitExperimentalHttpClientMetrics(true) } + + fun spanNameExtractor(spanNameExtractorTransformer: Function, out SpanNameExtractor>) { + clientBuilder.setSpanNameExtractor(spanNameExtractorTransformer) + } } diff --git a/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/server/AbstractKtorServerTracingBuilder.kt b/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/server/AbstractKtorServerTracingBuilder.kt index 65abba99460c..c822bb806c06 100644 --- a/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/server/AbstractKtorServerTracingBuilder.kt +++ b/instrumentation/ktor/ktor-2-common/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/server/AbstractKtorServerTracingBuilder.kt @@ -6,7 +6,6 @@ package io.opentelemetry.instrumentation.ktor.server import io.ktor.http.* -import io.ktor.server.application.* import io.ktor.server.request.* import io.ktor.server.response.* import io.opentelemetry.api.OpenTelemetry @@ -16,9 +15,11 @@ import io.opentelemetry.context.Context import io.opentelemetry.instrumentation.api.incubator.builder.internal.DefaultHttpServerInstrumenterBuilder import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor +import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor import io.opentelemetry.instrumentation.api.instrumenter.SpanStatusBuilder import io.opentelemetry.instrumentation.api.instrumenter.SpanStatusExtractor import io.opentelemetry.instrumentation.ktor.internal.KtorBuilderUtil +import java.util.function.Function abstract class AbstractKtorServerTracingBuilder(private val instrumentationName: String) { companion object { @@ -86,6 +87,10 @@ abstract class AbstractKtorServerTracingBuilder(private val instrumentationName: } } + fun spanNameExtractor(spanNameExtractorTransformer: Function, out SpanNameExtractor>) { + serverBuilder.setSpanNameExtractor(spanNameExtractorTransformer) + } + @Deprecated("Please use method `attributeExtractor`") fun addAttributeExtractor(extractor: AttributesExtractor) { attributeExtractor {