From 62fc571335f8901c2836fed4d0f3ed8c1e5953bb Mon Sep 17 00:00:00 2001 From: Dean Sheather Date: Mon, 22 Jul 2024 17:05:50 +0000 Subject: [PATCH] chore: fix parse typo for network telemetry --- 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 a0ecba163e2b1..eecb0b81d4d8f 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 6b6fbe016301e..f269e856067c5 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 cd37349f25634..1d5a80729680f 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 5aefb3e404ecf..5f202c0c47b14 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 f3c2ed22f6e76..05af0cdc28d04 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 }