Skip to content

Commit b971717

Browse files
authored
chore(api): add sandboxID to traces (#2195)
1 parent 63a151a commit b971717

8 files changed

Lines changed: 23 additions & 12 deletions

File tree

packages/api/internal/handlers/sandbox_connect.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ func (a *APIStore) PostSandboxesSandboxIDConnect(c *gin.Context, sandboxID api.S
5959
return
6060
}
6161

62+
span.SetAttributes(telemetry.WithSandboxID(sandboxID))
63+
6264
// It could happen that after sandbox transition, it'll be again transitioning, retry up to maxConnectRetries times.
6365
const maxConnectRetries = 3
6466

packages/api/internal/handlers/sandbox_create.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,9 @@ func (a *APIStore) PostSandboxes(c *gin.Context) {
113113

114114
alias := firstAlias(env.Aliases)
115115
telemetry.SetAttributes(ctx,
116-
attribute.String("env.team.id", teamInfo.Team.ID.String()),
116+
telemetry.WithSandboxID(sandboxID),
117117
telemetry.WithTemplateID(env.TemplateID),
118+
telemetry.WithBuildID(build.ID.String()),
118119
attribute.String("env.alias", alias),
119120
telemetry.WithKernelVersion(build.KernelVersion),
120121
telemetry.WithFirecrackerVersion(build.FirecrackerVersion),

packages/api/internal/handlers/sandbox_kill.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88

99
"github.com/gin-gonic/gin"
1010
"github.com/google/uuid"
11-
"go.opentelemetry.io/otel/attribute"
1211

1312
"github.com/e2b-dev/infra/packages/api/internal/db"
1413
"github.com/e2b-dev/infra/packages/api/internal/orchestrator"
@@ -59,7 +58,7 @@ func (a *APIStore) DeleteSandboxesSandboxID(
5958
teamID := team.ID
6059

6160
telemetry.SetAttributes(ctx,
62-
attribute.String("instance.id", sandboxID),
61+
telemetry.WithSandboxID(sandboxID),
6362
telemetry.WithTeamID(teamID.String()),
6463
)
6564

packages/api/internal/handlers/sandbox_pause.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ func (a *APIStore) PostSandboxesSandboxIDPause(c *gin.Context, sandboxID api.San
3737
}
3838

3939
span := trace.SpanFromContext(ctx)
40+
span.SetAttributes(telemetry.WithSandboxID(sandboxID))
41+
4042
traceID := span.SpanContext().TraceID().String()
4143
c.Set("traceID", traceID)
4244

packages/api/internal/handlers/sandbox_refresh.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ func (a *APIStore) PostSandboxesSandboxIDRefreshes(
2929
return
3030
}
3131

32+
telemetry.SetAttributes(ctx, telemetry.WithSandboxID(sandboxID))
33+
3234
team := auth.MustGetTeamInfo(c)
3335
var duration time.Duration
3436

packages/api/internal/handlers/sandbox_resume.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,14 @@ func (a *APIStore) PostSandboxesSandboxIDResume(c *gin.Context, sandboxID api.Sa
3333
traceID := span.SpanContext().TraceID().String()
3434
c.Set("traceID", traceID)
3535

36-
telemetry.ReportEvent(ctx, "Parsed body")
36+
sandboxID, err := utils.ShortID(sandboxID)
37+
if err != nil {
38+
a.sendAPIStoreError(c, http.StatusBadRequest, "Invalid sandbox ID")
39+
40+
return
41+
}
42+
43+
span.SetAttributes(telemetry.WithSandboxID(sandboxID))
3744

3845
body, err := ginutils.ParseBody[api.PostSandboxesSandboxIDResumeJSONRequestBody](ctx, c)
3946
if err != nil {
@@ -44,6 +51,8 @@ func (a *APIStore) PostSandboxesSandboxIDResume(c *gin.Context, sandboxID api.Sa
4451
return
4552
}
4653

54+
telemetry.ReportEvent(ctx, "Parsed body")
55+
4756
timeout := sandbox.SandboxTimeoutDefault
4857
if body.Timeout != nil {
4958
timeout = time.Duration(*body.Timeout) * time.Second
@@ -56,14 +65,6 @@ func (a *APIStore) PostSandboxesSandboxIDResume(c *gin.Context, sandboxID api.Sa
5665
}
5766

5867
teamID := teamInfo.Team.ID
59-
60-
sandboxID, err = utils.ShortID(sandboxID)
61-
if err != nil {
62-
a.sendAPIStoreError(c, http.StatusBadRequest, "Invalid sandbox ID")
63-
64-
return
65-
}
66-
6768
sandboxData, err := a.orchestrator.GetSandbox(ctx, teamID, sandboxID)
6869
if err == nil {
6970
if sandboxData.TeamID != teamID {

packages/api/internal/handlers/sandbox_timeout.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ func (a *APIStore) PostSandboxesSandboxIDTimeout(
2828
return
2929
}
3030

31+
telemetry.SetAttributes(ctx, telemetry.WithSandboxID(sandboxID))
32+
3133
team := auth.MustGetTeamInfo(c)
3234

3335
var duration time.Duration

packages/api/internal/handlers/snapshot_template_create.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ func (a *APIStore) PostSandboxesSandboxIDSnapshots(c *gin.Context, sandboxID api
4545
return
4646
}
4747

48+
span.SetAttributes(telemetry.WithSandboxID(sandboxID))
49+
4850
body, err := ginutils.ParseBody[api.PostSandboxesSandboxIDSnapshotsJSONRequestBody](ctx, c)
4951
if err != nil {
5052
a.sendAPIStoreError(c, http.StatusBadRequest, fmt.Sprintf("Error when parsing request: %s", err))

0 commit comments

Comments
 (0)