FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

feat: complete relocation from io.opentelemetry in output JAR by thugrock7 · Pull Request #427 · hypertrace/javaagent · GitHub

Merged
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
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")

varkey98 Aug 7, 2025
edited
Loading

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

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

thugrock7 Aug 7, 2025
edited
Loading

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.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

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.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

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.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality
  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

varkey98 Aug 7, 2025
edited
Loading

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality
  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.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

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.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

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.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

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.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

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.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
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

Back | FazBrowse Home | New Git URL