HBASE-25373 Remove HTrace completely in code base and try to make use…#2748
HBASE-25373 Remove HTrace completely in code base and try to make use…#2748Apache9 wants to merge 1 commit into
Conversation
|
Just remove HTrace and ban it completely, as it does not work any more. Try using open telemetry api and sdk to replace the old HTrace stuff. No receiver(exporter) specified yet, maybe we could include a UT in this PR to verify that it basically works. Notice that this will be committed to a feature branch, so let's not expect it to be perfect, we could open follow-on issues to polish it. |
|
💔 -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.
Skimmed. Looks good. Export somehow so could see pretty pictures would be sweet. Could be export be dump to a new hbase servlet traces page?
Does the global trace just keep accumulating or does it start dropping traces after a while or size? Do you know? Thanks.
… of OpenTelemetry
For me I think first we could use the logging exporter to prove that the tracing actually works. And then, we could do two things in parallel. One is to implement tracing for different sub modules in HBase, especially that we need to pass the spans across rpc calls. The other is to use the other exporters such as zipkin or jaeger to show the tracing data with a more beautyful picture, and this should also be well documented in our ref guide to tell users how to make use the tracing data.
Without depending on opentelemetry-sdk, the tracer is just a noop which does nothing. With opentelemetry-sdk, it depends on the Sampler. AlwaysOn, AlwaysOff, RatioBased. It will then pass the spans to a SpanProcessor, and then to a SpanExporter. Then you need to depend on different SpanExporters to actually export the spans to backend tracing system. https://github.com/open-telemetry/opentelemetry-java/blob/master/QUICKSTART.md#exporter Tracing is a big picture. Hope this could make you understand better. Feel free to ask other questions. I'm new to this area and still need to learn a lot of things. Thanks. |
|
🎊 +1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
Any other concerns? @saintstack Thanks. |
|
I don't seem to be able to find the "In-Memory Exporter: keeps the data in memory, useful for debugging." in the OTel codebase (need to look harder I suppose) Hopefully its a circular buffer. Could do basic dump into a jsp page of most recent traces. Without some sort of visualization, its hard to know what we are capturing. Can figure this out later. For sure all aboard for OTel? We are decided? Hadoop is going that way too? If so, +1. |
It has been moved to sdk-testing So I think the intenion here is to not use it in production, only when testing. We could write our own implementation of SpanExporter to receive and show it on our web page but I still think it will be better to just use an external service to process the trace data. There are already lots of tracing systems in the world, in ASF we have two, zipkin and skywalking, so for me I'm not in favor of implementing a tracing page by our own, but anyway I'm not going to stop others if they want to :)
Yes, as said in the past, we could do this in parallel when implementing tracing in HBase code. It is all about how to export the tracing data.
For me, as long as OpenTelemetry could connect with different tracing systems, and is the succesor of OpenTracing, I do not see any other choice, unless we want to tie with a specific tracing system, i.e, zipkin, jaeger, or skywalking. And for Hadoop, @jojochuang has opened several issues to use OpenTracing instead of HTrace, at the same time when he opened issues in HBase. And there is no progress for a while recently, I think we could talk to him to see if hadoop could also switch to use OpenTelemetry instead. Hope this could solve your concern. Thanks. |
|
We have to remove htrace. A noop OTel seems fine replacement. At least if no uptake, it doesn't get in the way. +1 |
|
Thank you. Let me create a feature branch to land this change. |
… of OpenTelemetry