Skip to content

Commit f8d5a64

Browse files
authored
UUID for each sandbox event (#1394)
1 parent 5cb867b commit f8d5a64

File tree

7 files changed

+54
-132
lines changed

7 files changed

+54
-132
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
-- +goose Up
2+
3+
-- ID field with default UUID for local
4+
ALTER TABLE sandbox_events_local
5+
ADD COLUMN id UUID DEFAULT generateUUIDv4();
6+
7+
-- ID field with default UUID for global
8+
ALTER TABLE sandbox_events
9+
ADD COLUMN id UUID DEFAULT generateUUIDv4();
10+
11+
-- +goose Down
12+
-- Remove ID column from local
13+
ALTER TABLE sandbox_events_local
14+
DROP COLUMN IF EXISTS id;
15+
16+
-- Remove ID column from global
17+
ALTER TABLE sandbox_events
18+
DROP COLUMN IF EXISTS id;

packages/clickhouse/pkg/batcher/product_usage_insert_batcher.go

Lines changed: 0 additions & 112 deletions
This file was deleted.

packages/clickhouse/pkg/batcher/sandbox_events_insert_batcher.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ const InsertSandboxEventQuery = `INSERT INTO sandbox_events
3333
event_label,
3434
event_data,
3535
type,
36-
version
36+
version,
37+
id
3738
)
3839
VALUES (
3940
?,
@@ -46,6 +47,7 @@ VALUES (
4647
?,
4748
?,
4849
?,
50+
?,
4951
?
5052
)`
5153

@@ -89,6 +91,7 @@ func (b *SandboxEventInsertBatcher) processInsertSandboxEventsBatch(events []cli
8991
event.EventData,
9092
event.Type,
9193
event.Version,
94+
event.ID,
9295
)
9396
if err != nil {
9497
return fmt.Errorf("error appending %d product usage event to batch: %w", len(events), err)

packages/clickhouse/pkg/sandbox_events.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ import (
1010
)
1111

1212
type SandboxEvent struct {
13-
Version string `ch:"version"`
14-
Type string `ch:"type"`
13+
ID uuid.UUID `ch:"id"`
14+
Version string `ch:"version"`
15+
Type string `ch:"type"`
1516

1617
EventCategory string `ch:"event_category"`
1718
EventLabel string `ch:"event_label"`
@@ -51,7 +52,8 @@ SELECT
5152
event_label,
5253
event_data,
5354
type,
54-
version
55+
version,
56+
id
5557
FROM sandbox_events
5658
WHERE sandbox_id = ?
5759
ORDER BY timestamp %s
@@ -96,7 +98,8 @@ SELECT
9698
event_label,
9799
event_data,
98100
type,
99-
version
101+
version,
102+
id
100103
FROM sandbox_events
101104
WHERE sandbox_team_id = ?
102105
ORDER BY timestamp %s

packages/orchestrator/internal/events/sandbox_events_service.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,9 @@ func (es *SandboxEventsService) handleClickhouseBatcherEvent(ctx context.Context
127127

128128
if sandboxLifeCycleEventsWriteFlag {
129129
err := es.batcher.Push(clickhouse.SandboxEvent{
130-
Type: event.Type,
131130
Version: event.Version,
131+
ID: event.ID,
132+
Type: event.Type,
132133
Timestamp: event.Timestamp,
133134

134135
EventCategory: event.EventCategory,

packages/orchestrator/internal/server/sandboxes.go

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,15 @@ func (s *Server) Create(ctx context.Context, req *orchestrator.SandboxCreateRequ
168168

169169
teamID, buildId, eventData := s.prepareSandboxEventData(sbx)
170170
go s.sbxEventsService.HandleEvent(context.WithoutCancel(ctx), events.SandboxEvent{
171-
Version: events.StructureVersionV2,
171+
Version: events.StructureVersionV2,
172+
ID: uuid.New(),
173+
Type: eventType.Type,
174+
Timestamp: time.Now().UTC(),
175+
172176
EventCategory: eventType.LegacyCategory,
173177
EventLabel: eventType.LegacyLabel,
174-
Type: eventType.Type,
175178
EventData: eventData,
176179

177-
Timestamp: time.Now().UTC(),
178180
SandboxID: sbx.Runtime.SandboxID,
179181
SandboxExecutionID: sbx.Runtime.ExecutionID,
180182
SandboxTemplateID: sbx.Config.BaseTemplateID,
@@ -210,13 +212,15 @@ func (s *Server) Update(ctx context.Context, req *orchestrator.SandboxUpdateRequ
210212
eventType := events.SandboxUpdatedEventPair
211213

212214
go s.sbxEventsService.HandleEvent(context.WithoutCancel(ctx), events.SandboxEvent{
213-
Version: events.StructureVersionV2,
215+
Version: events.StructureVersionV2,
216+
ID: uuid.New(),
217+
Type: eventType.Type,
218+
Timestamp: time.Now().UTC(),
219+
214220
EventCategory: eventType.LegacyCategory,
215221
EventLabel: eventType.LegacyLabel,
216-
Type: eventType.Type,
217222
EventData: eventData,
218223

219-
Timestamp: time.Now().UTC(),
220224
SandboxID: sbx.Runtime.SandboxID,
221225
SandboxExecutionID: sbx.Runtime.ExecutionID,
222226
SandboxTemplateID: sbx.Config.BaseTemplateID,
@@ -299,13 +303,15 @@ func (s *Server) Delete(ctxConn context.Context, in *orchestrator.SandboxDeleteR
299303

300304
eventType := events.SandboxKilledEventPair
301305
go s.sbxEventsService.HandleEvent(context.WithoutCancel(ctx), events.SandboxEvent{
302-
Version: events.StructureVersionV2,
306+
Version: events.StructureVersionV2,
307+
ID: uuid.New(),
308+
Type: eventType.Type,
309+
Timestamp: time.Now().UTC(),
310+
303311
EventCategory: eventType.LegacyCategory,
304312
EventLabel: eventType.LegacyLabel,
305-
Type: eventType.Type,
306313
EventData: eventData,
307314

308-
Timestamp: time.Now().UTC(),
309315
SandboxID: sbx.Runtime.SandboxID,
310316
SandboxExecutionID: sbx.Runtime.ExecutionID,
311317
SandboxTemplateID: sbx.Config.BaseTemplateID,
@@ -409,13 +415,15 @@ func (s *Server) Pause(ctx context.Context, in *orchestrator.SandboxPauseRequest
409415

410416
eventType := events.SandboxPausedEventPair
411417
go s.sbxEventsService.HandleEvent(context.WithoutCancel(ctx), events.SandboxEvent{
412-
Version: events.StructureVersionV2,
418+
Version: events.StructureVersionV2,
419+
ID: uuid.New(),
420+
Type: eventType.Type,
421+
Timestamp: time.Now().UTC(),
422+
413423
EventCategory: eventType.LegacyCategory,
414424
EventLabel: eventType.LegacyLabel,
415-
Type: eventType.Type,
416425
EventData: eventData,
417426

418-
Timestamp: time.Now().UTC(),
419427
SandboxID: sbx.Runtime.SandboxID,
420428
SandboxExecutionID: sbx.Runtime.ExecutionID,
421429
SandboxTemplateID: sbx.Config.BaseTemplateID,

packages/shared/pkg/events/sandbox.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ var ValidSandboxEventTypes = []string{
2828
}
2929

3030
type SandboxEvent struct {
31-
Version string `json:"version"`
32-
Type string `json:"type"`
31+
ID uuid.UUID `json:"id"`
32+
Version string `json:"version"`
33+
Type string `json:"type"`
3334

3435
// Deprecated: for new events use event field with dot syntax
3536
EventCategory string `json:"event_category"`

0 commit comments

Comments
 (0)