You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by vj...@apache.org on 2020/02/24 17:42:05 UTC

[hbase] branch branch-2.2 updated: HBASE-23755. [OpenTracing] Declare HTrace is unusable in the user doc (#1196)

This is an automated email from the ASF dual-hosted git repository.

vjasani pushed a commit to branch branch-2.2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.2 by this push:
     new 481e9c8  HBASE-23755. [OpenTracing] Declare HTrace is unusable in the user doc (#1196)
481e9c8 is described below

commit 481e9c8a50faa6adb99767d960a274bf148d6f93
Author: Wei-Chiu Chuang <we...@apache.org>
AuthorDate: Mon Feb 24 09:38:13 2020 -0800

    HBASE-23755. [OpenTracing] Declare HTrace is unusable in the user doc (#1196)
    
    Signed-off-by: Sean Busbey <bu...@apache.org>
    Signed-off-by: Viraj Jasani <vj...@apache.org>
---
 src/main/asciidoc/_chapters/tracing.adoc   | 181 -----------------------------
 src/main/asciidoc/_chapters/upgrading.adoc |   2 +
 src/main/asciidoc/book.adoc                |   1 -
 3 files changed, 2 insertions(+), 182 deletions(-)

diff --git a/src/main/asciidoc/_chapters/tracing.adoc b/src/main/asciidoc/_chapters/tracing.adoc
deleted file mode 100644
index 7305aa8..0000000
--- a/src/main/asciidoc/_chapters/tracing.adoc
+++ /dev/null
@@ -1,181 +0,0 @@
-////
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-////
-
-
-[appendix]
-[[tracing]]
-== Enabling Dapper-like Tracing in HBase
-
-:doctype: book
-:numbered:
-:toc: left
-:icons: font
-:experimental:
-
-HBase includes facilities for tracing requests using the open source tracing library, link:https://htrace.incubator.apache.org/[Apache HTrace].
-Setting up tracing is quite simple, however it currently requires some very minor changes to your client code (this requirement may be removed in the future).
-
-Support for this feature using HTrace 3 in HBase was added in link:https://issues.apache.org/jira/browse/HBASE-6449[HBASE-6449]. Starting with HBase 2.0, there was a non-compatible update to HTrace 4 via link:https://issues.apache.org/jira/browse/HBASE-18601[HBASE-18601]. The examples provided in this section will be using HTrace 4 package names, syntax, and conventions. For older examples, please consult previous versions of this guide.
-
-[[tracing.spanreceivers]]
-=== SpanReceivers
-
-The tracing system works by collecting information in structures called 'Spans'. It is up to you to choose how you want to receive this information by implementing the `SpanReceiver` interface, which defines one method:
-
-[source]
-----
-
-public void receiveSpan(Span span);
-----
-
-This method serves as a callback whenever a span is completed.
-HTrace allows you to use as many SpanReceivers as you want so you can easily send trace information to multiple destinations.
-
-Configure what SpanReceivers you'd like to us by putting a comma separated list of the fully-qualified class name of classes implementing `SpanReceiver` in _hbase-site.xml_ property: `hbase.trace.spanreceiver.classes`.
-
-HTrace includes a `LocalFileSpanReceiver` that writes all span information to local files in a JSON-based format.
-The `LocalFileSpanReceiver` looks in _hbase-site.xml_      for a `hbase.local-file-span-receiver.path` property with a value describing the name of the file to which nodes should write their span information.
-
-[source]
-----
-
-<property>
-  <name>hbase.trace.spanreceiver.classes</name>
-  <value>org.apache.htrace.core.LocalFileSpanReceiver</value>
-</property>
-<property>
-  <name>hbase.htrace.local-file-span-receiver.path</name>
-  <value>/var/log/hbase/htrace.out</value>
-</property>
-----
-
-HTrace also provides `ZipkinSpanReceiver` which converts spans to link:http://github.com/twitter/zipkin[Zipkin] span format and send them to Zipkin server. In order to use this span receiver, you need to install the jar of htrace-zipkin to your HBase's classpath on all of the nodes in your cluster.
-
-_htrace-zipkin_ is published to the link:http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.apache.htrace%22%20AND%20a%3A%22htrace-zipkin%22[Maven central repository]. You could get the latest version from there or just build it locally (see the link:https://htrace.incubator.apache.org/[HTrace] homepage for information on how to do this) and then copy it out to all nodes.
-
-`ZipkinSpanReceiver` for properties called `hbase.htrace.zipkin.collector-hostname` and `hbase.htrace.zipkin.collector-port` in _hbase-site.xml_ with values describing the Zipkin collector server to which span information are sent.
-
-[source,xml]
-----
-
-<property>
-  <name>hbase.trace.spanreceiver.classes</name>
-  <value>org.apache.htrace.core.ZipkinSpanReceiver</value>
-</property>
-<property>
-  <name>hbase.htrace.zipkin.collector-hostname</name>
-  <value>localhost</value>
-</property>
-<property>
-  <name>hbase.htrace.zipkin.collector-port</name>
-  <value>9410</value>
-</property>
-----
-
-If you do not want to use the included span receivers, you are encouraged to write your own receiver (take a look at `LocalFileSpanReceiver` for an example). If you think others would benefit from your receiver, file a JIRA with the HTrace project.
-
-[[tracing.client.modifications]]
-== Client Modifications
-
-In order to turn on tracing in your client code, you must initialize the module sending spans to receiver once per client process.
-
-[source,java]
-----
-
-private SpanReceiverHost spanReceiverHost;
-
-...
-
-  Configuration conf = HBaseConfiguration.create();
-  SpanReceiverHost spanReceiverHost = SpanReceiverHost.getInstance(conf);
-----
-
-Then you simply start tracing span before requests you think are interesting, and close it when the request is done.
-For example, if you wanted to trace all of your get operations, you change this:
-
-[source,java]
-----
-Configuration config = HBaseConfiguration.create();
-Connection connection = ConnectionFactory.createConnection(config);
-Table table = connection.getTable(TableName.valueOf("t1"));
-Get get = new Get(Bytes.toBytes("r1"));
-Result res = table.get(get);
-----
-
-into:
-
-[source,java]
-----
-
-TraceScope ts = Trace.startSpan("Gets", Sampler.ALWAYS);
-try {
-  Table table = connection.getTable(TableName.valueOf("t1"));
-  Get get = new Get(Bytes.toBytes("r1"));
-  Result res = table.get(get);
-} finally {
-  ts.close();
-}
-----
-
-If you wanted to trace half of your 'get' operations, you would pass in:
-
-[source,java]
-----
-
-new ProbabilitySampler(0.5)
-----
-
-in lieu of `Sampler.ALWAYS` to `Trace.startSpan()`.
-See the HTrace _README_ for more information on Samplers.
-
-[[tracing.client.shell]]
-== Tracing from HBase Shell
-
-You can use `trace` command for tracing requests from HBase Shell. `trace 'start'` command turns on tracing and `trace 'stop'` command turns off tracing.
-
-[source]
-----
-
-hbase(main):001:0> trace 'start'
-hbase(main):002:0> put 'test', 'row1', 'f:', 'val1'   # traced commands
-hbase(main):003:0> trace 'stop'
-----
-
-`trace 'start'` and `trace 'stop'` always returns boolean value representing if or not there is ongoing tracing.
-As a result, `trace 'stop'` returns false on success. `trace 'status'` just returns if or not tracing is turned on.
-
-[source]
-----
-
-hbase(main):001:0> trace 'start'
-=> true
-
-hbase(main):002:0> trace 'status'
-=> true
-
-hbase(main):003:0> trace 'stop'
-=> false
-
-hbase(main):004:0> trace 'status'
-=> false
-----
-
-:numbered:
diff --git a/src/main/asciidoc/_chapters/upgrading.adoc b/src/main/asciidoc/_chapters/upgrading.adoc
index b232fbc..569d91b 100644
--- a/src/main/asciidoc/_chapters/upgrading.adoc
+++ b/src/main/asciidoc/_chapters/upgrading.adoc
@@ -606,6 +606,8 @@ The internal changes to HBase during this upgrade were sufficient for compilatio
 
 If you previously relied on client side tracing integrated with HBase operations, it is recommended that you upgrade your usage to HTrace 4 as well.
 
+After the Apache HTrace project moved to the Attic/retired, the traces in HBase are left broken and unmaintained since HBase 2.0. A new project link:https://issues.apache.org/jira/browse/HBASE-22120[HBASE-22120] will replace HTrace with OpenTracing.
+
 [[upgrade2.0.hfile.compatability]]
 .HFile lose forward compatability
 
diff --git a/src/main/asciidoc/book.adoc b/src/main/asciidoc/book.adoc
index 38869e2..02185ef 100644
--- a/src/main/asciidoc/book.adoc
+++ b/src/main/asciidoc/book.adoc
@@ -97,6 +97,5 @@ include::_chapters/other_info.adoc[]
 include::_chapters/hbase_history.adoc[]
 include::_chapters/asf.adoc[]
 include::_chapters/orca.adoc[]
-include::_chapters/tracing.adoc[]
 include::_chapters/rpc.adoc[]
 include::_chapters/appendix_hbase_incompatibilities.adoc[]