-
Notifications
You must be signed in to change notification settings - Fork 3.4k
HBASE-22120 Replace HTrace with OpenTelemetry #2901
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
Conversation
|
💔 -1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
saintstack
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking great.
We just remove trace from WAL subsystem?
Any pictures? Any traces you can share or is that later?
|
|
||
| if [[ -n "${HBASE_TRACE_OPTS}" ]]; then | ||
| echo "Attach opentelemetry agent to enable trace" | ||
| enable_trace |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This trick looks good. Where will you document it? Maybe if there was an 'hbase trace' command and if you ran it, you'd get output telling you to populate HBASE_TRACE_OPTs giving examples... perhaps that would be enough to get folks going? Would also advertise the new facility exits.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In hbase-env.sh, uncomment the last line and modify the options. Will fill this in the ref guide.
| } | ||
| return ClientMetaTableAccessor | ||
| .getTableHRegionLocations(conn.getTable(TableName.META_TABLE_NAME), tableName); | ||
| }, getClass().getSimpleName() + ".getAllRegionLocations"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Above you just do getName but here getSimpleName. What you thinking? Is full classname needed sometimes and other times not?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or annotation w/ servername doesn't make sense here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should all be getSimpleName. Let me check.
| .setAttribute(TraceUtil.RPC_SERVICE_KEY, md.getService().getName()) | ||
| .setAttribute(TraceUtil.RPC_METHOD_KEY, md.getName()) | ||
| .setAttribute(TraceUtil.REMOTE_HOST_KEY, addr.getHostName()) | ||
| .setAttribute(TraceUtil.REMOTE_PORT_KEY, addr.getPort()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These annotations stay for the life of the Span? If so, nice.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes.
In WAL, we switch the thread and also use batching. So we need to use some advanced features in otel like span links, etc. The plan is to implement as follow on issues. And for WAL, since we have our own DFS output stream implementation, we could add more detailed tracing to know the datanode we communicate with.
A bit busy these days. I've already deployed a cluster with 10 nodes and enabled tracing, but haven't gotten enough time to run PE or YCSB and verify the result. Could post some pictures about the topology the tracing later. The backend is skywalking, the UI is more beautiful than jaeger :) |
|
💔 -1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
saintstack
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM Lets get it in.
|
|
||
| enable_trace() { | ||
| agent_jar=$(find lib/trace -type f -name "opentelemetry-javaagent-*") | ||
| HBASE_OPTS="$HBASE_OPTS -javaagent:$agent_jar $HBASE_TRACE_OPTS" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It'll just fail if two classes w/ same prefix... that is fine I think and shouldn't happen usually.
| if (loc != null) { | ||
| names.add(loc.getRegion().getRegionNameAsString()); | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great.
… of OpenTelemetry Signed-off-by: stack <[email protected]>
Signed-off-by: Guanghao Zhang <[email protected]>
#2808) Signed-off-by: Guanghao Zhang <[email protected]>
Signed-off-by: Guanghao Zhang <[email protected]>
Signed-off-by: stack <[email protected]>
…nt side (#2857) Signed-off-by: Guanghao Zhang <[email protected]>
Signed-off-by: Guanghao Zhang <[email protected]>
Signed-off-by: Guanghao Zhang <[email protected]>
Signed-off-by: Guanghao Zhang <[email protected]>
Signed-off-by: Guanghao Zhang <[email protected]>
Signed-off-by: Guanghao Zhang <[email protected]>
Signed-off-by: Yulin Niu <[email protected]>
…xt (#3119) Signed-off-by: Viraj Jasani <[email protected]>
…ing opentelemtry to 1.0.0 (#3123) Signed-off-by: Michael Stack <[email protected]>
Signed-off-by: Michael Stack <[email protected]> Signed-off-by: Yulin Niu <[email protected]>
…OpenTelemetry (#3135) Signed-off-by: Michael Stack <[email protected]>
…ck is incorrect (#3165) Signed-off-by: meiyi <[email protected]>
|
🎊 +1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
|
💔 -1 overall
This message was automatically generated. |
No description provided.