Package io.grpc.internal
Class TransportTracer
- java.lang.Object
-
- io.grpc.internal.TransportTracer
-
public final class TransportTracer extends java.lang.Object
A class for gathering statistics about a transport. This is an experimental feature. Can only be called from the transport thread unless otherwise noted.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TransportTracer.Factory
static interface
TransportTracer.FlowControlReader
An interface for reading the local and remote flow control windows of the transport.static class
TransportTracer.FlowControlWindows
A container that holds the local and remote flow control window sizes.
-
Field Summary
Fields Modifier and Type Field Description private static TransportTracer.Factory
DEFAULT_FACTORY
private TransportTracer.FlowControlReader
flowControlWindowReader
private long
keepAlivesSent
private long
lastLocalStreamCreatedTimeNanos
private long
lastMessageReceivedTimeNanos
private long
lastMessageSentTimeNanos
private long
lastRemoteStreamCreatedTimeNanos
private LongCounter
messagesReceived
private long
messagesSent
private long
streamsFailed
private long
streamsStarted
private long
streamsSucceeded
private TimeProvider
timeProvider
-
Constructor Summary
Constructors Modifier Constructor Description TransportTracer()
private
TransportTracer(TimeProvider timeProvider)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static TransportTracer.Factory
getDefaultFactory()
InternalChannelz.TransportStats
getStats()
Returns a read only set of current stats.void
reportKeepAliveSent()
Reports that a keep alive message was sent.void
reportLocalStreamStarted()
Called by the client to report a stream has started.void
reportMessageReceived()
Reports that a message was successfully received.void
reportMessageSent(int numMessages)
Reports that some messages were successfully sent.void
reportRemoteStreamStarted()
Called by the server to report a stream has started.void
reportStreamClosed(boolean success)
Reports that a stream closed with the specified Status.void
setFlowControlWindowReader(TransportTracer.FlowControlReader flowControlWindowReader)
Registers aTransportTracer.FlowControlReader
that can be used to read the local and remote flow control window sizes.
-
-
-
Field Detail
-
DEFAULT_FACTORY
private static final TransportTracer.Factory DEFAULT_FACTORY
-
timeProvider
private final TimeProvider timeProvider
-
streamsStarted
private long streamsStarted
-
lastLocalStreamCreatedTimeNanos
private long lastLocalStreamCreatedTimeNanos
-
lastRemoteStreamCreatedTimeNanos
private long lastRemoteStreamCreatedTimeNanos
-
streamsSucceeded
private long streamsSucceeded
-
streamsFailed
private long streamsFailed
-
keepAlivesSent
private long keepAlivesSent
-
flowControlWindowReader
private TransportTracer.FlowControlReader flowControlWindowReader
-
messagesSent
private long messagesSent
-
lastMessageSentTimeNanos
private long lastMessageSentTimeNanos
-
messagesReceived
private final LongCounter messagesReceived
-
lastMessageReceivedTimeNanos
private volatile long lastMessageReceivedTimeNanos
-
-
Constructor Detail
-
TransportTracer
public TransportTracer()
-
TransportTracer
private TransportTracer(TimeProvider timeProvider)
-
-
Method Detail
-
getStats
public InternalChannelz.TransportStats getStats()
Returns a read only set of current stats.
-
reportLocalStreamStarted
public void reportLocalStreamStarted()
Called by the client to report a stream has started.
-
reportRemoteStreamStarted
public void reportRemoteStreamStarted()
Called by the server to report a stream has started.
-
reportStreamClosed
public void reportStreamClosed(boolean success)
Reports that a stream closed with the specified Status.
-
reportMessageSent
public void reportMessageSent(int numMessages)
Reports that some messages were successfully sent.numMessages
must be at least 0.
-
reportMessageReceived
public void reportMessageReceived()
Reports that a message was successfully received. This method is thread safe.
-
reportKeepAliveSent
public void reportKeepAliveSent()
Reports that a keep alive message was sent.
-
setFlowControlWindowReader
public void setFlowControlWindowReader(TransportTracer.FlowControlReader flowControlWindowReader)
Registers aTransportTracer.FlowControlReader
that can be used to read the local and remote flow control window sizes.
-
getDefaultFactory
public static TransportTracer.Factory getDefaultFactory()
-
-