Network I/O

proxy.process.net.accepts_currently_open
Collection:
global
Type:
counter
Datatype:
integer
proxy.process.net.calls_to_readfromnet
Collection:
global
Type:
counter
Datatype:
integer
Gathered:
No
proxy.process.net.calls_to_read
Collection:
global
Type:
counter
Datatype:
integer
Gathered:
No
proxy.process.net.calls_to_read_nodata
Collection:
global
Type:
counter
Datatype:
integer
Gathered:
No
proxy.process.net.calls_to_write
Collection:
global
Type:
counter
Datatype:
integer
Gathered:
No
proxy.process.net.calls_to_write_nodata
Collection:
global
Type:
counter
Datatype:
integer
Gathered:
No
proxy.process.net.calls_to_writetonet
Collection:
global
Type:
counter
Datatype:
integer
Gathered:
No
proxy.process.net.connections_currently_open
Collection:
global
Type:
gauge
Datatype:
integer

The number of open client and origin server connections, which proxy.config.net.connections_throttle limits.

proxy.process.net.per_client.connections_exempt_currently_open
Collection:
global
Type:
gauge
Datatype:
integer

The number of open client connections from addresses in proxy.config.http.per_client.connection.exempt_list. These connections are also counted in proxy.process.net.connections_currently_open.

proxy.process.net.per_client.connections_exempt_in
Collection:
global
Type:
counter
Datatype:
integer

The number of client connections that Traffic Server accepted from addresses in proxy.config.http.per_client.connection.exempt_list.

proxy.process.net.connections_throttled_in
Collection:
global
Type:
counter
Datatype:
integer
proxy.process.net.connections_throttled_out
Collection:
global
Type:
counter
Datatype:
integer
proxy.process.net.max.requests_throttled_in
Collection:
global
Type:
counter
Datatype:
integer
proxy.process.net.default_inactivity_timeout_applied
Collection:
global
Type:
counter
Datatype:
integer
Example:
The total number of connections that had no transaction or connection level timer running on them and had to fallback to the catch-all 'default_inactivity_timeout'
proxy.process.net.default_inactivity_timeout_count
Collection:
global
Type:
counter
Datatype:
integer
Example:
The total number of connections that were cleaned up due to 'default_inactivity_timeout'
proxy.process.net.dynamic_keep_alive_timeout_in_count
Collection:
global
Datatype:
integer
proxy.process.net.dynamic_keep_alive_timeout_in_total
Collection:
global
Datatype:
integer
proxy.process.net.inactivity_cop_lock_acquire_failure
Collection:
global
Datatype:
integer
proxy.process.net.inactivity_cop_visited
Collection:
global
Type:
counter
Datatype:
integer
Example:
The total number of connections the inactivity cop has examined. The cop finds expired connections through a per-thread timer wheel, so this grows with the number of connections whose deadline came due, not with the number of open connections. A value that tracks total open connections instead means something is re-arming every tick.
proxy.process.net.inactivity_cop_budget_exhausted
Collection:
global
Type:
counter
Datatype:
integer
Example:
The number of inactivity cop runs that hit their per-run work limit, either the number of connections timed out or the number examined. Such a run reschedules itself a millisecond out rather than waiting for the next periodic check, so an occasional nonzero value just means a burst of connections came due together. A value that climbs steadily means the thread is retiring timeouts more slowly than they come due, and timeouts there are firing late.
proxy.process.net.inactivity_cop_passes
Collection:
global
Type:
counter
Datatype:
integer
Example:
The number of inactivity cop passes made, across all threads. Chiefly a denominator: divide the two metrics below by this for per-pass averages.
proxy.process.net.inactivity_cop_fired
Collection:
global
Type:
counter
Datatype:
integer
Example:
The total number of connections the inactivity cop has timed out, counting only delivered timeout events. Freeing a connection that was already closed, or re-arming one whose lock was busy, does not count. Compare against :ts:stat:`proxy.process.net.inactivity_cop_visited`: the cop examines a connection whose deadline came due but re-arms it without firing when the deadline has since moved out, so ``visited`` is always at least ``fired``, and a large gap means deadlines are being extended after being scheduled.
proxy.process.net.inactivity_cop_pass_time_us
Collection:
global
Type:
counter
Datatype:
integer
Example:
Accumulated microseconds spent in inactivity cop passes, covering the timer wheel walk and the connection closes it dispatches inline. Divided by :ts:stat:`proxy.process.net.inactivity_cop_fired` this gives the average cost of timing out one connection, which is what determines how long a full-budget pass can occupy an event thread.
proxy.process.net.inactivity_cop_pass_max_us
Collection:
global
Type:
gauge
Datatype:
integer
Example:
The longest single inactivity cop pass observed, in microseconds. Because the cop runs on an event thread, a pass of *N* microseconds delays that thread's poll loop by *N* microseconds, so this is the latency a burst of simultaneous timeouts imposes on unrelated connections. This is a best-effort high-water mark updated without a lock, so simultaneous passes on different threads can occasionally lose a sample; it may understate the true worst case but never reports a value no pass took.
proxy.process.net.net_handler_run
Collection:
global
Type:
counter
Datatype:
integer
proxy.process.net.read_bytes
Collection:
global
Type:
counter
Units:
bytes
Datatype:
integer

Application-layer bytes read from client and origin connections. For TLS connections this is the decrypted payload, symmetric with write_bytes; it does not include TLS handshake or record-layer framing.

proxy.process.net.read_bytes_count
Collection:
global
Type:
counter
Datatype:
integer

The number of read operations that contributed to read_bytes. For TLS connections this is one per decrypted-read pass, not per socket read.

proxy.process.net.write_bytes
Collection:
global
Type:
counter
Units:
bytes
Datatype:
integer

Application-layer bytes written to client and origin connections. For TLS connections this is the plaintext payload; it does not include TLS handshake or record-layer framing.

proxy.process.net.write_bytes_count
Collection:
global
Type:
counter
Datatype:
integer

The number of write operations that contributed to write_bytes.

proxy.process.tcp.total_accepts
Collection:
global
Type:
counter
Datatype:
integer

The total number of times a TCP connection was accepted on a proxy port. This may differ from the total of other network connection counters. For example if a user agent connects via TLS but sends a malformed CLIENT_HELLO this will count as a TCP connect but not an SSL connect.