Skip to content

Commit 7bd40c9

Browse files
committed
fix: handle nil actor from context in trace attributes
1 parent e164b50 commit 7bd40c9

4 files changed

Lines changed: 12 additions & 3 deletions

File tree

context/context.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,12 @@ func ActorFromContext(ctx context.Context) *Actor {
2727

2828
return a
2929
}
30+
31+
// ActorIDFromContext safely extracts the actor ID from the context.
32+
// Returns an empty string if no actor is found.
33+
func ActorIDFromContext(ctx context.Context) string {
34+
if actor := ActorFromContext(ctx); actor != nil {
35+
return actor.ID
36+
}
37+
return ""
38+
}

intercept/chatcompletions/base.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func (s *interceptionBase) baseTraceAttributes(r *http.Request, streaming bool)
6161
return []attribute.KeyValue{
6262
attribute.String(tracing.RequestPath, r.URL.Path),
6363
attribute.String(tracing.InterceptionID, s.id.String()),
64-
attribute.String(tracing.InitiatorID, aibcontext.ActorFromContext(r.Context()).ID),
64+
attribute.String(tracing.InitiatorID, aibcontext.ActorIDFromContext(r.Context())),
6565
attribute.String(tracing.Provider, config.ProviderOpenAI),
6666
attribute.String(tracing.Model, s.Model()),
6767
attribute.Bool(tracing.Streaming, streaming),

intercept/messages/base.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ func (s *interceptionBase) baseTraceAttributes(r *http.Request, streaming bool)
7575
return []attribute.KeyValue{
7676
attribute.String(tracing.RequestPath, r.URL.Path),
7777
attribute.String(tracing.InterceptionID, s.id.String()),
78-
attribute.String(tracing.InitiatorID, aibcontext.ActorFromContext(r.Context()).ID),
78+
attribute.String(tracing.InitiatorID, aibcontext.ActorIDFromContext(r.Context())),
7979
attribute.String(tracing.Provider, aibconfig.ProviderAnthropic),
8080
attribute.String(tracing.Model, s.Model()),
8181
attribute.Bool(tracing.Streaming, streaming),

intercept/responses/base.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func (i *responsesInterceptionBase) baseTraceAttributes(r *http.Request, streami
7878
return []attribute.KeyValue{
7979
attribute.String(tracing.RequestPath, r.URL.Path),
8080
attribute.String(tracing.InterceptionID, i.id.String()),
81-
attribute.String(tracing.InitiatorID, aibcontext.ActorFromContext(r.Context()).ID),
81+
attribute.String(tracing.InitiatorID, aibcontext.ActorIDFromContext(r.Context())),
8282
attribute.String(tracing.Provider, config.ProviderOpenAI),
8383
attribute.String(tracing.Model, i.Model()),
8484
attribute.Bool(tracing.Streaming, streaming),

0 commit comments

Comments
 (0)