Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
Next Next commit
complete relocation
  • Loading branch information
thugrock7 committed Aug 5, 2025
commit 496b07054df735053ee4697a3cd74f93e85e358e
33 changes: 18 additions & 15 deletions instrumentation/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -40,27 +40,30 @@ tasks {

mergeServiceFiles()

relocate("com.blogspot.mydailyjava.weaklockfree", "io.opentelemetry.instrumentation.api.internal.shaded.weaklockfree")
relocate("com.blogspot.mydailyjava.weaklockfree", "ai.traceable.io.opentelemetry.instrumentation.api.internal.shaded.weaklockfree")
Copy link
Copy Markdown

@varkey98 varkey98 Aug 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

feels weird that we add traceable in hypertrace repos? Maybe org.hypertrace instead of ai.traceable?

Copy link
Copy Markdown
Contributor Author

@thugrock7 thugrock7 Aug 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will shift this entire repo to traceable javaagent

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, then lets do that first and do this there? Addng traceable package names in this repo which is part of the hypertrace opensource code feels weird

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. There is a waiting customer requiring this fix
  2. Also instead of how we did for goagent, I would like a complete relocation of instrumentations for traceable. As that helps with debuggers. So, it will take time
  3. We already do use traceable's name in this repo
    Like https://github.com/hypertrace/javaagent/blob/main/javaagent/src/main/java/org/hypertrace/agent/instrument/HypertraceAgent.java#L80

Copy link
Copy Markdown

@varkey98 varkey98 Aug 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. agreed
  2. agreed. When you migrate it, maybe worth it to switch these to hypertrace at that point, because we'll be archiving this repo at that point and its bad to leave the repo in a mangled state. Actually, just for my understanding, whats the issue when you add hypertrace in the name instead of traceable? I'd guess the shaded package can take any name as long as it doesnt conflict and not specifically require traceable.
  3. this is specifically checking for traceable agent, not adding traceable as part of its own code.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, just moving to org.hypertrace shouldn't be problem though, I am just saying merging with traceable repo will take time

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohh then, coming back to my first point, maybe worth it to use org.hypertrace here instead of ai.traceable here, point being since we have separate repos we try to keep traceable out of this open source repo? But this is really a nit, if you feel we dont need that, lmk and I can approve

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But one thing I don't like is that, when we use traceable agent, due to current structure instrumentation scope of spans will be shown as
InstrumentationScope org.hypertrace.io.opentelemetry.netty-4.1 1.33.0-alpha in the case if we relocate to org.hypertrace instead.
which is a bit weird according to me as all customers would use traceable javaagent

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

which will anyways be fixed after you migrate this repo to the traceable one right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yup, should be. But till then
I am ok to change though, it is a nit call anyway


exclude("**/module-info.class")

relocate("org.slf4j", "io.opentelemetry.javaagent.slf4j")
relocate("java.util.logging.Logger", "io.opentelemetry.javaagent.bootstrap.PatchLogger")
relocate("org.slf4j", "ai.traceable.io.opentelemetry.javaagent.slf4j")
relocate("java.util.logging.Logger", "ai.traceable.io.opentelemetry.javaagent.bootstrap.PatchLogger")

relocate("io.opentelemetry", "ai.traceable.io.opentelemetry")

// // prevents conflict with library instrumentation
relocate("io.opentelemetry.instrumentation.api", "io.opentelemetry.javaagent.shaded.instrumentation.api")
//opentelemetry rewrite library instrumentation dependencies
relocate("io.opentelemetry.instrumentation", "io.opentelemetry.javaagent.shaded.instrumentation") {
exclude("io.opentelemetry.javaagent.instrumentation.**")
}
// relocate("io.opentelemetry.instrumentation.api", "io.opentelemetry.javaagent.shaded.instrumentation.api")
// //opentelemetry rewrite library instrumentation dependencies
// relocate("io.opentelemetry.instrumentation", "io.opentelemetry.javaagent.shaded.instrumentation") {
// exclude("io.opentelemetry.javaagent.instrumentation.**")
// }
//
// // relocate OpenTelemetry API
// relocate("io.opentelemetry.api", "io.opentelemetry.javaagent.shaded.io.opentelemetry.api")
// relocate("io.opentelemetry.semconv", "io.opentelemetry.javaagent.shaded.io.opentelemetry.semconv")
// relocate("io.opentelemetry.spi", "io.opentelemetry.javaagent.shaded.io.opentelemetry.spi")
// relocate("io.opentelemetry.context", "io.opentelemetry.javaagent.shaded.io.opentelemetry.context")
// relocate("io.opentelemetry.extension.kotlin", "io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.kotlin")
// relocate("io.opentelemetry.extension.aws", "io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.aws")

// relocate OpenTelemetry API
relocate("io.opentelemetry.api", "io.opentelemetry.javaagent.shaded.io.opentelemetry.api")
relocate("io.opentelemetry.semconv", "io.opentelemetry.javaagent.shaded.io.opentelemetry.semconv")
relocate("io.opentelemetry.spi", "io.opentelemetry.javaagent.shaded.io.opentelemetry.spi")
relocate("io.opentelemetry.context", "io.opentelemetry.javaagent.shaded.io.opentelemetry.context")
relocate("io.opentelemetry.extension.kotlin", "io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.kotlin")
relocate("io.opentelemetry.extension.aws", "io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.aws")
}
}

