Add HBase client 1.0 instrumentation#19243
Open
YaoYingLong wants to merge 4 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds OpenTelemetry Javaagent instrumentation for Apache HBase client 1.0.x, while consolidating shared HBase client logic/tests into a new hbase-client-common-1.0 module that is reused by the 1.4 and 2.0 instrumentations.
Changes:
- Introduces a new
hbase-client-1.0:javaagentmodule with ByteBuddy advices and dedicated (including shaded) test suites. - Adds a new
hbase-client-common-1.0shared javaagent/testing module and repoints existinghbase-client-1.4andhbase-client-2.0modules to use it. - Updates repo wiring (Gradle settings, CI instrumentation script list, and FOSSA targets) to include the new modules.
Reviewed changes
Copilot reviewed 17 out of 24 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| settings.gradle.kts | Includes new HBase 1.0 javaagent module and switches common module includes to hbase-client-common-1.0. |
| instrumentation/hbase/hbase-client-common-1.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/testing/AbstractHbaseTest.java | Adjusts shared HBase tests to support 1.0 behavioral differences (timeout exception type, scan trace count, timeout config keys). |
| instrumentation/hbase/hbase-client-common-1.0/testing/build.gradle.kts | Aligns test compileOnly dependency to org.apache.hbase:hbase-client:1.0.0. |
| instrumentation/hbase/hbase-client-common-1.0/javaagent/src/main/java/org/apache/hadoop/hbase/ipc/OpenTelemetryCallUtil.java | Adds helper injected into HBase package for VirtualField access on package-private Call. |
| instrumentation/hbase/hbase-client-common-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/client/common/RequestAndContext.java | Introduces shared request/context carrier for span lifecycle management. |
| instrumentation/hbase/hbase-client-common-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/client/common/HbaseRequest.java | Defines shared request model used by DbClient extractors and span naming. |
| instrumentation/hbase/hbase-client-common-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/client/common/HbaseInstrumenterFactory.java | Centralizes Instrumenter construction for HBase client spans/metrics. |
| instrumentation/hbase/hbase-client-common-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/client/common/HbaseClientState.java | Adds shared ThreadLocal state used by HBase instrumentations to propagate request/table metadata. |
| instrumentation/hbase/hbase-client-common-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/client/common/HbaseAttributesGetter.java | Implements shared DbClientAttributesGetter mapping from HBase request data to semconv attributes. |
| instrumentation/hbase/hbase-client-common-1.0/javaagent/build.gradle.kts | Aligns common javaagent compileOnly dependency to HBase client 1.0.0. |
| instrumentation/hbase/hbase-client-2.0/javaagent/build.gradle.kts | Switches to common-1.0 and adds hbase-client-1.0 instrumentation to test instrumentation set. |
| instrumentation/hbase/hbase-client-1.4/javaagent/build.gradle.kts | Switches to common-1.0 and adds hbase-client-1.0 instrumentation to test instrumentation set. |
| instrumentation/hbase/hbase-client-1.0/metadata.yaml | Adds metadata entry for the new HBase client 1.0 instrumentation. |
| instrumentation/hbase/hbase-client-1.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/hbase/client/v1_0/HbaseClient10Test.java | Adds HBase 1.0 client test coverage and overrides shared test expectations. |
| instrumentation/hbase/hbase-client-1.0/javaagent/src/shadedClientTest/java/io/opentelemetry/javaagent/instrumentation/hbase/client/v1_0/HbaseShadedClient10Test.java | Adds shaded-client test coverage for HBase 1.0. |
| instrumentation/hbase/hbase-client-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/client/v1_0/RetryingCallableInstrumentation.java | Captures table name from callables into shared state for downstream RPC span attribution. |
| instrumentation/hbase/hbase-client-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/client/v1_0/HbaseSingletons.java | Adds singleton instrumenter + protobuf MethodDescriptor name extraction helper. |
| instrumentation/hbase/hbase-client-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/client/v1_0/HbaseInstrumentationModule.java | Registers the HBase 1.0 instrumentation module and its classloader constraints. |
| instrumentation/hbase/hbase-client-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/client/v1_0/HbaseBatchMetadata.java | Adds batch operation classification for stable semconv handling of MultiRequest. |
| instrumentation/hbase/hbase-client-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hbase/client/v1_0/AbstractRpcClientInstrumentation.java | Instruments HBase 1.0 AbstractRpcClient call paths to create/end DB client spans. |
| instrumentation/hbase/hbase-client-1.0/javaagent/build.gradle.kts | Defines new module build, muzzle range, test suites, stable-semconv test tasks, and parallelism constraints for testcontainers. |
| .github/scripts/instrumentations.sh | Adds the new HBase 1.0 instrumentation tests (including stable semconv variant) to CI script list. |
| .fossa.yml | Adds FOSSA target for hbase-client-1.0:javaagent and updates common module target to hbase-client-common-1.0. |
trask
reviewed
Jul 16, 2026
Pull request dashboard statusStatus last refreshed: 2026-07-26 20:39:29 UTC.
This automated status or its linked feedback items may be incorrect. If something looks wrong, please report it with the result you expected. |
trask
reviewed
Jul 17, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.