Skip to content

Commit d78f176

Browse files
committed
Merge branch '574-telemetry-events' into 'dle-4-0'
feat: add new telemetry events (#574) See merge request postgres-ai/database-lab!957
2 parents 703aaaf + cfbba4e commit d78f176

File tree

5 files changed

+50
-0
lines changed

5 files changed

+50
-0
lines changed

engine/internal/srv/branch.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package srv
22

33
import (
4+
"context"
45
"fmt"
56
"net/http"
67
"regexp"
@@ -13,6 +14,7 @@ import (
1314
"gitlab.com/postgres-ai/database-lab/v3/internal/provision/resources"
1415
"gitlab.com/postgres-ai/database-lab/v3/internal/provision/thinclones"
1516
"gitlab.com/postgres-ai/database-lab/v3/internal/srv/api"
17+
"gitlab.com/postgres-ai/database-lab/v3/internal/telemetry"
1618
"gitlab.com/postgres-ai/database-lab/v3/internal/webhooks"
1719
"gitlab.com/postgres-ai/database-lab/v3/pkg/client/dblabapi/types"
1820
"gitlab.com/postgres-ai/database-lab/v3/pkg/log"
@@ -247,6 +249,10 @@ func (s *Server) createBranch(w http.ResponseWriter, r *http.Request) {
247249
EntityID: branch.Name,
248250
}
249251

252+
s.tm.SendEvent(context.Background(), telemetry.BranchCreatedEvent, telemetry.BranchCreated{
253+
Name: branch.Name,
254+
})
255+
250256
if err := api.WriteJSON(w, http.StatusOK, branch); err != nil {
251257
api.SendError(w, r, err)
252258
return
@@ -440,6 +446,8 @@ func (s *Server) snapshot(w http.ResponseWriter, r *http.Request) {
440446
return
441447
}
442448

449+
s.tm.SendEvent(context.Background(), telemetry.SnapshotCreatedEvent, telemetry.SnapshotCreated{})
450+
443451
if err := api.WriteJSON(w, http.StatusOK, types.SnapshotResponse{SnapshotID: targetSnap}); err != nil {
444452
api.SendError(w, r, err)
445453
return
@@ -643,6 +651,10 @@ func (s *Server) deleteBranch(w http.ResponseWriter, r *http.Request) {
643651
EntityID: deleteRequest.BranchName,
644652
}
645653

654+
s.tm.SendEvent(context.Background(), telemetry.BranchDestroyedEvent, telemetry.BranchDestroyed{
655+
Name: deleteRequest.BranchName,
656+
})
657+
646658
if err := api.WriteJSON(w, http.StatusOK, models.Response{
647659
Status: models.ResponseOK,
648660
Message: "Deleted branch",

engine/internal/srv/config.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"gitlab.com/postgres-ai/database-lab/v3/internal/retrieval/engine/postgres/logical"
1818
"gitlab.com/postgres-ai/database-lab/v3/internal/retrieval/engine/postgres/tools/db"
1919
"gitlab.com/postgres-ai/database-lab/v3/internal/srv/api"
20+
"gitlab.com/postgres-ai/database-lab/v3/internal/telemetry"
2021
"gitlab.com/postgres-ai/database-lab/v3/pkg/config"
2122
"gitlab.com/postgres-ai/database-lab/v3/pkg/log"
2223
"gitlab.com/postgres-ai/database-lab/v3/pkg/models"
@@ -78,6 +79,8 @@ func (s *Server) setProjectedAdminConfig(w http.ResponseWriter, r *http.Request)
7879
return
7980
}
8081

82+
s.tm.SendEvent(context.Background(), telemetry.ConfigUpdatedEvent, telemetry.ConfigUpdated{})
83+
8184
retrievalStatus := s.Retrieval.State.Status
8285

8386
if err := s.Retrieval.RemovePendingMarker(); err != nil {

engine/internal/srv/routes.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -516,6 +516,11 @@ func (s *Server) patchClone(w http.ResponseWriter, r *http.Request) {
516516
return
517517
}
518518

519+
s.tm.SendEvent(context.Background(), telemetry.CloneUpdatedEvent, telemetry.CloneUpdated{
520+
ID: util.HashID(cloneID),
521+
Protected: patchClone.Protected,
522+
})
523+
519524
if err := api.WriteJSON(w, http.StatusOK, updatedClone); err != nil {
520525
api.SendError(w, r, err)
521526
return

engine/internal/telemetry/events.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,30 @@ type CloneCreated struct {
4949
DSADiff *float64 `json:"dsa_diff,omitempty"`
5050
}
5151

52+
// CloneUpdated describes the clone updates.
53+
type CloneUpdated struct {
54+
ID string `json:"id"`
55+
Protected bool `json:"protected"`
56+
}
57+
5258
// CloneDestroyed describes a clone destruction event.
5359
type CloneDestroyed struct {
5460
ID string `json:"id"`
5561
}
5662

63+
// BranchCreated describes a branch creation event.
64+
type BranchCreated struct {
65+
Name string `json:"name"`
66+
}
67+
68+
// BranchDestroyed describes a branch destruction event.
69+
type BranchDestroyed struct {
70+
Name string `json:"name"`
71+
}
72+
73+
// ConfigUpdated describes the config updates.
74+
type ConfigUpdated struct{}
75+
5776
// Alert describes alert events.
5877
type Alert struct {
5978
Level models.AlertType `json:"level"`

engine/internal/telemetry/telemetry.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,20 @@ const (
2929
// CloneDestroyedEvent describes a clone destruction event.
3030
CloneDestroyedEvent = "clone_destroyed"
3131

32+
// CloneUpdatedEvent describes a clone update event.
33+
CloneUpdatedEvent = "clone_updated"
34+
3235
// SnapshotCreatedEvent describes a snapshot creation event.
3336
SnapshotCreatedEvent = "snapshot_created"
3437

38+
// BranchCreatedEvent describes a branch creation event.
39+
BranchCreatedEvent = "branch_created"
40+
41+
// BranchDestroyedEvent describes a branch destruction event.
42+
BranchDestroyedEvent = "branch_destroyed"
43+
44+
ConfigUpdatedEvent = "config_updated"
45+
3546
// AlertEvent describes alert events.
3647
AlertEvent = "alert"
3748
)

0 commit comments

Comments
 (0)