|
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