Package io.grpc
Class ClientStreamTracer
java.lang.Object
io.grpc.StreamTracer
io.grpc.ClientStreamTracer
- Direct Known Subclasses:
ForwardingClientStreamTracer
,ForwardingClientStreamTracer
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/2861")
@ThreadSafe
public abstract class ClientStreamTracer
extends StreamTracer
StreamTracer
for the client-side.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Factory class forClientStreamTracer
.static final class
Information about a stream. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final CallOptions.Key
<Long> Indicates how long the call was delayed, in nanoseconds, due to waiting for name resolution result. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addOptionalLabel
(String key, String value) Information providing context to the call became available.void
Name resolution is completed and the connection starts getting established.void
Headers has been received from the server.void
inboundHeaders
(Metadata headers) Headers has been received from the server.void
inboundTrailers
(Metadata trailers) Trailing metadata has been received from the server.void
Headers has been sent to the socket.void
streamCreated
(Attributes transportAttrs, Metadata headers) The stream is being created on a ready transport.Methods inherited from class io.grpc.StreamTracer
inboundMessage, inboundMessageRead, inboundUncompressedSize, inboundWireSize, outboundMessage, outboundMessageSent, outboundUncompressedSize, outboundWireSize, streamClosed
-
Field Details
-
NAME_RESOLUTION_DELAYED
Indicates how long the call was delayed, in nanoseconds, due to waiting for name resolution result. If the call option is not set, the call did not experience name resolution delay.
-
-
Constructor Details
-
ClientStreamTracer
public ClientStreamTracer()
-
-
Method Details
-
streamCreated
The stream is being created on a ready transport.- Parameters:
headers
- the mutable initial metadata. Modifications to it will be sent to the socket but not be seen by client interceptors and the application.- Since:
- 1.40.0
-
createPendingStream
public void createPendingStream()Name resolution is completed and the connection starts getting established. This method is only invoked on the streams that encounter such delay. gRPC buffers the client call if the remote address and configurations, e.g. timeouts and retry policy, are not ready. Asynchronously gRPC internally does the name resolution to get this information. The streams that are processed immediately on ready transports by the time the RPC comes do not go through the pending process, thus this callback will not be invoked. -
outboundHeaders
public void outboundHeaders()Headers has been sent to the socket. -
inboundHeaders
public void inboundHeaders()Headers has been received from the server. -
inboundHeaders
Headers has been received from the server. This method does not pass ownership toheaders
, so implementations must not access the metadata after returning. Modifications to the metadata within this method will be seen by interceptors and the application.- Parameters:
headers
- the received header metadata
-
inboundTrailers
Trailing metadata has been received from the server. This method does not pass ownership totrailers
, so implementations must not access the metadata after returning. Modifications to the metadata within this method will be seen by interceptors and the application.- Parameters:
trailers
- the received trailing metadata- Since:
- 1.17.0
-
addOptionalLabel
Information providing context to the call became available.
-