File tree Expand file tree Collapse file tree 5 files changed +20
-19
lines changed
client/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry
server/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry
shared/src/main/kotlin/opentelemetry/ktor/example Expand file tree Collapse file tree 5 files changed +20
-19
lines changed Original file line number Diff line number Diff line change 11# OpenTelemetry-Ktor Demo
22
3- [ OpenTelemetry] ( https://opentelemetry.io/ ) provides support for Ktor with the ` KtorClientTracing ` and ` KtorServerTracing `
3+ [ OpenTelemetry] ( https://opentelemetry.io/ ) provides support for Ktor with the ` KtorClientTelemetry ` and ` KtorServerTelemetry `
44plugins for the Ktor client and server respectively. For the source code, see
55the [ repository on GitHub] ( https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/ktor ) .
66
7- This project contains examples of how to use the ` KtorClientTracing ` and ` KtorServerTracing ` plugins.
7+ This project contains examples of how to use the ` KtorClientTelemetry ` and ` KtorServerTelemetry ` plugins.
88
9- You can find examples for the client plugin ` KtorClientTracing ` in
9+ You can find examples for the client plugin ` KtorClientTelemetry ` in
1010the [ extractions] ( ./client/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry ) folder. \
11- And you can find examples for the server plugin ` KtorServerTracing ` in
11+ And you can find examples for the server plugin ` KtorServerTelemetry ` in
1212the [ extractions] ( ./server/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry ) folder.
1313
1414## Running
Original file line number Diff line number Diff line change @@ -3,27 +3,28 @@ package opentelemetry.ktor.example.plugins.opentelemetry
33import io.ktor.client.*
44import io.ktor.client.engine.cio.*
55import io.ktor.http.*
6- import io.opentelemetry.instrumentation.ktor.v3_0.client.KtorClientTracing
6+ import io.opentelemetry.instrumentation.ktor.v2_0.common.internal.Experimental
7+ import io.opentelemetry.instrumentation.ktor.v3_0.KtorClientTelemetry
78import opentelemetry.ktor.example.CUSTOM_HEADER
89import opentelemetry.ktor.example.CUSTOM_METHOD
910import opentelemetry.ktor.example.getOpenTelemetry
1011
1112/* *
1213 * Install OpenTelemetry on the client.
13- * You can see usages of new extension functions for [KtorClientTracing ].
14+ * You can see usages of new extension functions for [KtorClientTelemetry ].
1415 */
1516fun HttpClientConfig<CIOEngineConfig>.setupClientTelemetry () {
1617 val openTelemetry = getOpenTelemetry(serviceName = " opentelemetry-ktor-sample-client" )
17- install(KtorClientTracing ) {
18+ install(KtorClientTelemetry ) {
1819 setOpenTelemetry(openTelemetry)
1920
20- emitExperimentalHttpClientMetrics( )
21+ Experimental .emitExperimentalTelemetry( this )
2122
2223 knownMethods(HttpMethod .DefaultMethods + CUSTOM_METHOD )
2324 capturedRequestHeaders(HttpHeaders .Accept )
2425 capturedResponseHeaders(HttpHeaders .ContentType , CUSTOM_HEADER )
2526
26- attributeExtractor {
27+ attributesExtractor {
2728 onStart {
2829 attributes.put(" start-time" , System .currentTimeMillis())
2930 }
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ kotlin_version=2.1.20
33logback_version =1.5.12
44kotlin.code.style =official
55
6- opentelemetry_version =2.10 .0
7- opentelemetry_semconv_version =1.21.0-alpha
8- opentelemetry_exporter_otlp_version =1.44.1
9- opentelemetry_sdk_extension_autoconfigure_version =1.44.1
6+ opentelemetry_version =2.14 .0
7+ opentelemetry_semconv_version =1.30.0
8+ opentelemetry_exporter_otlp_version =1.48.0
9+ opentelemetry_sdk_extension_autoconfigure_version =1.48.0
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ import io.ktor.server.request.*
66import io.opentelemetry.api.OpenTelemetry
77import io.opentelemetry.api.trace.SpanKind
88import io.opentelemetry.api.trace.StatusCode
9- import io.opentelemetry.instrumentation.ktor.v3_0.server.KtorServerTracing
9+ import io.opentelemetry.instrumentation.ktor.v3_0.KtorServerTelemetry
1010import opentelemetry.ktor.example.CUSTOM_HEADER
1111import opentelemetry.ktor.example.CUSTOM_METHOD
1212import opentelemetry.ktor.example.getOpenTelemetry
@@ -16,11 +16,11 @@ const val serviceName = "opentelemetry-ktor-sample-server"
1616
1717/* *
1818 * Install OpenTelemetry on the server.
19- * You can see usages of new extension functions for [KtorServerTracing ].
19+ * You can see usages of new extension functions for [KtorServerTelemetry ].
2020 */
2121fun Application.setupServerTelemetry (): OpenTelemetry {
2222 val openTelemetry = getOpenTelemetry(serviceName)
23- install(KtorServerTracing ) {
23+ install(KtorServerTelemetry ) {
2424 setOpenTelemetry(openTelemetry)
2525
2626 knownMethods(HttpMethod .DefaultMethods + CUSTOM_METHOD )
@@ -42,7 +42,7 @@ fun Application.setupServerTelemetry(): OpenTelemetry {
4242 }
4343 }
4444
45- attributeExtractor {
45+ attributesExtractor {
4646 onStart {
4747 attributes.put(" start-time" , System .currentTimeMillis())
4848 }
Original file line number Diff line number Diff line change @@ -2,13 +2,13 @@ package opentelemetry.ktor.example
22
33import io.opentelemetry.api.OpenTelemetry
44import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk
5- import io.opentelemetry.semconv.ResourceAttributes
5+ import io.opentelemetry.semconv.ServiceAttributes
66
77fun getOpenTelemetry (serviceName : String ): OpenTelemetry {
88 return AutoConfiguredOpenTelemetrySdk .builder().addResourceCustomizer { oldResource, _ ->
99 oldResource.toBuilder()
1010 .putAll(oldResource.attributes)
11- .put(ResourceAttributes .SERVICE_NAME , serviceName)
11+ .put(ServiceAttributes .SERVICE_NAME , serviceName)
1212 .build()
1313 }.build().openTelemetrySdk
1414}
You can’t perform that action at this time.
0 commit comments