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
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
```bash
./gradlew :opentelemetry-javaagent:shadowJar
./gradlew :javaagent:shadowJar
```
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"
}
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 {
minJavaVersionForTests = JavaVersion.VERSION_1_8
playVersion = "2.6.20"

View File

@ -12,7 +12,3 @@ dependencies {
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"
if (project.ext.find("skipPublish") != true) {
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/spotbugs.gradle"
afterEvaluate {
if (group == 'io.opentelemetry.instrumentation.auto') {
archivesBaseName = 'opentelemetry-auto-' + archivesBaseName
} else {
archivesBaseName = 'opentelemetry-' + archivesBaseName
}
}
def applyCodeCoverage = !(
project.path.startsWith(":smoke-tests") ||
//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/publish.gradle"
archivesBaseName = 'javaagent-exporters-jaeger'
dependencies {
implementation(deps.opentelemetryJaeger) {
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/publish.gradle"
archivesBaseName = 'javaagent-exporters-logging'
dependencies {
compileOnly deps.opentelemetrySdk
compileOnly deps.opentelemetryApi

View File

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

View File

@ -5,6 +5,8 @@ plugins {
apply from: "$rootDir/gradle/java.gradle"
apply from: "$rootDir/gradle/publish.gradle"
archivesBaseName = 'javaagent-exporters-zipkin'
dependencies {
implementation(deps.opentelemetryZipkin) {
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 {
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
into 'inst'
rename '(^.*)\\.class$', '$1.classdata'
@ -41,18 +41,19 @@ CopySpec isolateSpec(Collection<Task> sourceTasks) {
//Includes everything needed for OOTB experience
shadowJar {
def sourceTasks = [project(':instrumentation').tasks.shadowJar, project(':auto-exporters').tasks.shadowJar]
dependsOn sourceTasks
with isolateSpec(sourceTasks)
dependsOn ':instrumentation:shadowJar'
dependsOn ':javaagent-exporters:shadowJar'
def projectsWithShadowJar = [project(':instrumentation'), project(':javaagent-exporters')]
with isolateSpec(projectsWithShadowJar)
}
//Includes instrumentations, but not exporters
task lightShadow(type: ShadowJar) {
from sourceSets.main.output
def sourceTasks = [project(':instrumentation').tasks.shadowJar]
dependsOn sourceTasks
with isolateSpec(sourceTasks)
dependsOn ':instrumentation:shadowJar'
def projectsWithShadowJar = [project(':instrumentation')]
with isolateSpec(projectsWithShadowJar)
}
publishing {

View File

@ -169,11 +169,11 @@ include ':instrumentation-core:spring:starters:otlp-exporter-starter'
include ':instrumentation-core:spring:starters:zipkin-exporter-starter'
// exporter adapters
include ":auto-exporters"
include ":auto-exporters:jaeger"
include ":auto-exporters:logging"
include ":auto-exporters:otlp"
include ":auto-exporters:zipkin"
include ":javaagent-exporters"
include ":javaagent-exporters:jaeger"
include ":javaagent-exporters:logging"
include ":javaagent-exporters:otlp"
include ":javaagent-exporters:zipkin"
// benchmark
include ':benchmark'
@ -195,8 +195,3 @@ def setBuildFile(project) {
rootProject.children.each {
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 project(':testing-common')
implementation project(':auto-exporters:opentelemetry-auto-exporter-logging')
implementation deps.slf4j
implementation deps.opentelemetryProto
implementation "org.testcontainers:testcontainers:1.14.3"
@ -14,10 +13,9 @@ dependencies {
}
test {
dependsOn = [':javaagent:shadowJar', ':auto-exporters:opentelemetry-auto-exporter-logging:shadowJar']
dependsOn ':javaagent:shadowJar'
doFirst {
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}"
}
}