@FunctionalInterface
public interface HttpLifecycleObserver
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.
| Modifier and Type | Interface and Description |
|---|---|
static interface |
HttpLifecycleObserver.HttpExchangeObserver
An observer interface that provides visibility into events associated with a single HTTP exchange.
|
static interface |
HttpLifecycleObserver.HttpRequestObserver
An observer interface that provides visibility into events associated with a single HTTP request.
|
static interface |
HttpLifecycleObserver.HttpResponseObserver
An observer interface that provides visibility into events associated with a single HTTP response.
|
| Modifier and Type | Method and Description |
|---|---|
HttpLifecycleObserver.HttpExchangeObserver |
onNewExchange()
Callback when a new HTTP exchange starts.
|
HttpLifecycleObserver.HttpExchangeObserver onNewExchange()
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.
HttpLifecycleObserver.HttpExchangeObserver that provides visibility into exchange events