Skip to content

Commit afc1649

Browse files
committed
ref(types): deprecate transactionmethod enum
1 parent f87b66d commit afc1649

File tree

5 files changed

+24
-22
lines changed

5 files changed

+24
-22
lines changed

packages/core/test/lib/request.test.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { DebugMeta, Event, SentryRequest, TransactionSamplingMethod } from '@sentry/types';
1+
import { DebugMeta, Event, SentryRequest } from '@sentry/types';
22

33
import { initAPIDetails } from '../../src/api';
44
import { eventToSentryRequest, sessionToSentryRequest } from '../../src/request';
@@ -44,21 +44,21 @@ describe('eventToSentryRequest', () => {
4444
});
4545

4646
it('adds transaction sampling information to item header', () => {
47-
event.debug_meta = { transactionSampling: { method: TransactionSamplingMethod.Rate, rate: 0.1121 } };
47+
event.debug_meta = { transactionSampling: { method: 'client_rate', rate: 0.1121 } };
4848

4949
const result = eventToSentryRequest(event, api);
5050
const envelope = parseEnvelopeRequest(result);
5151

5252
expect(envelope.itemHeader).toEqual(
5353
expect.objectContaining({
54-
sample_rates: [{ id: TransactionSamplingMethod.Rate, rate: 0.1121 }],
54+
sample_rates: [{ id: 'client_rate', rate: 0.1121 }],
5555
}),
5656
);
5757
});
5858

5959
it('removes transaction sampling information (and only that) from debug_meta', () => {
6060
event.debug_meta = {
61-
transactionSampling: { method: TransactionSamplingMethod.Sampler, rate: 0.1121 },
61+
transactionSampling: { method: 'client_sampler', rate: 0.1121 },
6262
dog: 'Charlie',
6363
} as DebugMeta;
6464

@@ -71,7 +71,7 @@ describe('eventToSentryRequest', () => {
7171

7272
it('removes debug_meta entirely if it ends up empty', () => {
7373
event.debug_meta = {
74-
transactionSampling: { method: TransactionSamplingMethod.Rate, rate: 0.1121 },
74+
transactionSampling: { method: 'client_rate', rate: 0.1121 },
7575
} as DebugMeta;
7676

7777
const result = eventToSentryRequest(event, api);

packages/tracing/src/hubextensions.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
Options,
77
SamplingContext,
88
TransactionContext,
9-
TransactionSamplingMethod,
109
} from '@sentry/types';
1110
import { dynamicRequire, isNodeEnv, loadModule, logger } from '@sentry/utils';
1211

@@ -51,7 +50,7 @@ function sample<T extends Transaction>(transaction: T, options: Options, samplin
5150
// if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that
5251
if (transaction.sampled !== undefined) {
5352
transaction.setMetadata({
54-
transactionSampling: { method: TransactionSamplingMethod.Explicit },
53+
transactionSampling: { method: 'explicitly_set' },
5554
});
5655
return transaction;
5756
}
@@ -63,21 +62,21 @@ function sample<T extends Transaction>(transaction: T, options: Options, samplin
6362
sampleRate = options.tracesSampler(samplingContext);
6463
transaction.setMetadata({
6564
transactionSampling: {
66-
method: TransactionSamplingMethod.Sampler,
65+
method: 'client_sampler',
6766
// cast to number in case it's a boolean
6867
rate: Number(sampleRate),
6968
},
7069
});
7170
} else if (samplingContext.parentSampled !== undefined) {
7271
sampleRate = samplingContext.parentSampled;
7372
transaction.setMetadata({
74-
transactionSampling: { method: TransactionSamplingMethod.Inheritance },
73+
transactionSampling: { method: 'inheritance' },
7574
});
7675
} else {
7776
sampleRate = options.tracesSampleRate;
7877
transaction.setMetadata({
7978
transactionSampling: {
80-
method: TransactionSamplingMethod.Rate,
79+
method: 'client_rate',
8180
// cast to number in case it's a boolean
8281
rate: Number(sampleRate),
8382
},

packages/tracing/test/hub.test.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* eslint-disable @typescript-eslint/unbound-method */
22
import { BrowserClient } from '@sentry/browser';
33
import { Hub, makeMain } from '@sentry/hub';
4-
import { TransactionSamplingMethod } from '@sentry/types';
54
import * as utilsModule from '@sentry/utils'; // for mocking
65
import { logger } from '@sentry/utils';
76

@@ -221,7 +220,7 @@ describe('Hub', () => {
221220
hub.startTransaction({ name: 'dogpark', sampled: true });
222221

223222
expect(Transaction.prototype.setMetadata).toHaveBeenCalledWith({
224-
transactionSampling: { method: TransactionSamplingMethod.Explicit },
223+
transactionSampling: { method: 'explicitly_set' },
225224
});
226225
});
227226

@@ -232,7 +231,7 @@ describe('Hub', () => {
232231
hub.startTransaction({ name: 'dogpark' });
233232

234233
expect(Transaction.prototype.setMetadata).toHaveBeenCalledWith({
235-
transactionSampling: { method: TransactionSamplingMethod.Sampler, rate: 0.1121 },
234+
transactionSampling: { method: 'client_sampler', rate: 0.1121 },
236235
});
237236
});
238237

@@ -242,7 +241,7 @@ describe('Hub', () => {
242241
hub.startTransaction({ name: 'dogpark', parentSampled: true });
243242

244243
expect(Transaction.prototype.setMetadata).toHaveBeenCalledWith({
245-
transactionSampling: { method: TransactionSamplingMethod.Inheritance },
244+
transactionSampling: { method: 'inheritance' },
246245
});
247246
});
248247

@@ -252,7 +251,7 @@ describe('Hub', () => {
252251
hub.startTransaction({ name: 'dogpark' });
253252

254253
expect(Transaction.prototype.setMetadata).toHaveBeenCalledWith({
255-
transactionSampling: { method: TransactionSamplingMethod.Rate, rate: 0.1121 },
254+
transactionSampling: { method: 'client_rate', rate: 0.1121 },
256255
});
257256
});
258257
});

packages/types/src/transaction.ts

+2-7
Original file line numberDiff line numberDiff line change
@@ -117,15 +117,10 @@ export interface SamplingContext extends CustomSamplingContext {
117117

118118
export type Measurements = Record<string, { value: number }>;
119119

120-
export enum TransactionSamplingMethod {
121-
Explicit = 'explicitly_set',
122-
Sampler = 'client_sampler',
123-
Rate = 'client_rate',
124-
Inheritance = 'inheritance',
125-
}
120+
export type TransactionSamplingMethod = 'explicitly_set' | 'client_sampler' | 'client_rate' | 'inheritance';
126121

127122
export interface TransactionMetadata {
128-
transactionSampling?: { rate?: number; method?: string };
123+
transactionSampling?: { rate?: number; method?: TransactionSamplingMethod };
129124

130125
/** The two halves (sentry and third-party) of a transaction's tracestate header, used for dynamic sampling */
131126
tracestate?: {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/** JSDoc
2+
* @deprecated Use string literals - if you require type casting, cast to TransactionSamplingMethod type
3+
*/
4+
export enum TransactionSamplingMethod {
5+
Explicit = 'explicitly_set',
6+
Sampler = 'client_sampler',
7+
Rate = 'client_rate',
8+
Inheritance = 'inheritance',
9+
}

0 commit comments

Comments
 (0)