Class HttpServerHandler<Q,​P,​C>

  • Type Parameters:
    Q - the HTTP request entity.
    P - the HTTP response entity.
    C - the type of the carrier.

    @ExperimentalApi
    public class HttpServerHandler<Q,​P,​C>
    extends AbstractHttpHandler<Q,​P>
    This helper class provides routine methods to instrument HTTP servers.
    Since:
    0.19
    • Field Detail

      • tracer

        private final Tracer tracer
      • publicEndpoint

        private final java.lang.Boolean publicEndpoint
      • tagger

        private final Tagger tagger
    • Constructor Detail

      • HttpServerHandler

        public HttpServerHandler​(Tracer tracer,
                                 HttpExtractor<Q,​P> extractor,
                                 TextFormat textFormat,
                                 TextFormat.Getter<C> getter,
                                 java.lang.Boolean publicEndpoint)
        Creates a HttpServerHandler with given parameters.
        Parameters:
        tracer - the Open Census tracing component.
        extractor - the HttpExtractor used to extract information from the request/response.
        textFormat - the TextFormat used in HTTP propagation.
        getter - the getter used when extracting information from the carrier.
        publicEndpoint - set to true for publicly accessible HTTP(S) server. If true then incoming tracecontext will be added as a link instead of as a parent.
        Since:
        0.19
    • Method Detail

      • handleStart

        public HttpRequestContext handleStart​(C carrier,
                                              Q request)
        Instrument an incoming request before it is handled.

        This method will create a span under the deserialized propagated parent context. If the parent context is not present, the span will be created under the current context.

        The generated span will NOT be set as current context. User can control when to enter the scope of this span. Use AbstractHttpHandler.getSpanFromContext(io.opencensus.contrib.http.HttpRequestContext) to retrieve the span.

        Parameters:
        carrier - the entity that holds the HTTP information.
        request - the request entity.
        Returns:
        the HttpRequestContext that contains stats and trace data associated with the request.
        Since:
        0.19
      • handleEnd

        public void handleEnd​(HttpRequestContext context,
                              Q request,
                              @Nullable
                              P response,
                              @Nullable
                              java.lang.Throwable error)
        Close an HTTP span and records stats specific to the request.

        This method will set status of the span and end it. Additionally it will record message events for the span and record measurements associated with the request.

        Parameters:
        context - the HttpRequestContext used with handleStart(Object, Object)
        request - the HTTP request entity.
        response - the HTTP response entity. null means invalid response.
        error - the error occurs when processing the response.
        Since:
        0.19
      • recordStats

        private void recordStats​(HttpRequestContext context,
                                 Q request,
                                 int httpCode)