Rename auto exporters module (#1022)

This commit is contained in:
Trask Stalnaker 2020-08-17 21:04:13 -07:00 committed by GitHub
parent f3c049f2ff
commit 6a07b173af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 105 additions and 98 deletions

View File

@ -10,4 +10,4 @@ LIBS_DIR=./libs/
mkdir -p $LIBS_DIR >/dev/null 2>&1 mkdir -p $LIBS_DIR >/dev/null 2>&1
cp workspace/javaagent/build/libs/*.jar $LIBS_DIR/ cp workspace/javaagent/build/libs/*.jar $LIBS_DIR/
cp workspace/auto-exporters/*/build/libs/*.jar $LIBS_DIR/ cp workspace/javaagent-exporters/*/build/libs/*.jar $LIBS_DIR/

View File

@ -33,7 +33,7 @@ java -version
and then generate the -all artifact and then generate the -all artifact
```bash ```bash
./gradlew :opentelemetry-javaagent:shadowJar ./gradlew :javaagent:shadowJar
``` ```
and then you can find the java agent artifact at and then you can find the java agent artifact at

View File

@ -1,66 +0,0 @@
plugins {
id "com.github.johnrengelman.shadow"
}
apply from: "$rootDir/gradle/java.gradle"
dependencies {
testImplementation project(':javaagent-tooling')
testImplementation deps.opentelemetrySdkAutoConfig
testImplementation project(':auto-exporters:opentelemetry-auto-exporter-otlp')
testImplementation project(':auto-exporters:opentelemetry-auto-exporter-jaeger')
testImplementation project(':auto-exporters:opentelemetry-auto-exporter-logging')
testImplementation project(':auto-exporters:opentelemetry-auto-exporter-zipkin')
}
tasks.withType(Test).configureEach() {
dependsOn ':auto-exporters:opentelemetry-auto-exporter-otlp:shadowJar'
dependsOn ':auto-exporters:opentelemetry-auto-exporter-jaeger:shadowJar'
dependsOn ':auto-exporters:opentelemetry-auto-exporter-logging:shadowJar'
dependsOn ':auto-exporters:opentelemetry-auto-exporter-zipkin:shadowJar'
doFirst {
systemProperty 'projectVersion', allprojects.version[0]
systemProperty 'adapterRoot', "$rootDir/auto-exporters"
systemProperty 'otlpExporterJar', project(':auto-exporters:opentelemetry-auto-exporter-otlp').tasks.shadowJar.archivePath
systemProperty 'jaegerExporterJar', project(':auto-exporters:opentelemetry-auto-exporter-jaeger').tasks.shadowJar.archivePath
systemProperty 'loggingExporterJar', project(':auto-exporters:opentelemetry-auto-exporter-logging').tasks.shadowJar.archivePath
systemProperty 'zipkinExporterJar', project(':auto-exporters:opentelemetry-auto-exporter-zipkin').tasks.shadowJar.archivePath
}
}
configurations {
shadowInclude
}
dependencies {
shadowInclude project(path: ':auto-exporters:opentelemetry-auto-exporter-logging', configuration: 'shadow')
shadowInclude project(path: ':auto-exporters:opentelemetry-auto-exporter-otlp', configuration: 'shadow')
shadowInclude project(path: ':auto-exporters:opentelemetry-auto-exporter-jaeger', configuration: 'shadow')
shadowInclude project(path: ':auto-exporters:opentelemetry-auto-exporter-zipkin', configuration: 'shadow')
}
jar.enabled = false
shadowJar {
configurations = [project.configurations.shadowInclude]
archiveClassifier = ''
mergeServiceFiles()
exclude '**/module-info.class'
// Prevents conflict with other SLF4J instances. Important for premain.
relocate 'org.slf4j', 'io.opentelemetry.javaagent.slf4j'
// rewrite dependencies calling Logger.getLogger
relocate 'java.util.logging.Logger', 'io.opentelemetry.javaagent.bootstrap.PatchLogger'
// relocate OpenTelemetry API usage
relocate "io.opentelemetry.OpenTelemetry", "io.opentelemetry.javaagent.shaded.io.opentelemetry.OpenTelemetry"
relocate "io.opentelemetry.common", "io.opentelemetry.javaagent.shaded.io.opentelemetry.common"
relocate "io.opentelemetry.context", "io.opentelemetry.javaagent.shaded.io.opentelemetry.context"
relocate "io.opentelemetry.correlationcontext", "io.opentelemetry.javaagent.shaded.io.opentelemetry.correlationcontext"
relocate "io.opentelemetry.internal", "io.opentelemetry.javaagent.shaded.io.opentelemetry.internal"
relocate "io.opentelemetry.metrics", "io.opentelemetry.javaagent.shaded.io.opentelemetry.metrics"
relocate "io.opentelemetry.trace", "io.opentelemetry.javaagent.shaded.io.opentelemetry.trace"
}

