@FunctionalInterface
public interface GrpcLifecycleObserver
extends HttpLifecycleObserver
In order 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 has to
offload publications to another Executor after capturing timing of events. If blocking code is
executed inside callbacks without offloading, it will negatively impact IoExecutor.
To install this observer for the server use GrpcServerBuilder.lifecycleObserver(GrpcLifecycleObserver).
For the client use io.servicetalk.grpc.netty.GrpcLifecycleObserverRequesterFilter as argument to
SingleAddressHttpClientBuilder.appendClientFilter(StreamingHttpClientFilterFactory)
which can be configured using GrpcClientBuilder.initializeHttp(GrpcClientBuilder.HttpInitializer).
| Modifier and Type | Interface and Description |
|---|---|
static interface |
GrpcLifecycleObserver.GrpcExchangeObserver
An observer interface that provides visibility into events associated with a single gRPC exchange.
|
static interface |
GrpcLifecycleObserver.GrpcRequestObserver
An observer interface that provides visibility into events associated with a single gRPC request.
|
static interface |
GrpcLifecycleObserver.GrpcResponseObserver
An observer interface that provides visibility into events associated with a single gRPC response.
|
| Modifier and Type | Method and Description |
|---|---|
GrpcLifecycleObserver.GrpcExchangeObserver |
onNewExchange()
Callback when a new gRPC exchange starts.
|
GrpcLifecycleObserver.GrpcExchangeObserver onNewExchange()
onNewExchange in interface HttpLifecycleObserverGrpcLifecycleObserver.GrpcExchangeObserver that provides visibility into exchange events