Skip to content

Commit

Permalink
Rename auto exporters module (#1022)
Browse files Browse the repository at this point in the history
  • Loading branch information
trask authored Aug 18, 2020
1 parent f3c049f commit 6a07b17
Show file tree
Hide file tree
Showing 27 changed files with 105 additions and 98 deletions.
2 changes: 1 addition & 1 deletion .circleci/collect_libs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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/
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
66 changes: 0 additions & 66 deletions auto-exporters/auto-exporters.gradle

This file was deleted.

6 changes: 6 additions & 0 deletions benchmark-integration/play-perftest/play-perftest.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
4 changes: 0 additions & 4 deletions gradle/instrumentation-library.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,3 @@ dependencies {

testImplementation project(':testing-common')
}

afterEvaluate {
archivesBaseName = 'opentelemetry-' + archivesBaseName
}
5 changes: 0 additions & 5 deletions gradle/instrumentation.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
8 changes: 8 additions & 0 deletions gradle/java.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
66 changes: 66 additions & 0 deletions javaagent-exporters/javaagent-exporters.gradle
Original file line number Diff line number Diff line change
@@ -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"
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
17 changes: 9 additions & 8 deletions javaagent/javaagent.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -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 {
Expand Down
15 changes: 5 additions & 10 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -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'
4 changes: 1 addition & 3 deletions smoke-tests/smoke-tests.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,16 @@ 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"
implementation 'com.google.protobuf:protobuf-java-util:3.12.4'
}

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}"
}
}

0 comments on commit 6a07b17

Please sign in to comment.