View File

@ -2,6 +2,12 @@ plugins {
id "org.gradle.playframework" version "0.9" id "org.gradle.playframework" version "0.9"
} }
afterEvaluate {
// assemble fails without this because gradle play plugin looks for the jar file without
// considering the updated archivesBaseName that we have set in java.gradle
archivesBaseName = 'play-perftest'
}
ext { ext {
minJavaVersionForTests = JavaVersion.VERSION_1_8 minJavaVersionForTests = JavaVersion.VERSION_1_8
playVersion = "2.6.20" playVersion = "2.6.20"

View File

@ -12,7 +12,3 @@ dependencies {
testImplementation project(':testing-common') testImplementation project(':testing-common')
} }
afterEvaluate {
archivesBaseName = 'opentelemetry-' + archivesBaseName
}

View File

@ -16,11 +16,6 @@ byteBuddy {
} }
} }
// TODO(anuraaga): This needs to be added before adding publish.gradle, clean up this ordering restraint.
afterEvaluate {
archivesBaseName = 'opentelemetry-auto-' + archivesBaseName
}
apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/gradle/java.gradle"
if (project.ext.find("skipPublish") != true) { if (project.ext.find("skipPublish") != true) {
apply from: "$rootDir/gradle/publish.gradle" apply from: "$rootDir/gradle/publish.gradle"

View File

@ -9,6 +9,14 @@ apply from: "$rootDir/gradle/checkstyle.gradle"
apply from: "$rootDir/gradle/codenarc.gradle" apply from: "$rootDir/gradle/codenarc.gradle"
apply from: "$rootDir/gradle/spotbugs.gradle" apply from: "$rootDir/gradle/spotbugs.gradle"
afterEvaluate {
if (group == 'io.opentelemetry.instrumentation.auto') {
archivesBaseName = 'opentelemetry-auto-' + archivesBaseName
} else {
archivesBaseName = 'opentelemetry-' + archivesBaseName
}
}
def applyCodeCoverage = !( def applyCodeCoverage = !(
project.path.startsWith(":smoke-tests") || project.path.startsWith(":smoke-tests") ||
//TODO why some tests fail on java 11 if jacoco is present? //TODO why some tests fail on java 11 if jacoco is present?

View File

@ -5,6 +5,8 @@ plugins {
apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/gradle/java.gradle"
apply from: "$rootDir/gradle/publish.gradle" apply from: "$rootDir/gradle/publish.gradle"
archivesBaseName = 'javaagent-exporters-jaeger'
dependencies { dependencies {
implementation(deps.opentelemetryJaeger) { implementation(deps.opentelemetryJaeger) {
exclude group: 'io.opentelemetry', module: 'opentelemetry-sdk' exclude group: 'io.opentelemetry', module: 'opentelemetry-sdk'

View File

@ -0,0 +1,66 @@
plugins {
id "com.github.johnrengelman.shadow"
}
apply from: "$rootDir/gradle/java.gradle"
dependencies {
testImplementation project(':javaagent-tooling')
testImplementation deps.opentelemetrySdkAutoConfig
testImplementation project(':javaagent-exporters:otlp')
testImplementation project(':javaagent-exporters:jaeger')
testImplementation project(':javaagent-exporters:logging')
testImplementation project(':javaagent-exporters:zipkin')
}
tasks.withType(Test).configureEach() {
dependsOn ':javaagent-exporters:otlp:shadowJar'
dependsOn ':javaagent-exporters:jaeger:shadowJar'
dependsOn ':javaagent-exporters:logging:shadowJar'
dependsOn ':javaagent-exporters:zipkin:shadowJar'
doFirst {
systemProperty 'projectVersion', allprojects.version[0]
systemProperty 'adapterRoot', "$rootDir/javaagent-exporters"
systemProperty 'otlpExporterJar', project(':javaagent-exporters:otlp').tasks.shadowJar.archivePath
systemProperty 'jaegerExporterJar', project(':javaagent-exporters:jaeger').tasks.shadowJar.archivePath
systemProperty 'loggingExporterJar', project(':javaagent-exporters:logging').tasks.shadowJar.archivePath
systemProperty 'zipkinExporterJar', project(':javaagent-exporters:zipkin').tasks.shadowJar.archivePath
}
}
configurations {
shadowInclude
}
dependencies {
shadowInclude project(path: ':javaagent-exporters:logging', configuration: 'shadow')
shadowInclude project(path: ':javaagent-exporters:otlp', configuration: 'shadow')
shadowInclude project(path: ':javaagent-exporters:jaeger', configuration: 'shadow')
shadowInclude project(path: ':javaagent-exporters:zipkin', configuration: 'shadow')
}
jar.enabled = false
shadowJar {
configurations = [project.configurations.shadowInclude]
archiveClassifier = ''
mergeServiceFiles()
exclude '**/module-info.class'
// Prevents conflict with other SLF4J instances. Important for premain.
relocate 'org.slf4j', 'io.opentelemetry.javaagent.slf4j'
// rewrite dependencies calling Logger.getLogger
relocate 'java.util.logging.Logger', 'io.opentelemetry.javaagent.bootstrap.PatchLogger'
// relocate OpenTelemetry API usage
relocate "io.opentelemetry.OpenTelemetry", "io.opentelemetry.javaagent.shaded.io.opentelemetry.OpenTelemetry"
relocate "io.opentelemetry.common", "io.opentelemetry.javaagent.shaded.io.opentelemetry.common"
relocate "io.opentelemetry.context", "io.opentelemetry.javaagent.shaded.io.opentelemetry.context"
relocate "io.opentelemetry.correlationcontext", "io.opentelemetry.javaagent.shaded.io.opentelemetry.correlationcontext"
relocate "io.opentelemetry.internal", "io.opentelemetry.javaagent.shaded.io.opentelemetry.internal"
relocate "io.opentelemetry.metrics", "io.opentelemetry.javaagent.shaded.io.opentelemetry.metrics"
relocate "io.opentelemetry.trace", "io.opentelemetry.javaagent.shaded.io.opentelemetry.trace"
}

View File

@ -5,6 +5,8 @@ plugins {
apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/gradle/java.gradle"
apply from: "$rootDir/gradle/publish.gradle" apply from: "$rootDir/gradle/publish.gradle"
archivesBaseName = 'javaagent-exporters-logging'
dependencies { dependencies {
compileOnly deps.opentelemetrySdk compileOnly deps.opentelemetrySdk
compileOnly deps.opentelemetryApi compileOnly deps.opentelemetryApi

View File

@ -5,6 +5,8 @@ plugins {
apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/gradle/java.gradle"
apply from: "$rootDir/gradle/publish.gradle" apply from: "$rootDir/gradle/publish.gradle"
archivesBaseName = 'javaagent-exporters-otlp'
dependencies { dependencies {
implementation(deps.opentelemetryOtlp) { implementation(deps.opentelemetryOtlp) {
exclude group: 'io.opentelemetry', module: 'opentelemetry-sdk' exclude group: 'io.opentelemetry', module: 'opentelemetry-sdk'

View File

@ -5,6 +5,8 @@ plugins {
apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/gradle/java.gradle"
apply from: "$rootDir/gradle/publish.gradle" apply from: "$rootDir/gradle/publish.gradle"
archivesBaseName = 'javaagent-exporters-zipkin'
dependencies { dependencies {
implementation(deps.opentelemetryZipkin) { implementation(deps.opentelemetryZipkin) {
exclude group: 'io.opentelemetry', module: 'opentelemetry-sdk' exclude group: 'io.opentelemetry', module: 'opentelemetry-sdk'

View File

@ -27,9 +27,9 @@ jar {
} }
} }
CopySpec isolateSpec(Collection<Task> sourceTasks) { CopySpec isolateSpec(Collection<Project> projectsWithShadowJar) {
return copySpec { return copySpec {
from(sourceTasks.collect { zipTree(it.archiveFile) }) { from({ projectsWithShadowJar.tasks.shadowJar.collect { zipTree(it.archiveFile) } }) {
// important to keep prefix 'inst' short, as it is prefixed to lots of strings in runtime mem // important to keep prefix 'inst' short, as it is prefixed to lots of strings in runtime mem
into 'inst' into 'inst'
rename '(^.*)\\.class$', '$1.classdata' rename '(^.*)\\.class$', '$1.classdata'
@ -41,18 +41,19 @@ CopySpec isolateSpec(Collection<Task> sourceTasks) {
//Includes everything needed for OOTB experience //Includes everything needed for OOTB experience
shadowJar { shadowJar {
def sourceTasks = [project(':instrumentation').tasks.shadowJar, project(':auto-exporters').tasks.shadowJar] dependsOn ':instrumentation:shadowJar'
dependsOn sourceTasks dependsOn ':javaagent-exporters:shadowJar'
with isolateSpec(sourceTasks) def projectsWithShadowJar = [project(':instrumentation'), project(':javaagent-exporters')]
with isolateSpec(projectsWithShadowJar)
} }
//Includes instrumentations, but not exporters //Includes instrumentations, but not exporters
task lightShadow(type: ShadowJar) { task lightShadow(type: ShadowJar) {
from sourceSets.main.output from sourceSets.main.output
def sourceTasks = [project(':instrumentation').tasks.shadowJar] dependsOn ':instrumentation:shadowJar'
dependsOn sourceTasks def projectsWithShadowJar = [project(':instrumentation')]
with isolateSpec(sourceTasks) with isolateSpec(projectsWithShadowJar)
} }
publishing { publishing {

View File

@ -169,11 +169,11 @@ include ':instrumentation-core:spring:starters:otlp-exporter-starter'
include ':instrumentation-core:spring:starters:zipkin-exporter-starter' include ':instrumentation-core:spring:starters:zipkin-exporter-starter'
// exporter adapters // exporter adapters
include ":auto-exporters" include ":javaagent-exporters"
include ":auto-exporters:jaeger" include ":javaagent-exporters:jaeger"
include ":auto-exporters:logging" include ":javaagent-exporters:logging"
include ":auto-exporters:otlp" include ":javaagent-exporters:otlp"
include ":auto-exporters:zipkin" include ":javaagent-exporters:zipkin"
// benchmark // benchmark
include ':benchmark' include ':benchmark'
@ -195,8 +195,3 @@ def setBuildFile(project) {
rootProject.children.each { rootProject.children.each {
setBuildFile(it) setBuildFile(it)
} }
project(':auto-exporters:jaeger').name = 'opentelemetry-auto-exporter-jaeger'
project(':auto-exporters:logging').name = 'opentelemetry-auto-exporter-logging'
project(':auto-exporters:otlp').name = 'opentelemetry-auto-exporter-otlp'
project(':auto-exporters:zipkin').name = 'opentelemetry-auto-exporter-zipkin'

View File

@ -6,7 +6,6 @@ dependencies {
api deps.spock api deps.spock
api project(':testing-common') api project(':testing-common')
implementation project(':auto-exporters:opentelemetry-auto-exporter-logging')
implementation deps.slf4j implementation deps.slf4j
implementation deps.opentelemetryProto implementation deps.opentelemetryProto
implementation "org.testcontainers:testcontainers:1.14.3" implementation "org.testcontainers:testcontainers:1.14.3"
@ -14,10 +13,9 @@ dependencies {
} }
test { test {
dependsOn = [':javaagent:shadowJar', ':auto-exporters:opentelemetry-auto-exporter-logging:shadowJar'] dependsOn ':javaagent:shadowJar'
doFirst { doFirst {
jvmArgs "-Dio.opentelemetry.smoketest.agent.shadowJar.path=${project(':javaagent').tasks.shadowJar.archivePath}" jvmArgs "-Dio.opentelemetry.smoketest.agent.shadowJar.path=${project(':javaagent').tasks.shadowJar.archivePath}"
jvmArgs "-Dotel.exporter.jar=${project(':auto-exporters:opentelemetry-auto-exporter-logging').tasks.shadowJar.archivePath}"
} }
} }