Interface HttpLifecycleObserver
- All Known Subinterfaces:
GrpcLifecycleObserver
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
To deliver events at accurate time, callbacks on this interface can be invoked from the IoExecutor.
Implementation of this observer must be non-blocking. If the consumer of events may block (uses a blocking
library or logger configuration is not async),
it must offload publications to another Executor after capturing timing of events. If blocking code
is executed inside callbacks without offloading, it will negatively impact IoExecutor and overall performance
of the application.
To install this observer for the server use
lifecycleObserver method or
appendNonOffloadingServiceFilter with
io.servicetalk.http.netty.HttpLifecycleObserverServiceFilter. For the client use either
appendClientFilter or
appendConnectionFilter with io.servicetalk.http.netty.HttpLifecycleObserverRequesterFilter.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceAn observer interface that provides visibility into events associated with a single HTTP exchange.static interfaceAn observer interface that provides visibility into events associated with a single HTTP request.static interfaceAn observer interface that provides visibility into events associated with a single HTTP response. -
Method Summary
Modifier and TypeMethodDescriptionCallback when a new HTTP exchange starts.
-
Method Details
-
onNewExchange
HttpLifecycleObserver.HttpExchangeObserver onNewExchange()Callback when a new HTTP exchange starts.Depending on the order in which the observer is applied, this callback can be invoked either for every retry attempt (if an observer is added after the retrying filter) or only once per exchange.
- Returns:
- an
HttpLifecycleObserver.HttpExchangeObserverthat provides visibility into exchange events
-