Expand Down
28 changes: 15 additions & 13 deletions javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,30 @@ tasks {
}

shadowJar {
relocate("com.blogspot.mydailyjava.weaklockfree", "io.opentelemetry.instrumentation.api.internal.shaded.weaklockfree")
relocate("com.blogspot.mydailyjava.weaklockfree", "ai.traceable.io.opentelemetry.instrumentation.api.internal.shaded.weaklockfree")

dependencies {
exclude(dependency("org.codehaus.mojo:animal-sniffer-annotations"))
exclude(dependency("javax.annotation:javax.annotation-api"))
}

relocate("org.slf4j", "io.opentelemetry.javaagent.slf4j")
relocate("java.util.logging.Logger", "io.opentelemetry.javaagent.bootstrap.PatchLogger")
relocate("com.fasterxml.jackson", "io.opentelemetry.javaagent.shaded.org.hypertrace.shaded.com.fasterxml.jackson")
relocate("org.yaml", "io.opentelemetry.javaagent.shaded.org.hypertrace.shaded.org.yaml")
relocate("org.slf4j", "ai.traceable.io.opentelemetry.javaagent.slf4j")
relocate("java.util.logging.Logger", "ai.traceable.io.opentelemetry.javaagent.bootstrap.PatchLogger")
relocate("com.fasterxml.jackson", "ai.traceable.io.opentelemetry.javaagent.shaded.org.hypertrace.shaded.com.fasterxml.jackson")
relocate("org.yaml", "ai.traceable.io.opentelemetry.javaagent.shaded.org.hypertrace.shaded.org.yaml")

relocate("io.opentelemetry", "ai.traceable.io.opentelemetry")

// prevents conflict with library instrumentation
relocate("io.opentelemetry.instrumentation.api", "io.opentelemetry.javaagent.shaded.instrumentation.api")
// relocate("io.opentelemetry.instrumentation.api", "io.opentelemetry.javaagent.shaded.instrumentation.api")

// relocate OpenTelemetry API
relocate("io.opentelemetry.api", "io.opentelemetry.javaagent.shaded.io.opentelemetry.api")
relocate("io.opentelemetry.semconv", "io.opentelemetry.javaagent.shaded.io.opentelemetry.semconv")
relocate("io.opentelemetry.spi", "io.opentelemetry.javaagent.shaded.io.opentelemetry.spi")
relocate("io.opentelemetry.context", "io.opentelemetry.javaagent.shaded.io.opentelemetry.context")
relocate("io.opentelemetry.extension.kotlin", "io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.kotlin")
relocate("io.opentelemetry.extension.aws", "io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.aws")
// relocate("io.opentelemetry.api", "io.opentelemetry.javaagent.shaded.io.opentelemetry.api")
// relocate("io.opentelemetry.semconv", "io.opentelemetry.javaagent.shaded.io.opentelemetry.semconv")
// relocate("io.opentelemetry.spi", "io.opentelemetry.javaagent.shaded.io.opentelemetry.spi")
// relocate("io.opentelemetry.context", "io.opentelemetry.javaagent.shaded.io.opentelemetry.context")
// relocate("io.opentelemetry.extension.kotlin", "io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.kotlin")
// relocate("io.opentelemetry.extension.aws", "io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.aws")

mergeServiceFiles {
include("inst/META-INF/services/*")
Expand All @@ -69,7 +71,7 @@ tasks {
attributes.put("OpenTelemetry-Instrumentation-Version", "${versions["opentelemetry_java_agent"]}")
attributes.put("Implementation-Vendor", "Hypertrace.org")
attributes.put("Implementation-Url", "https://github.com/hypertrace/javaagent")
attributes.put("Main-Class", "io.opentelemetry.javaagent.OpenTelemetryAgent")
attributes.put("Main-Class", "ai.traceable.io.opentelemetry.javaagent.OpenTelemetryAgent")
attributes.put("Agent-Class", "org.hypertrace.agent.instrument.HypertraceAgent")
attributes.put("Premain-Class", "org.hypertrace.agent.instrument.HypertraceAgent")
attributes.put("Can-Redefine-Classes", true)
Expand Down