All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.kristofa.brave.BraveContext Maven / Gradle / Ivy

package com.github.kristofa.brave;

import java.util.List;
import java.util.Random;

/**
 * This is an alternative public api that can be used instead of {@link Brave}. 

This api should be used in case the * {@link ThreadLocal} approach of {@link Brave} is not working for you and you need to have full control over the Brave * context. pettyjamesm indicated he needed this to get Brave working with the * Play framework.

You can't use this api in combination with * {@link BraveCallable}, {@link BraveRunnable} and {@link BraveExecutorService}. */ public class BraveContext { private final SimpleServerAndClientSpanStateImpl spanState; private final Random randomGenerator; private final EndPointSubmitter endpointSubmitter; private final AnnotationSubmitter annotationSubmitter; /** * Initializes brave context. */ public BraveContext() { spanState = new SimpleServerAndClientSpanStateImpl(); randomGenerator = new Random(); endpointSubmitter = new EndPointSubmitterImpl(spanState); annotationSubmitter = new AnnotationSubmitterImpl(spanState); } /** * Gets {@link EndPointSubmitter}. * * @return {@link EndPointSubmitter}. */ public EndPointSubmitter getEndPointSubmitter() { return endpointSubmitter; } /** * Get {@link ClientTracer} * * @param collector {@link SpanCollector} to use for submitting spans. * @param traceFilters {@link TraceFilter Trace filters} to use. Trace filters let you control which requests are traced, * which not. * @return ClientTracer. */ public ClientTracer getClientTracer(final SpanCollector collector, final List traceFilters) { return new ClientTracerImpl(spanState, randomGenerator, collector, traceFilters); } /** * Gets {@link ServerTracer} * * @param collector {@link SpanCollector} to use for submitting spans. * @param traceFilters {@link TraceFilter Trace filters} to use. Trace filters let you control which requests are traced, * which not. * @return ServerTracer. */ public ServerTracer getServerTracer(final SpanCollector collector, final List traceFilters) { return new ServerTracerImpl(spanState, randomGenerator, collector, traceFilters); } /** * Gets {@link AnnotationSubmitter}. * * @return {@link AnnotationSubmitter}, used to submit custom application specific annotations. */ public AnnotationSubmitter getServerSpanAnnotationSubmitter() { return annotationSubmitter; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy