MCPcopy Index your code
hub / github.com/coder/coder / InsertHeartbeatUsageEvent

Method InsertHeartbeatUsageEvent

enterprise/coderd/usage/inserter.go:71–92  ·  view source on GitHub ↗

InsertHeartbeatUsageEvent implements agplusage.Inserter.

(ctx context.Context, tx database.Store, id string, event usagetypes.HeartbeatEvent)

Source from the content-addressed store, hash-verified

69
70// InsertHeartbeatUsageEvent implements agplusage.Inserter.
71func (i *dbInserter) InsertHeartbeatUsageEvent(ctx context.Context, tx database.Store, id string, event usagetypes.HeartbeatEvent) error {
72 if !event.EventType().IsHeartbeat() {
73 return xerrors.Errorf("event type %q is not a heartbeat event", event.EventType())
74 }
75 if err := event.Valid(); err != nil {
76 return xerrors.Errorf("invalid %q event: %w", event.EventType(), err)
77 }
78
79 jsonData, err := json.Marshal(event.Fields())
80 if err != nil {
81 return xerrors.Errorf("marshal event as JSON: %w", err)
82 }
83
84 // Duplicate events are ignored by the query, so we don't need to check the
85 // error.
86 return tx.InsertUsageEvent(ctx, database.InsertUsageEventParams{
87 ID: id,
88 EventType: string(event.EventType()),
89 EventData: jsonData,
90 CreatedAt: dbtime.Time(i.clock.Now()),
91 })
92}

Callers

nothing calls this directly

Calls 8

TimeFunction · 0.92
IsHeartbeatMethod · 0.80
EventTypeMethod · 0.65
ValidMethod · 0.65
FieldsMethod · 0.65
InsertUsageEventMethod · 0.65
ErrorfMethod · 0.45
MarshalMethod · 0.45

Tested by

no test coverage detected