Skip to content

Commit e2be7b2

Browse files
authored
Update opentelemetry example
2 parents 54b7338 + 47a4980 commit e2be7b2

File tree

17 files changed

+19
-304
lines changed

17 files changed

+19
-304
lines changed

opentelemetry/README.md

Lines changed: 5 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,48 +4,12 @@
44
plugins for the Ktor client and server respectively. For the source code, see
55
the [repository on GitHub](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/ktor).
66

7-
This project contains extension functions for plugins that allow you to write code in the Ktor DSL style.
7+
This project contains examples of how to use the `KtorClientTracing` and `KtorServerTracing` plugins.
88

9-
Take the following code as an example:
10-
11-
```kotlin
12-
install(KtorServerTracing) {
13-
...
14-
addAttributeExtractor(
15-
object : AttributesExtractor<ApplicationRequest, ApplicationResponse> {
16-
override fun onEnd(
17-
attributes: AttributesBuilder,
18-
context: Context,
19-
request: ApplicationRequest,
20-
response: ApplicationResponse?,
21-
error: Throwable?
22-
) {
23-
attributes.put("end-time", Instant.now().toEpochMilli())
24-
}
25-
}
26-
)
27-
...
28-
}
29-
```
30-
31-
Rewritten in Ktor DSL style, it looks like the following:
32-
33-
```kotlin
34-
install(KtorServerTracing) {
35-
...
36-
attributeExtractor {
37-
onEnd {
38-
attributes.put("end-time", Instant.now().toEpochMilli())
39-
}
40-
}
41-
...
42-
}
43-
```
44-
45-
You can find all extensions for the client plugin `KtorClientTracing` in
46-
the [extractions](./client/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/) folder. \
47-
And you can find all extensions for the server plugin `KtorServerTracing` in
48-
the [extractions](./server/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/) folder.
9+
You can find examples for the client plugin `KtorClientTracing` in
10+
the [extractions](./client/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry) folder. \
11+
And you can find examples for the server plugin `KtorServerTracing` in
12+
the [extractions](./server/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry) folder.
4913

5014
## Running
5115

opentelemetry/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
description = "OpenTelemetry-Ktor example"
22

33
plugins {
4-
id("com.avast.gradle.docker-compose") version "0.14.0"
4+
id("com.avast.gradle.docker-compose") version "0.17.1"
55
}
66

77
subprojects {

opentelemetry/client/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ dependencies {
2424
implementation("io.ktor:ktor-client-websockets:$ktor_version")
2525
implementation("ch.qos.logback:logback-classic:$logback_version")
2626

27-
implementation("io.opentelemetry.instrumentation:opentelemetry-ktor-2.0:$opentelemetry_version-alpha")
27+
implementation("io.opentelemetry.instrumentation:opentelemetry-ktor-3.0:$opentelemetry_version-alpha")
2828
}

opentelemetry/client/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/attributeExtractor.kt

Lines changed: 0 additions & 69 deletions
This file was deleted.

opentelemetry/client/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/capturedHeaders.kt

Lines changed: 0 additions & 21 deletions
This file was deleted.

opentelemetry/client/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/emitExperimentalHttpClientMetrics.kt

Lines changed: 0 additions & 8 deletions
This file was deleted.

opentelemetry/client/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/knownMethods.kt

Lines changed: 0 additions & 13 deletions
This file was deleted.

opentelemetry/client/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/setupClientTelemetry.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@ package opentelemetry.ktor.example.plugins.opentelemetry
33
import io.ktor.client.*
44
import io.ktor.client.engine.cio.*
55
import io.ktor.http.*
6-
import io.opentelemetry.instrumentation.ktor.v2_0.client.KtorClientTracing
6+
import io.opentelemetry.instrumentation.ktor.v3_0.client.KtorClientTracing
77
import opentelemetry.ktor.example.CUSTOM_HEADER
88
import opentelemetry.ktor.example.CUSTOM_METHOD
99
import opentelemetry.ktor.example.getOpenTelemetry
10-
import opentelemetry.ktor.example.plugins.opentelemetry.extractions.*
1110

1211
/**
1312
* Install OpenTelemetry on the client.

opentelemetry/gradle.properties

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
ktor_version=3.0.1
22
kotlin_version=2.0.20
3-
logback_version=1.4.11
3+
logback_version=1.5.12
44
kotlin.code.style=official
55

6-
opentelemetry_version=1.32.0
7-
opentelemetry_semconv_version=1.21.0-alpha
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

opentelemetry/server/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@ dependencies {
2323
implementation("io.ktor:ktor-server-websockets:$ktor_version")
2424
implementation("ch.qos.logback:logback-classic:$logback_version")
2525

26-
implementation("io.opentelemetry.instrumentation:opentelemetry-ktor-2.0:$opentelemetry_version-alpha")
26+
implementation("io.opentelemetry.instrumentation:opentelemetry-ktor-3.0:$opentelemetry_version-alpha")
2727
}

opentelemetry/server/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/attributeExtractor.kt

Lines changed: 0 additions & 65 deletions
This file was deleted.

opentelemetry/server/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/capturedHeaders.kt

Lines changed: 0 additions & 21 deletions
This file was deleted.

opentelemetry/server/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/knownMethods.kt

Lines changed: 0 additions & 13 deletions
This file was deleted.

opentelemetry/server/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/spanKindExtractor.kt

Lines changed: 0 additions & 15 deletions
This file was deleted.

opentelemetry/server/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/extractions/spanStatusExtractor.kt

Lines changed: 0 additions & 26 deletions
This file was deleted.

opentelemetry/server/src/main/kotlin/opentelemetry/ktor/example/plugins/opentelemetry/setupServerTelemetry.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,10 @@ import io.ktor.server.request.*
66
import io.opentelemetry.api.OpenTelemetry
77
import io.opentelemetry.api.trace.SpanKind
88
import io.opentelemetry.api.trace.StatusCode
9-
import io.opentelemetry.instrumentation.ktor.v2_0.server.KtorServerTracing
9+
import io.opentelemetry.instrumentation.ktor.v3_0.server.KtorServerTracing
1010
import opentelemetry.ktor.example.CUSTOM_HEADER
1111
import opentelemetry.ktor.example.CUSTOM_METHOD
1212
import opentelemetry.ktor.example.getOpenTelemetry
13-
import opentelemetry.ktor.example.plugins.opentelemetry.extractions.*
1413
import java.time.Instant
1514

1615
const val serviceName = "opentelemetry-ktor-sample-server"

0 commit comments

Comments
 (0)