From d2b035312e0cc2d524883492ec5b1b9d3675a1b6 Mon Sep 17 00:00:00 2001 From: Dean Sheather Date: Tue, 23 Jul 2024 03:14:37 +1000 Subject: [PATCH] chore: fix parse typo for network telemetry (#13971) --- coderd/audit/request.go | 8 ++++---- coderd/telemetry/telemetry.go | 2 +- coderd/workspaceagentsrpc.go | 9 ++++++++- tailnet/conn.go | 4 +--- tailnet/service.go | 3 +++ 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/coderd/audit/request.go b/coderd/audit/request.go index a0ecba163e..eecb0b81d4 100644 --- a/coderd/audit/request.go +++ b/coderd/audit/request.go @@ -272,16 +272,16 @@ func requireOrgID[T Auditable](ctx context.Context, id uuid.UUID, log slog.Logge // entry. func InitRequestWithCancel[T Auditable](w http.ResponseWriter, p *RequestParams) (*Request[T], func(commit bool)) { req, commitF := InitRequest[T](w, p) - cancelled := false + canceled := false return req, func(commit bool) { // Once 'commit=false' is called, block // any future commit attempts. if !commit { - cancelled = true + canceled = true return } - // If it was ever cancelled, block any commits - if !cancelled { + // If it was ever canceled, block any commits + if !canceled { commitF() } } diff --git a/coderd/telemetry/telemetry.go b/coderd/telemetry/telemetry.go index 6b6fbe0163..f269e85606 100644 --- a/coderd/telemetry/telemetry.go +++ b/coderd/telemetry/telemetry.go @@ -1269,7 +1269,7 @@ func NetworkEventFromProto(proto *tailnetproto.TelemetryEvent) (NetworkEvent, er if proto == nil { return NetworkEvent{}, xerrors.New("nil event") } - id, err := uuid.ParseBytes(proto.Id) + id, err := uuid.FromBytes(proto.Id) if err != nil { return NetworkEvent{}, xerrors.Errorf("parse id %q: %w", proto.Id, err) } diff --git a/coderd/workspaceagentsrpc.go b/coderd/workspaceagentsrpc.go index cd37349f25..1d5a807296 100644 --- a/coderd/workspaceagentsrpc.go +++ b/coderd/workspaceagentsrpc.go @@ -168,10 +168,17 @@ func (api *API) workspaceAgentRPC(rw http.ResponseWriter, r *http.Request) { } func (api *API) handleNetworkTelemetry(batch []*tailnetproto.TelemetryEvent) { - telemetryEvents := make([]telemetry.NetworkEvent, 0, len(batch)) + var ( + telemetryEvents = make([]telemetry.NetworkEvent, 0, len(batch)) + didLogErr = false + ) for _, pEvent := range batch { tEvent, err := telemetry.NetworkEventFromProto(pEvent) if err != nil { + if !didLogErr { + api.Logger.Warn(api.ctx, "error converting network telemetry event", slog.Error(err)) + didLogErr = true + } // Events that fail to be converted get discarded for now. continue } diff --git a/tailnet/conn.go b/tailnet/conn.go index 5aefb3e404..5f202c0c47 100644 --- a/tailnet/conn.go +++ b/tailnet/conn.go @@ -775,11 +775,9 @@ func (c *Conn) sendPingTelemetry(pr *ipnstate.PingResult) { // The returned telemetry event will not have it's status set. func (c *Conn) newTelemetryEvent() *proto.TelemetryEvent { - // Infallible - id, _ := c.id.MarshalBinary() event := c.telemetryStore.newEvent() event.ClientType = c.clientType - event.Id = id + event.Id = c.id[:] event.ConnectionAge = durationpb.New(time.Since(c.createdAt)) return event } diff --git a/tailnet/service.go b/tailnet/service.go index f3c2ed22f6..05af0cdc28 100644 --- a/tailnet/service.go +++ b/tailnet/service.go @@ -261,6 +261,9 @@ func NewNetworkTelemetryBatcher(clk quartz.Clock, frequency time.Duration, maxSi closed: make(chan struct{}), done: make(chan struct{}), } + if b.batchFn == nil { + b.batchFn = func(batch []*proto.TelemetryEvent) {} + } b.start() return b }