diff options
| author | julianknodt <julianknodt@gmail.com> | 2021-08-17 13:10:57 -0700 |
|---|---|---|
| committer | julianknodt <julianknodt@gmail.com> | 2021-08-20 12:04:28 -0700 |
| commit | 4f1e783ad8e26543ec91668a20b25917987d0c4b (patch) | |
| tree | 08d17442930b1d487e6ee7fd5c103cc99802ae49 /wgengine/pendopen.go | |
| parent | b9bd7dbc5dda17b7b8abb938092aa0a625c27056 (diff) | |
| download | tailscale-jknodt/logging.tar.xz tailscale-jknodt/logging.zip | |
wgengine: log connection metricsjknodt/logging
Adds counter for connection types, which aren't currently bubbled up anywhere but can be easily
in the future.
Signed-off-by: julianknodt <julianknodt@gmail.com>
Diffstat (limited to 'wgengine/pendopen.go')
| -rw-r--r-- | wgengine/pendopen.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/wgengine/pendopen.go b/wgengine/pendopen.go index f473591b9..a87b0f92a 100644 --- a/wgengine/pendopen.go +++ b/wgengine/pendopen.go @@ -9,6 +9,7 @@ import ( "os" "runtime" "strconv" + "sync/atomic" "time" "tailscale.com/ipn/ipnstate" @@ -122,6 +123,9 @@ func (e *userspaceEngine) trackOpenPostFilterOut(pp *packet.Parsed, t *tstun.Wra } } + // Accepted a flow, log the flow kind + atomic.AddUint32(&e.connMetrics.direct, 1) + timer := time.AfterFunc(tcpTimeoutBeforeDebug, func() { e.onOpenTimeout(flow) }) @@ -153,6 +157,7 @@ func (e *userspaceEngine) onOpenTimeout(flow flowtrack.Tuple) { e.mu.Unlock() if !problem.IsZero() { + atomic.AddUint32(&e.connMetrics.unreachable, 1) e.logf("open-conn-track: timeout opening %v; peer reported problem: %v", flow, problem) } @@ -160,14 +165,17 @@ func (e *userspaceEngine) onOpenTimeout(flow flowtrack.Tuple) { n, err := e.peerForIP(flow.Dst.IP()) if err != nil { e.logf("open-conn-track: timeout opening %v; peerForIP: %v", flow, err) + atomic.AddUint32(&e.connMetrics.unreachable, 1) return } if n == nil { e.logf("open-conn-track: timeout opening %v; no associated peer node", flow) + atomic.AddUint32(&e.connMetrics.unreachable, 1) return } if n.DiscoKey.IsZero() { e.logf("open-conn-track: timeout opening %v; peer node %v running pre-0.100", flow, n.Key.ShortString()) + atomic.AddUint32(&e.connMetrics.unreachable, 1) return } if n.DERP == "" { |
