From d1a66e38132af8974889c20abb9c7124654df14b Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 14 Jun 2021 11:57:58 +0900 Subject: [PATCH 1/3] Only include exporters in -all jar. --- .../javaagent-exporters.gradle | 21 +++++++++++++++++++ javaagent-tooling/javaagent-tooling.gradle | 13 ++---------- javaagent/javaagent.gradle | 6 ++++-- settings.gradle | 1 + 4 files changed, 28 insertions(+), 13 deletions(-) create mode 100644 javaagent-exporters/javaagent-exporters.gradle diff --git a/javaagent-exporters/javaagent-exporters.gradle b/javaagent-exporters/javaagent-exporters.gradle new file mode 100644 index 000000000000..ed080ef23f40 --- /dev/null +++ b/javaagent-exporters/javaagent-exporters.gradle @@ -0,0 +1,21 @@ +// Project to collect and shade exporter dependencies included in the agent's full distribution. + +plugins { + id "otel.shadow-conventions" +} + +apply from: "$rootDir/gradle/java.gradle" + +dependencies { + implementation "io.opentelemetry:opentelemetry-exporter-jaeger" + implementation "io.opentelemetry:opentelemetry-exporter-otlp" + implementation "io.opentelemetry:opentelemetry-exporter-otlp-metrics" + + implementation "io.opentelemetry:opentelemetry-exporter-prometheus" + implementation "io.prometheus:simpleclient" + implementation "io.prometheus:simpleclient_httpserver" + + implementation "io.opentelemetry:opentelemetry-exporter-zipkin" + + implementation "io.grpc:grpc-netty-shaded:1.35.1" +} diff --git a/javaagent-tooling/javaagent-tooling.gradle b/javaagent-tooling/javaagent-tooling.gradle index 2285d5a94c87..d66d9702099c 100644 --- a/javaagent-tooling/javaagent-tooling.gradle +++ b/javaagent-tooling/javaagent-tooling.gradle @@ -35,16 +35,9 @@ dependencies { exclude group: 'io.opentelemetry', module: 'opentelemetry-sdk-common' } - implementation "io.opentelemetry:opentelemetry-exporter-jaeger" + // Only the logging exporter is included in our slim distribution so we include it here. + // Other exporters are in javaagent-exporters implementation "io.opentelemetry:opentelemetry-exporter-logging" - implementation "io.opentelemetry:opentelemetry-exporter-otlp" - implementation "io.opentelemetry:opentelemetry-exporter-otlp-metrics" - - implementation "io.opentelemetry:opentelemetry-exporter-prometheus" - implementation "io.prometheus:simpleclient" - implementation "io.prometheus:simpleclient_httpserver" - - implementation "io.opentelemetry:opentelemetry-exporter-zipkin" api "net.bytebuddy:byte-buddy" implementation "net.bytebuddy:byte-buddy-agent" @@ -53,8 +46,6 @@ dependencies { implementation "org.slf4j:slf4j-api" implementation "com.google.guava:guava" - implementation "io.grpc:grpc-netty-shaded:1.35.1" - testImplementation project(':testing-common') testImplementation "org.assertj:assertj-core" testImplementation "org.mockito:mockito-core" diff --git a/javaagent/javaagent.gradle b/javaagent/javaagent.gradle index 02de6cde89bf..a6dfd14cc8d8 100644 --- a/javaagent/javaagent.gradle +++ b/javaagent/javaagent.gradle @@ -53,8 +53,10 @@ CopySpec isolateSpec(Collection projectsWithShadowJar) { //Includes everything needed for OOTB experience shadowJar { - dependsOn ':instrumentation:shadowJar' - def projectsWithShadowJar = [project(':instrumentation')] + def projectsWithShadowJar = [project(':instrumentation'), project(":javaagent-exporters")] + projectsWithShadowJar.each { + dependsOn("${it.path}:shadowJar") + } with isolateSpec(projectsWithShadowJar) } diff --git a/settings.gradle b/settings.gradle index aa0e0af23805..c4cd34d482a6 100644 --- a/settings.gradle +++ b/settings.gradle @@ -58,6 +58,7 @@ include ':opentelemetry-api-shaded-for-instrumenting' include ':opentelemetry-ext-annotations-shaded-for-instrumenting' include ':javaagent-bootstrap' include ':javaagent-bootstrap-tests' +include ':javaagent-exporters' include ':javaagent-extension-api' include ':javaagent-tooling' include ':javaagent' From deaad9be955dde4e1862a81839b8971fdbf53024 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 14 Jun 2021 12:46:33 +0900 Subject: [PATCH 2/3] override exporter --- javaagent-tooling/javaagent-tooling.gradle | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/javaagent-tooling/javaagent-tooling.gradle b/javaagent-tooling/javaagent-tooling.gradle index d66d9702099c..dd2dcca97bd2 100644 --- a/javaagent-tooling/javaagent-tooling.gradle +++ b/javaagent-tooling/javaagent-tooling.gradle @@ -52,3 +52,10 @@ dependencies { instrumentationMuzzle sourceSets.main.output } + +// Here we only include autoconfigure but don't include OTLP exporters to ensure they are only in +// the full distribution. We need to override the default exporter setting of OTLP as a result. +tasks.withType(Test).configureEach { + environment "OTEL_TRACES_EXPORTER", "none" + environment "OTEL_METRICS_EXPORTER", "none" +} \ No newline at end of file From 2ed195fc5bb16275da53f9fe59c96c98c1440681 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 14 Jun 2021 12:46:42 +0900 Subject: [PATCH 3/3] Newline --- javaagent-tooling/javaagent-tooling.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javaagent-tooling/javaagent-tooling.gradle b/javaagent-tooling/javaagent-tooling.gradle index dd2dcca97bd2..a46d25eee72f 100644 --- a/javaagent-tooling/javaagent-tooling.gradle +++ b/javaagent-tooling/javaagent-tooling.gradle @@ -58,4 +58,4 @@ dependencies { tasks.withType(Test).configureEach { environment "OTEL_TRACES_EXPORTER", "none" environment "OTEL_METRICS_EXPORTER", "none" -} \ No newline at end of file +}