Interface GrpcLifecycleObserver
- All Superinterfaces:
HttpLifecycleObserver
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
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)
.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interface
An observer interface that provides visibility into events associated with a single gRPC exchange.static interface
An observer interface that provides visibility into events associated with a single gRPC request.static interface
An observer interface that provides visibility into events associated with a single gRPC response.Nested classes/interfaces inherited from interface io.servicetalk.http.api.HttpLifecycleObserver
HttpLifecycleObserver.HttpExchangeObserver, HttpLifecycleObserver.HttpRequestObserver, HttpLifecycleObserver.HttpResponseObserver
-
Method Summary
Modifier and TypeMethodDescriptionCallback when a new gRPC exchange starts.
-
Method Details
-
onNewExchange
GrpcLifecycleObserver.GrpcExchangeObserver onNewExchange()Callback when a new gRPC exchange starts.- Specified by:
onNewExchange
in interfaceHttpLifecycleObserver
- Returns:
- an
GrpcLifecycleObserver.GrpcExchangeObserver
that provides visibility into exchange events
-