From 54fd3509136b53d2316c5081fc7ec4edad698d33 Mon Sep 17 00:00:00 2001 From: Spike Curtis Date: Mon, 9 Oct 2023 20:48:28 +0400 Subject: [PATCH] feat: improve logging for speedtest connections part of #7963 improve connection logging for speedtest connections --- agent/agent.go | 11 ++++++++++- agent/agent_test.go | 5 ++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/agent/agent.go b/agent/agent.go index aa333d69dc..109b4ad90c 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -895,6 +895,10 @@ func (a *agent) createTailnet(ctx context.Context, agentID uuid.UUID, derpMap *t } break } + clog := a.logger.Named("speedtest").With( + slog.F("remote", conn.RemoteAddr().String()), + slog.F("local", conn.LocalAddr().String())) + clog.Info(ctx, "accepted conn") wg.Add(1) closed := make(chan struct{}) go func() { @@ -907,7 +911,12 @@ func (a *agent) createTailnet(ctx context.Context, agentID uuid.UUID, derpMap *t }() go func() { defer close(closed) - _ = speedtest.ServeConn(conn) + sErr := speedtest.ServeConn(conn) + if sErr != nil { + clog.Error(ctx, "test ended with error", slog.Error(sErr)) + return + } + clog.Info(ctx, "test ended") }() } wg.Wait() diff --git a/agent/agent_test.go b/agent/agent_test.go index 1a2c2fc531..f57d316a98 100644 --- a/agent/agent_test.go +++ b/agent/agent_test.go @@ -1850,13 +1850,16 @@ func TestAgent_UpdatedDERP(t *testing.T) { func TestAgent_Speedtest(t *testing.T) { t.Parallel() t.Skip("This test is relatively flakey because of Tailscale's speedtest code...") + logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug) ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) defer cancel() derpMap, _ := tailnettest.RunDERPAndSTUN(t) //nolint:dogsled conn, _, _, _, _ := setupAgent(t, agentsdk.Manifest{ DERPMap: derpMap, - }, 0) + }, 0, func(client *agenttest.Client, options *agent.Options) { + options.Logger = logger.Named("agent") + }) defer conn.Close() res, err := conn.Speedtest(ctx, speedtest.Upload, 250*time.Millisecond) require.NoError(t, err)