OpenTracing instrumentation for the Hprose Remote Object Service Engine
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.mvn/wrapper
src/main/java/io/opentracing/contrib/hprose
travis
.gitignore
.settings.xml
.travis.yml
LICENSE
README.md
mvnw
mvnw.cmd
pom.xml

README.md

java-hprose

OpenTracing instrumentation for the Hprose Remote Object Service Engine

Build Status Maven Central

Quick start

This repo support the opentracing in hprose-java, if hprose-java use http or https as network protocol.

Server side

Using config

  • If you use hprose servlet to open hprose services. Add init-param on the hprose servlet.
<init-param>
    <param-name>invoke</param-name>
    <param-value>io.opentracing.contrib.hprose.HttpServiceTracingInvokeHandler</param-value>
</init-param>

If you use other InvokeHandlers, except HttpServiceTracingInvokeHandler, you should use comma(,) between these InvokeHandlers.

Using code

package hprose.exam.server;
import hprose.common.HproseMethods;
import hprose.server.HproseServlet;
import io.opentracing.contrib.hprose.HttpServiceTracingInvokeHandler;

public class MyHproseServlet extends HproseServlet {
    public String hello(String name) {
        return "Hello " + name;
    }
    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        service.use(new HttpServiceTracingInvokeHandler());
        service.add("hello", this);
    }
}
  • By default, HttpServiceTracingInvokeHandler use java ServiceLoader to locate OpenTracing tracer implementation. The implementation must be unique, if more than one implemetations are found, HttpServiceTracingInvokeHandler don't use any of them, but swtich to NoopTracer.
  • if you want to use the particular tracer implementation, you can use HttpServiceTracingInvokeHandler'constructor to set the tracer instance. like this:
service.use(new HttpServiceTracingInvokeHandler(tracer));

Client side

  • Use hprose_for_java_x edition, choose HttpClientTracingExInvokeHandler.
client.use(new HttpClientTracingExInvokeHandler(tracer));
  • Use pure client edition, hprose_client_for_java_x edition, choose HttpClientTracingInvokeHandler.
client.use(new HttpClientTracingInvokeHandler(tracer));
  • Also, like server side, you can use java ServiceLoader to locate OpenTracing tracer implementation, or use HttpClientTracingExInvokeHandler or HttpClientTracingInvokeHandler constructor to set the tracer instance.