Skip to content

Commit

Permalink
Fix manual instrumentation with Spring Boot app
Browse files Browse the repository at this point in the history
  • Loading branch information
PerfectSlayer committed Dec 20, 2023
1 parent 41cccbd commit 810ba6d
Showing 1 changed file with 45 additions and 39 deletions.
84 changes: 45 additions & 39 deletions content/en/docs/instrumentation/java/manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,22 +190,34 @@ You should get a list of 12 numbers in your browser window, for example:
For both library and app instrumentation, the first step is to install the
dependencies for the OpenTelemetry API.

### Dependency management

A Bill of Material ([BOM](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#bill-of-materials-bom-poms)) ensures that versions of dependencies (including transitive ones) are aligned.
Importing the `opentelemetry-bom` BOM is important to ensure version alignment across all OpenTelemetry dependencies.

{{< tabpane text=true >}} {{% tab Gradle %}}

```kotlin { hl_lines=3 }
```kotlin { hl_lines=["1-5",9] }
imports {
mavenBom("io.dependencyManagement {
opentelemetry:opentelemetry-bom:{{% param vers.otel %}}")
}
}

dependencies {
implementation("org.springframework.boot:spring-boot-starter-web");
implementation("io.opentelemetry:opentelemetry-api:{{% param vers.otel %}}");
implementation("io.opentelemetry:opentelemetry-api");
}
```

Throughout this documentation you will add dependencies. For a full list of
artifact coordinates, see [releases]. For semantic convention releases, see
[semantic-conventions-java].
If you are not using Spring and its `io.spring.dependency-management` dependency managemnt plugin, install the OpenTelemetry BOM and API using Gradle depenencies only.

[releases]: https://github.com/open-telemetry/opentelemetry-java#releases
[semantic-conventions-java]:
https://github.com/open-telemetry/semantic-conventions-java/releases
```kotlin
dependencies {
implementation(platform("io.opentelemetry:opentelemetry-bom:{{% param vers.otel %}}"));
implementation("io.opentelemetry:opentelemetry-api");
}
```

{{% /tab %}} {{% tab Maven %}}

Expand Down Expand Up @@ -233,47 +245,41 @@ artifact coordinates, see [releases]. For semantic convention releases, see

{{% /tab %}} {{% /tabpane %}}

Throughout this documentation you will add dependencies. For a full list of
artifact coordinates, see [releases]. For semantic convention releases, see
[semantic-conventions-java].

[releases]: https://github.com/open-telemetry/opentelemetry-java#releases
[semantic-conventions-java]:
https://github.com/open-telemetry/semantic-conventions-java/releases


### Initialize the SDK

{{% alert title="Note" color="info" %}} If you’re instrumenting a library,
**skip this step**. {{% /alert %}}

If you instrument a Java app, install the dependencies for the OpenTelemetry
SDK.
SDK in addition to the dependencies for the OpenTelemetry API.

{{< tabpane text=true >}} {{% tab Gradle %}}

```kotlin { hl_lines="4-8" }
```kotlin { hl_lines="4-7" }
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web");
implementation("io.opentelemetry:opentelemetry-api:{{% param vers.otel %}}");
implementation("io.opentelemetry:opentelemetry-sdk:{{% param vers.otel %}}");
implementation("io.opentelemetry:opentelemetry-sdk-metrics:{{% param vers.otel %}}");
implementation("io.opentelemetry:opentelemetry-exporter-logging:{{% param vers.otel %}}");
implementation("io.opentelemetry:opentelemetry-semconv:{{% param vers.otel %}}-alpha");
implementation("io.opentelemetry:opentelemetry-api");
implementation("io.opentelemetry:opentelemetry-sdk");
implementation("io.opentelemetry:opentelemetry-sdk-metrics");
implementation("io.opentelemetry:opentelemetry-exporter-logging");
implementation("io.opentelemetry:opentelemetry-semconv:{{% param vers.semconv %}}-alpha");
}
```

{{% /tab %}} {{% tab Maven %}}

```xml
```xml
<project>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-bom</artifactId>
<version>{{% param vers.otel %}}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk</artifactId>
Expand Down Expand Up @@ -312,16 +318,16 @@ To use auto-configuration add the following dependency to your application:

{{< tabpane text=true >}} {{% tab Gradle %}}

```kotlin { hl_lines="9-10" }
```kotlin { hl_lines="8-9" }
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web");
implementation("io.opentelemetry:opentelemetry-api:{{% param vers.otel %}}");
implementation("io.opentelemetry:opentelemetry-sdk:{{% param vers.otel %}}");
implementation("io.opentelemetry:opentelemetry-sdk-metrics:{{% param vers.otel %}}");
implementation("io.opentelemetry:opentelemetry-exporter-logging:{{% param vers.otel %}}");
implementation("io.opentelemetry.semconv:opentelemetry-semconv:{{% param vers.semconv %}}-alpha")
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:{{% param vers.otel %}}");
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:{{% param vers.otel %}}");
implementation("io.opentelemetry:opentelemetry-api");
implementation("io.opentelemetry:opentelemetry-sdk");
implementation("io.opentelemetry:opentelemetry-sdk-metrics");
implementation("io.opentelemetry:opentelemetry-exporter-logging");
implementation("io.opentelemetry.semconv:opentelemetry-semconv:{{% param vers.semconv %}}-alpha");
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure");
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi");
}
```

Expand Down

0 comments on commit 810ba6d

Please sign in to comment.