Apache HTrace是Cloudera开源出来的一个分布式系统跟踪框架,支持HDFS和HBase等系统。该项目目前还在孵化阶段。
![htrace-f1](http://static.oschina.net/uploads/img/201606/06153821_NjbB.png)
Apache HTrace是一个 Apache Incubator 项目, 可以与独立的应用程序和库使用。
HTrace是专为大的分布式系统使用的,
如Apache Hadoop分布式文件系统和Apache HBase存储引擎。
通过添加HTrace 支持到你的项目上,你将允许终端用户跟踪他们的请求。
此外,任何其他项目
使用HTrace都
可以使它
按照
你的项目的请求。
这就是为什么我们说HTrace是“终端到终端”的原因。
### HTrace核心库
为了使用HTrace,应用程序必须链接到适当的核心库。HTrace的核心库都经过精心设计,以尽量减少依赖关系的数量。HTrace目前拥有Java,C和C ++的支持。
HTrace保证核心库的API不会以不兼容的方式在次要版本中改变。
所以,如果您的应用程序使用HTrace4.1,它应该继续使用HTrace4.2工作,并没有更改代码。 (但是HTrace5将会改变一些东西,因为它是一个主要版本。)
**Java**
HTrace的Java库被命名为htrace-core4.jar,这个jar只在CLASSPATH出现,如果您正在使用Maven,添加以下到您的dependencyManagement部分:
<pre class="brush:java;toolbar: true; auto-links: false;"><dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.htrace</groupId>
<artifactId>htrace-core4</artifactId>
<version>4.1.0-incubating</version>
</dependency>
... </dependencies>
...</dependencyManagement></pre>
**C**
HTrace的
C库被命名为
libhtrace.so。libhtrace.so接口的描述在[htrace.h](https://github.com/apache/incubator-htrace/blob/rel/4.1/htrace-c/src/core/htrace.h)
**
C ++
**
该接口在[htrace.hpp](https://github.com/apache/incubator-htrace/blob/rel/4.1/htrace-c/src/core/htrace.hpp)一样使用C API描述,除了你使用htrace.hpp代替htrace.h的。