Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HBASE-26473 Introduce db.hbase.container_operations span attribute #3951

Merged

Conversation

ndimiduk
Copy link
Member

For batch operations, collect and annotate the associated span with the set of all operations contained in the batch.

This is an HBase-specific extension that I am proposing. The idea here is to provide a single field containing all of the operations contained within an "envelope-type" operation. That field can then be indexed for query, allowing operators to easily find the operations that they seek. This is a project-specific proposal for a solution to the general issue I raised on open-telemetry/semantic-conventions#712.

@ndimiduk ndimiduk requested review from taklwu and Apache9 December 15, 2021 22:47
@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

Copy link
Contributor

@Apache9 Apache9 left a comment

Choose a reason for hiding this comment

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

Only a small question, not a blocker.

return ops;
}

public TableOperationSpanBuilder setContainerOperations(
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we want to store a key value pair here to also reflect the cout for each operation?

Copy link
Member Author

Choose a reason for hiding this comment

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

That's an interesting idea! What do you have in mind, something like db.hbase.container_operations.get.count ?

Copy link
Contributor

Choose a reason for hiding this comment

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

Just a simple idea, not sure what is the best way to implement it. Checked the code, seems not easy to have a key value structure for an attribute? If we just encode it with a String, like 'Put,1000', seems it will make searching this attribute a bit harder? But if we introduce another attribute to store the count, we need to make these two attributes aligned, which is also a pain...

Anyway, not a big problem for now, could consider it later when we learn opentelemetry more.

Copy link
Member Author

Choose a reason for hiding this comment

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

That's not a bad idea. I don't now how the telemetry services will handle these kinds of fields.

Copy link
Member Author

@ndimiduk ndimiduk left a comment

Choose a reason for hiding this comment

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

Let's wait on this change until either we receive clear direction from open-telemetry/opentelemetry-specification#2202 or I can show clear benefit in my end-to-end testing.

return ops;
}

public TableOperationSpanBuilder setContainerOperations(
Copy link
Member Author

Choose a reason for hiding this comment

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

That's not a bad idea. I don't now how the telemetry services will handle these kinds of fields.

@Apache9
Copy link
Contributor

Apache9 commented Jan 6, 2022

Let's wait on this change until either we receive clear direction from open-telemetry/semantic-conventions#712 or I can show clear benefit in my end-to-end testing.

Seems no progress on the otel side? So maybe it is a chance for us to define the best practice of tracing multi/batch operations?

@ndimiduk
Copy link
Member Author

Seems no progress on the otel side? So maybe it is a chance for us to define the best practice of tracing multi/batch operations?

Still no comments from them. If you are still +1, @Apache9 , I'll rebase this commit and merge it. Lack of response from upstream isn't great though.

@Apache9
Copy link
Contributor

Apache9 commented Jan 25, 2022

Seems no progress on the otel side? So maybe it is a chance for us to define the best practice of tracing multi/batch operations?

Still no comments from them. If you are still +1, @Apache9 , I'll rebase this commit and merge it. Lack of response from upstream isn't great though.

Just go ahead. I'm OK with the current approach.

For batch operations, collect and annotate the associated span with the set of all operations
contained in the batch.

Signed-off-by: Duo Zhang <zhangduo@apache.org>
@ndimiduk ndimiduk force-pushed the 26473-db.hbase.container_operations branch from af8bae7 to ef97eec Compare January 26, 2022 18:49
@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 22s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for branch
+1 💚 mvninstall 4m 45s master passed
+1 💚 compile 0m 58s master passed
+1 💚 shadedjars 9m 31s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 51s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 17s Maven dependency ordering for patch
+1 💚 mvninstall 4m 29s the patch passed
+1 💚 compile 0m 55s the patch passed
+1 💚 javac 0m 55s the patch passed
+1 💚 shadedjars 9m 10s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 42s the patch passed
_ Other Tests _
+1 💚 unit 2m 24s hbase-common in the patch passed.
+1 💚 unit 1m 35s hbase-client in the patch passed.
38m 47s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3951/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #3951
Optional Tests javac javadoc unit shadedjars compile
uname Linux 70da4717816f 4.15.0-163-generic open-telemetry/opentelemetry-specification#171-Ubuntu SMP Fri Nov 5 11:55:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 7be9f26
Default Java AdoptOpenJDK-1.8.0_282-b08
Test Results https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3951/2/testReport/
Max. process+thread count 220 (vs. ulimit of 30000)
modules C: hbase-common hbase-client U: .
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3951/2/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 24s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 16s Maven dependency ordering for branch
+1 💚 mvninstall 4m 43s master passed
+1 💚 compile 1m 56s master passed
+1 💚 checkstyle 0m 56s master passed
+1 💚 spotbugs 2m 2s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 4m 19s the patch passed
+1 💚 compile 1m 54s the patch passed
+1 💚 javac 0m 51s hbase-common in the patch passed.
+1 💚 javac 1m 3s hbase-client generated 0 new + 121 unchanged - 1 fixed = 121 total (was 122)
+1 💚 checkstyle 0m 56s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 22m 27s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚 spotbugs 2m 9s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 22s The patch does not generate ASF License warnings.
52m 49s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3951/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #3951
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile
uname Linux 60ac528f68bc 4.15.0-163-generic open-telemetry/opentelemetry-specification#171-Ubuntu SMP Fri Nov 5 11:55:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 7be9f26
Default Java AdoptOpenJDK-1.8.0_282-b08
Max. process+thread count 86 (vs. ulimit of 30000)
modules C: hbase-common hbase-client U: .
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3951/2/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 5m 10s Docker mode activated.
-0 ⚠️ yetus 0m 4s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 29s Maven dependency ordering for branch
+1 💚 mvninstall 7m 47s master passed
+1 💚 compile 1m 23s master passed
+1 💚 shadedjars 11m 38s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 21s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 23s Maven dependency ordering for patch
+1 💚 mvninstall 6m 44s the patch passed
+1 💚 compile 1m 21s the patch passed
+1 💚 javac 1m 21s the patch passed
+1 💚 shadedjars 11m 9s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 5s the patch passed
_ Other Tests _
+1 💚 unit 3m 16s hbase-common in the patch passed.
+1 💚 unit 2m 25s hbase-client in the patch passed.
56m 14s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3951/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #3951
Optional Tests javac javadoc unit shadedjars compile
uname Linux fd87ccc09f19 4.15.0-163-generic open-telemetry/opentelemetry-specification#171-Ubuntu SMP Fri Nov 5 11:55:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 7be9f26
Default Java AdoptOpenJDK-11.0.10+9
Test Results https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3951/2/testReport/
Max. process+thread count 242 (vs. ulimit of 30000)
modules C: hbase-common hbase-client U: .
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3951/2/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@ndimiduk ndimiduk merged commit 7d8dc35 into apache:master Jan 26, 2022
@ndimiduk ndimiduk deleted the 26473-db.hbase.container_operations branch January 26, 2022 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants