tailscale/net
Mihai Parparita 9cb332f0e2 sockstats: instrument networking code paths
Uses the hooks added by tailscale/go#45 to instrument the reads and
writes on the major code paths that do network I/O in the client. The
convention is to use "<package>.<type>:<label>" as the annotation for
the responsible code path.

Enabled on iOS, macOS and Android only, since mobile platforms are the
ones we're most interested in, and we are less sensitive to any
throughput degradation due to the per-I/O callback overhead (macOS is
also enabled for ease of testing during development).

For now just exposed as counters on a /v0/sockstats PeerAPI endpoint.

We also keep track of the current interface so that we can break out
the stats by interface.

Updates tailscale/corp#9230
Updates #3363

Signed-off-by: Mihai Parparita <mihai@tailscale.com>
2023-03-01 12:09:31 -08:00
..
connstats net/connstats: fix ticker in NewStatistics (#7225) 2023-02-09 01:24:52 -08:00
dns sockstats: instrument networking code paths 2023-03-01 12:09:31 -08:00
dnscache all: update copyright and license headers 2023-01-27 15:36:29 -08:00
dnsfallback all: update copyright and license headers 2023-01-27 15:36:29 -08:00
flowtrack all: update copyright and license headers 2023-01-27 15:36:29 -08:00
interfaces ipn/ipnlocal: add delegated interface information to /interfaces PeerAPI handler 2023-02-27 09:39:49 -08:00
memnet net/memnet: rename from net/nettest 2023-01-30 13:03:32 -08:00
netaddr all: update copyright and license headers 2023-01-27 15:36:29 -08:00
netcheck sockstats: instrument networking code paths 2023-03-01 12:09:31 -08:00
neterror all: update copyright and license headers 2023-01-27 15:36:29 -08:00
netknob all: update copyright and license headers 2023-01-27 15:36:29 -08:00
netns net/interfaces, net/netns: add node attributes to control default interface getting and binding 2023-02-08 13:15:10 -08:00
netstat net/{netns,netstat}: use new x/sys/cpu.IsBigEndian 2023-02-02 07:41:49 -08:00
netutil net/netutil: only check Linux sysctls w/ procfs, assume absent means false 2023-02-08 12:23:36 -08:00
packet all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ping all: update copyright and license headers 2023-01-27 15:36:29 -08:00
portmapper sockstats: instrument networking code paths 2023-03-01 12:09:31 -08:00
proxymux all: update copyright and license headers 2023-01-27 15:36:29 -08:00
routetable net/routetable: include unknown flags in the routetable doctor output 2023-02-10 15:54:31 -08:00
socks5 all: update copyright and license headers 2023-01-27 15:36:29 -08:00
sockstats sockstats: instrument networking code paths 2023-03-01 12:09:31 -08:00
speedtest all: update copyright and license headers 2023-01-27 15:36:29 -08:00
stun all: use Go 1.20's bytes.Clone 2023-02-01 17:39:18 -08:00
tlsdial health, net/tlsdial: add healthcheck for self-signed cert 2023-02-01 23:17:41 -05:00
tsaddr all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tsdial all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tshttpproxy net/tshttpproxy: more directly use Transport proxy CONNECT hooks 2023-02-03 16:51:50 -08:00
tstun wgengine: start logging DISCO frames to pcap stream 2023-02-10 11:22:34 -10:00
wsconn all: update copyright and license headers 2023-01-27 15:36:29 -08:00