Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .fossa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ targets:
only:
# only scanning the modules which are published
# (as opposed to internal testing modules
- type: gradle
path: ./
target: ':declarative-config-bridge'
- type: gradle
path: ./
target: ':instrumentation-annotations'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
# OpenTelemetry Instrumentation API Incubator

Instrumentation API Incubator is a collection of libraries that provide additional functionality
for OpenTelemetry instrumentation and auto-configuration. It is intended to be used by
instrumentation authors and auto-configuration providers to enhance their capabilities and provide a
more consistent experience when working with OpenTelemetry.

## Declarative Config Bridge
# Declarative Config Bridge

Declarative Config Bridge allows instrumentation authors to access configuration in a uniform way,
regardless of the configuration source.

The bridge allows you to read configuration using the system property style when dealing with
declarative configuration.

### Example
## Example

As an example, let's look at the inferred spans configuration.
First, there is a configuration method that reads the properties and is unaware of the source of the
Expand Down
19 changes: 19 additions & 0 deletions declarative-config-bridge/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
plugins {
id("otel.java-conventions")
id("otel.publish-conventions")
id("otel.nullaway-conventions")
}

group = "io.opentelemetry.instrumentation"

dependencies {
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
implementation("io.opentelemetry:opentelemetry-api-incubator")

testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")

compileOnly("com.google.code.findbugs:annotations")
testCompileOnly("com.google.code.findbugs:annotations")
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge;
package io.opentelemetry.instrumentation.config.bridge;

public final class ConfigPropertiesUtil {
private ConfigPropertiesUtil() {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge;
package io.opentelemetry.instrumentation.config.bridge;

import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge;
package io.opentelemetry.instrumentation.config.bridge;

import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge;
package io.opentelemetry.instrumentation.config.bridge;

import static org.assertj.core.api.Assertions.assertThat;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge;
package io.opentelemetry.instrumentation.config.bridge;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.eq;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge;
package io.opentelemetry.instrumentation.config.bridge;

import static org.assertj.core.api.Assertions.assertThat;

Expand Down
4 changes: 0 additions & 4 deletions instrumentation-api-incubator/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ dependencies {
api("io.opentelemetry.semconv:opentelemetry-semconv")
api(project(":instrumentation-api"))
api("io.opentelemetry:opentelemetry-api-incubator")
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-incubator")

compileOnly("com.google.auto.value:auto-value-annotations")
annotationProcessor("com.google.auto.value:auto-value")
Expand All @@ -24,8 +22,6 @@ dependencies {
testImplementation("io.opentelemetry:opentelemetry-sdk")
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
testImplementation("io.opentelemetry.semconv:opentelemetry-semconv-incubating")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator")
}

testing {
Expand Down
2 changes: 1 addition & 1 deletion javaagent-tooling/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ dependencies {
implementation(project(":instrumentation-annotations-support"))
implementation(project(":muzzle"))
implementation(project(":sdk-autoconfigure-support"))
implementation(project(":declarative-config-bridge"))

implementation("io.opentelemetry:opentelemetry-api")
implementation("io.opentelemetry:opentelemetry-sdk")
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
implementation("io.opentelemetry:opentelemetry-extension-kotlin")
implementation("io.opentelemetry:opentelemetry-extension-trace-propagators")
// the incubator's ViewConfigCustomizer is used to support loading yaml-based metric views
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
package io.opentelemetry.javaagent.tooling;

import io.opentelemetry.api.incubator.config.ConfigProvider;
import io.opentelemetry.instrumentation.api.incubator.sdk.config.bridge.DeclarativeConfigPropertiesBridgeBuilder;
import io.opentelemetry.instrumentation.config.bridge.DeclarativeConfigPropertiesBridgeBuilder;
import io.opentelemetry.javaagent.bootstrap.OpenTelemetrySdkAccess;
import io.opentelemetry.javaagent.tooling.config.EarlyInitAgentConfig;
import io.opentelemetry.sdk.OpenTelemetrySdk;
Expand Down
24 changes: 5 additions & 19 deletions javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ dependencies {
bootstrapLibs(project(":instrumentation-api"))
// opentelemetry-api is an api dependency of :instrumentation-api, but opentelemetry-api-incubator is not
bootstrapLibs("io.opentelemetry:opentelemetry-api-incubator")
bootstrapLibs(project(":instrumentation-api-incubator"))
bootstrapLibs(project(":instrumentation-annotations-support"))
bootstrapLibs(project(":javaagent-bootstrap"))

Expand All @@ -70,11 +71,8 @@ dependencies {
exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure-spi")
}
baseJavaagentLibs(project(":javaagent-extension-api"))
baseJavaagentLibs(project(":instrumentation-api-incubator"))

baseJavaagentLibs(project(":javaagent-tooling")) {
exclude("io.opentelemetry", "opentelemetry-sdk-extension-autoconfigure-spi")
}
baseJavaagentLibs(project(":javaagent-tooling"))
baseJavaagentLibs(project(":javaagent-internal-logging-application"))
baseJavaagentLibs(project(":javaagent-internal-logging-simple", configuration = "shadow"))
baseJavaagentLibs(project(":muzzle"))
Expand Down Expand Up @@ -149,7 +147,8 @@ tasks {
val buildBootstrapLibs by registering(ShadowJar::class) {
configurations = listOf(bootstrapLibs)

excludeNonBootstrapClasses()
// exclude the agent part of the javaagent-extension-api; these classes will be added in relocate tasks
exclude("io/opentelemetry/javaagent/extension/**")

duplicatesStrategy = DuplicatesStrategy.EXCLUDE

Expand Down Expand Up @@ -425,30 +424,17 @@ fun CopySpec.copyByteBuddy(jar: Provider<RegularFile>) {
}
}

// exclude bootstrap projects from javaagent libs - they won't be added to inst/
fun ShadowJar.excludeNonBootstrapClasses() {
// exclude the agent part of the javaagent-extension-api; these classes will be added in relocate tasks
exclude("io/opentelemetry/javaagent/extension/**")
exclude("**/instrumentation/api/incubator/sdk/**")
}

// exclude bootstrap projects from javaagent libs - they won't be added to inst/
fun ShadowJar.excludeBootstrapClasses() {
dependencies {
exclude(project(":instrumentation-api"))
exclude(project(":instrumentation-api-incubator"))
exclude(project(":instrumentation-annotations-support"))
exclude(project(":javaagent-bootstrap"))
}

// exclude the bootstrap part of the javaagent-extension-api
exclude("io/opentelemetry/javaagent/bootstrap/**")

// all in instrumentation-api-incubator except the bridge package
exclude("io/opentelemetry/instrumentation/api/incubator/builder/**")
exclude("io/opentelemetry/instrumentation/api/incubator/config/**")
exclude("io/opentelemetry/instrumentation/api/incubator/instrumenter/**")
exclude("io/opentelemetry/instrumentation/api/incubator/log/**")
exclude("io/opentelemetry/instrumentation/api/incubator/semconv/**")
}

class JavaagentProvider(
Expand Down
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ include(":javaagent-internal-logging-application")
include(":javaagent-internal-logging-simple")
include(":javaagent")
include(":sdk-autoconfigure-support")
include(":declarative-config-bridge")

include(":bom")
include(":bom-alpha")
Expand Down