OpenTracing Grizzly Async HTTP Client Instrumentation

December 16, 2018 ยท View on GitHub

OpenTracing instrumentation for Grizzly Async HTTP Client.

OpenTracing Agents

When using a runtime agent like java-agent or java-specialagent AsyncHttpClients will be automatically instrumented by injecting a TracingRequestFilter into its AsyncHttpClientConfig. This is the case with the plain AsyncHttpClient or SimpleAsyncHttpClient:

AsyncHttpClient client = new AsyncHttpClient();
Response response = client.prepareGet("http://localhost:8080/root").execute().get();

or

SimpleAsyncHttpClient client = new SimpleAsyncHttpClient.Builder()
 .setUrl("http://localhost:8080/root")
 .build();

Response respose = client.get().get();

Refer to the agents' documentation for how to include this library as an instrumentation plugin.

Non-Agent Configuration

When not using any of the OpenTracing Agents the TracingRequestFiler must be added directly to the AsyncHttpClientConfig.

AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder()
        .addRequestFilter(new TracingRequestFilter())
        .build();

AsyncHttpClient client = new AsyncHttpClient(config);