Skip to content

Commit 3f68622

Browse files
committed
add other properties, only attach baggage to transaction events
1 parent 265ad84 commit 3f68622

File tree

4 files changed

+23
-10
lines changed

4 files changed

+23
-10
lines changed

packages/core/src/envelope.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
DsnComponents,
33
Event,
44
EventEnvelope,
5+
EventEnvelopeHeaders,
56
EventItem,
67
SdkInfo,
78
SdkMetadata,
@@ -10,7 +11,7 @@ import {
1011
SessionEnvelope,
1112
SessionItem,
1213
} from '@sentry/types';
13-
import { createBaggage, createEnvelope, dsnToString, serializeBaggage } from '@sentry/utils';
14+
import { BaggageObj, createBaggage, createEnvelope, dsnToString, serializeBaggage } from '@sentry/utils';
1415

1516
/** Extract sdk info from from the API metadata */
1617
function getSdkMetadataForEnvelopeHeader(metadata?: SdkMetadata): SdkInfo | undefined {
@@ -101,15 +102,29 @@ export function createEventEnvelope(
101102
// TODO: This is NOT part of the hack - DO NOT DELETE
102103
delete event.sdkProcessingMetadata;
103104

104-
const baggage = createBaggage({ environment: event.environment, release: event.release });
105-
106-
const envelopeHeaders = {
105+
let envelopeHeaders: EventEnvelopeHeaders = {
107106
event_id: event.event_id as string,
108107
sent_at: new Date().toISOString(),
109-
baggage: serializeBaggage(baggage),
110108
...(sdkInfo && { sdk: sdkInfo }),
111109
...(!!tunnel && { dsn: dsnToString(dsn) }),
112110
};
111+
112+
if (eventType === 'transaction') {
113+
const baggage = createBaggage({
114+
environment: event.environment,
115+
release: event.release,
116+
transaction: event.transaction,
117+
userid: event.user && event.user.id,
118+
// TODO user.segment currently doesn't exist explicitly in interface User (just as a record key)
119+
usersegment: event.user && event.user.segment,
120+
} as BaggageObj);
121+
122+
envelopeHeaders = {
123+
...envelopeHeaders,
124+
baggage: serializeBaggage(baggage),
125+
};
126+
}
127+
113128
const eventItem: EventItem = [
114129
{
115130
type: eventType,

packages/types/src/envelope.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export type SessionItem =
5656
| BaseEnvelopeItem<SessionAggregatesItemHeaders, SessionAggregates>;
5757
export type ClientReportItem = BaseEnvelopeItem<ClientReportItemHeaders, ClientReport>;
5858

59-
type EventEnvelopeHeaders = { event_id: string; sent_at: string; baggage?: string };
59+
export type EventEnvelopeHeaders = { event_id: string; sent_at: string; baggage?: string };
6060
type SessionEnvelopeHeaders = { sent_at: string };
6161
type ClientReportEnvelopeHeaders = BaseEnvelopeHeaders;
6262

packages/types/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export type {
1515
EnvelopeItemType,
1616
EnvelopeItem,
1717
EventEnvelope,
18+
EventEnvelopeHeaders,
1819
EventItem,
1920
SessionEnvelope,
2021
SessionItem,

packages/utils/src/baggage.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
import { IS_DEBUG_BUILD } from './flags';
2-
import { logger } from './logger';
3-
4-
export type AllowedBaggageKeys = 'environment' | 'release'; // TODO: Add remaining allowed baggage keys | 'transaction' | 'userid' | 'usersegment';
1+
export type AllowedBaggageKeys = 'environment' | 'release' | 'userid' | 'transaction' | 'usersegment';
52
export type BaggageObj = Partial<Record<AllowedBaggageKeys, string> & Record<string, string>>;
63

74
/**

0 commit comments

Comments
 (0)