public final class SimpleMetricsSphereClient extends SphereClientDecorator implements SphereClient
SphereClients which collects the time of serialization from and to JSON
as well as the time waiting for the response from the Composable Commerce API.
import io.sphere.sdk.client.SphereClient;
import java.util.Observable;
import java.util.Observer;
public class SimpleMetricsSphereClientDemo { public static SphereClient demo(final SphereClient asyncClient) { final SimpleMetricsSphereClient simpleMetricsSphereClient = SimpleMetricsSphereClient.of(asyncClient); final Observable observable = simpleMetricsSphereClient.getMetricObservable(); observable.addObserver(new LoggerObserver());//register once observer return simpleMetricsSphereClient;//use metric client wrapper instead of async client directly /* logs something like: observed: ObservedSerializationDuration[requestId=1,durationInMilliseconds=0,request=ProjectGet[]] observed: ObservedDeserializationDuration[requestId=1,durationInMilliseconds=0,request=ProjectGet[]] observed: ObservedTotalDuration[requestId=1,durationInMilliseconds=19,request=ProjectGet[]] */ } public static class LoggerObserver implements Observer { @Override public void update(final Observable o, final Object arg) { Logger.trace("observed: " + arg); } } }See the test code.
| Modifier and Type | Method and Description |
|---|---|
<T> CompletionStage<T> |
execute(SphereRequest<T> sphereRequest)
Executes asynchronously a request to Composable Commerce.
|
Observable |
getMetricObservable()
The observable where observers can be registered.
|
static SimpleMetricsSphereClient |
of(SphereClient delegate) |
close, getConfigclone, finalize, getClass, notify, notifyAll, wait, wait, waitclose, getConfig, of, ofpublic static SimpleMetricsSphereClient of(SphereClient delegate)
public <T> CompletionStage<T> execute(SphereRequest<T> sphereRequest)
SphereClientexecute in interface SphereClientexecute in class SphereClientDecoratorT - type of the result for the requestsphereRequest - request to Composable Commerce to performpublic Observable getMetricObservable()