|
1 | 1 | import { |
| 2 | + BaggageObj, |
2 | 3 | DsnComponents, |
3 | 4 | Event, |
4 | 5 | EventEnvelope, |
5 | 6 | EventEnvelopeHeaders, |
6 | 7 | EventItem, |
| 8 | + EventTraceContext, |
7 | 9 | SdkInfo, |
8 | 10 | SdkMetadata, |
9 | 11 | Session, |
@@ -99,28 +101,34 @@ function createEventEnvelopeHeaders( |
99 | 101 | tunnel: string | undefined, |
100 | 102 | dsn: DsnComponents, |
101 | 103 | ): EventEnvelopeHeaders { |
| 104 | + const baggage = event.contexts && (event.contexts.baggage as BaggageObj); |
| 105 | + const { environment, release, transaction, userid, usersegment } = baggage || {}; |
| 106 | + |
102 | 107 | return { |
103 | 108 | event_id: event.event_id as string, |
104 | 109 | sent_at: new Date().toISOString(), |
105 | 110 | ...(sdkInfo && { sdk: sdkInfo }), |
106 | 111 | ...(!!tunnel && { dsn: dsnToString(dsn) }), |
107 | 112 | ...(event.type === 'transaction' && |
| 113 | + // If we don't already have a trace context in the event, we can't get the trace id, which makes adding any other |
| 114 | + // trace data pointless |
108 | 115 | event.contexts && |
109 | 116 | event.contexts.trace && { |
110 | | - // TODO: Grab this from baggage |
111 | 117 | trace: dropUndefinedKeys({ |
112 | 118 | // Trace context must be defined for transactions |
113 | 119 | // eslint-disable-next-line @typescript-eslint/no-non-null-assertion |
114 | | - trace_id: event.contexts!.trace.trace_id as string, |
115 | | - environment: event.environment, |
116 | | - release: event.release, |
117 | | - transaction: event.transaction, |
118 | | - user: event.user && { |
119 | | - id: event.user.id, |
120 | | - segment: event.user.segment, |
121 | | - }, |
| 120 | + trace_id: (event.contexts!.trace as Record<string, unknown>).trace_id as string, |
122 | 121 | public_key: dsn.publicKey, |
123 | | - }), |
| 122 | + environment: environment, |
| 123 | + release: release, |
| 124 | + transaction: transaction, |
| 125 | + ...((userid || usersegment) && { |
| 126 | + user: { |
| 127 | + id: userid, |
| 128 | + segment: usersegment, |
| 129 | + }, |
| 130 | + }), |
| 131 | + }) as EventTraceContext, |
124 | 132 | }), |
125 | 133 | }; |
126 | 134 | } |
0 commit comments