Class IosQuicDiagnostics
- Namespace
- VpnHood.Net.Quic.Ios
- Assembly
- VpnHood.Net.Quic.Ios.dll
Provides the iOS QUIC client's investigation counters and its [VHQUIC] open and close log lines, as
TcpStackDiagnostics does for the TCP stack. A stream, a connection, a send or a teardown is counted only when
it begins while Enabled, so production pays nothing; its end is then counted whatever the log level is
by then, so no count goes below zero or stays up.
public static class IosQuicDiagnostics
- Inheritance
-
IosQuicDiagnostics
- Inherited Members
Remarks
Only the diagnostic counters live here. The load-bearing jetsam brake input is deliberately NOT gated: the
live phys_footprint is published always-on through VhMemory.Instance by the iOS footprint
sampler, not by this class. The host's memory probe reads the public snapshot properties below; it does not
own these counters.
Off in production; there is no dedicated switch — Enabled is computed from
VhLogger.MinLogLevel, so below-Information logging (e.g. the /log:debug DebugCommand in
the app UI, flowing to the Extension via ClientOptions.LogServiceOptions) enables all the iOS
diagnostics together.
Properties
Enabled
Gets a value indicating whether the counters move and the lines are logged: while the log level is below Information.
public static bool Enabled { get; }
Property Value
Remarks
What was open, or being sent, before the log level dropped is never counted, so the counts may then be under the real ones; they are exact for everything that began since.
LiveConnectionCount
Gets the number of open QUIC connections, each a native connection group.
public static int LiveConnectionCount { get; }
Property Value
LiveStreamCount
Gets the number of open QUIC streams, each a native NWConnection.
public static int LiveStreamCount { get; }
Property Value
OutstandingSendBytes
Gets the bytes of the sends under way: counted just before a send goes to nw_connection_send, until its
completion callback, a failure before it is submitted, or the stream's disposal.
public static long OutstandingSendBytes { get; }
Property Value
Methods
TakeMaxStreamCancelMs()
Returns the longest QUIC stream teardown since the last call, and starts the next period at 0, whether or not Enabled.
public static long TakeMaxStreamCancelMs()
Returns
- long
The longest teardown, in milliseconds; 0 when none was timed.