Skip to content

Commit 1eeea62

Browse files
authored
feat(v8/core): Remove span.finish call (#10773)
1 parent b194be4 commit 1eeea62

File tree

8 files changed

+40
-80
lines changed

8 files changed

+40
-80
lines changed

packages/core/src/tracing/sentrySpan.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -397,15 +397,6 @@ export class SentrySpan implements SpanInterface {
397397
return this;
398398
}
399399

400-
/**
401-
* @inheritDoc
402-
*
403-
* @deprecated Use `.end()` instead.
404-
*/
405-
public finish(endTimestamp?: number): void {
406-
return this.end(endTimestamp);
407-
}
408-
409400
/** @inheritdoc */
410401
public end(endTimestamp?: SpanTimeInput): void {
411402
// If already ended, skip

packages/node-experimental/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ const span = Sentry.startInactiveSpan({ description: 'non-active span' });
8282

8383
doSomethingSlow();
8484

85-
span.finish();
85+
span.end();
8686
```
8787

8888
Finally you can also get the currently active span, if you need to do more with it:

packages/profiling-node/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const transaction = Sentry.startTransaction({ name: 'some workflow' });
4646

4747
// The code between startTransaction and transaction.finish will be profiled
4848

49-
transaction.finish();
49+
transaction.end();
5050
```
5151

5252
### Building the package from source

packages/profiling-node/src/hubextensions.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -183,13 +183,12 @@ export function __PRIVATE__wrapStartTransactionWithProfiling(startTransaction: S
183183
}, maxProfileDurationMs);
184184

185185
// We need to reference the original finish call to avoid creating an infinite loop
186-
// eslint-disable-next-line deprecation/deprecation
187-
const originalFinish = transaction.finish.bind(transaction);
186+
const originalEnd = transaction.end.bind(transaction);
188187

189188
// Wrap the transaction finish method to stop profiling and set the profile on the transaction.
190-
function profilingWrappedTransactionFinish(): void {
189+
function profilingWrappedTransactionEnd(): void {
191190
if (!profile_id) {
192-
return originalFinish();
191+
return originalEnd();
193192
}
194193

195194
// We stop the handler first to ensure that the timeout is cleared and the profile is stopped.
@@ -207,11 +206,10 @@ export function __PRIVATE__wrapStartTransactionWithProfiling(startTransaction: S
207206
// @ts-expect-error profile is not part of metadata
208207
// eslint-disable-next-line deprecation/deprecation
209208
transaction.setMetadata({ profile });
210-
return originalFinish();
209+
return originalEnd();
211210
}
212211

213-
// eslint-disable-next-line deprecation/deprecation
214-
transaction.finish = profilingWrappedTransactionFinish;
212+
transaction.end = profilingWrappedTransactionEnd;
215213
return transaction;
216214
};
217215
}

packages/profiling-node/test/hubextensions.hub.test.ts

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,7 @@ describe('hubextensions', () => {
101101
// eslint-disable-next-line deprecation/deprecation
102102
const transaction = Sentry.getCurrentHub().startTransaction({ name: 'profile_hub' });
103103
await wait(500);
104-
// eslint-disable-next-line deprecation/deprecation
105-
transaction.finish();
104+
transaction.end();
106105

107106
await Sentry.flush(1000);
108107
expect(transportSpy.mock.calls?.[0]?.[0]?.[1]?.[0]?.[1]).toMatchObject({ environment: 'test-environment' });
@@ -138,8 +137,7 @@ describe('hubextensions', () => {
138137

139138
// eslint-disable-next-line deprecation/deprecation
140139
const transaction = Sentry.getCurrentHub().startTransaction({ name: 'profile_hub' });
141-
// eslint-disable-next-line deprecation/deprecation
142-
transaction.finish();
140+
transaction.end();
143141

144142
await Sentry.flush(1000);
145143

@@ -188,8 +186,7 @@ describe('hubextensions', () => {
188186
// eslint-disable-next-line deprecation/deprecation
189187
const transaction = Sentry.getCurrentHub().startTransaction({ name: 'profile_hub', traceId: 'boop' });
190188
await wait(500);
191-
// eslint-disable-next-line deprecation/deprecation
192-
transaction.finish();
189+
transaction.end();
193190

194191
await Sentry.flush(1000);
195192
expect(logSpy.mock?.calls?.[6]?.[0]).toBe('[Profiling] Invalid traceId: ' + 'boop' + ' on profiled event');
@@ -211,8 +208,7 @@ describe('hubextensions', () => {
211208
// eslint-disable-next-line deprecation/deprecation
212209
const transaction = hub.startTransaction({ name: 'profile_hub' });
213210
await wait(500);
214-
// eslint-disable-next-line deprecation/deprecation
215-
transaction.finish();
211+
transaction.end();
216212

217213
await Sentry.flush(1000);
218214

@@ -232,8 +228,7 @@ describe('hubextensions', () => {
232228
// eslint-disable-next-line deprecation/deprecation
233229
const transaction = hub.startTransaction({ name: 'profile_hub' });
234230
await wait(500);
235-
// eslint-disable-next-line deprecation/deprecation
236-
transaction.finish();
231+
transaction.end();
237232

238233
await Sentry.flush(1000);
239234

@@ -285,8 +280,7 @@ describe('hubextensions', () => {
285280
// eslint-disable-next-line deprecation/deprecation
286281
const transaction = hub.startTransaction({ name: 'profile_hub' });
287282
await wait(500);
288-
// eslint-disable-next-line deprecation/deprecation
289-
transaction.finish();
283+
transaction.end();
290284

291285
await Sentry.flush(1000);
292286

@@ -308,8 +302,7 @@ describe('hubextensions', () => {
308302
// eslint-disable-next-line deprecation/deprecation
309303
const transaction = hub.startTransaction({ name: 'profile_hub' });
310304
await wait(500);
311-
// eslint-disable-next-line deprecation/deprecation
312-
transaction.finish();
305+
transaction.end();
313306

314307
await Sentry.flush(1000);
315308

@@ -336,8 +329,7 @@ describe('hubextensions', () => {
336329
// eslint-disable-next-line deprecation/deprecation
337330
const transaction = hub.startTransaction({ name: 'profile_hub' });
338331
await wait(500);
339-
// eslint-disable-next-line deprecation/deprecation
340-
transaction.finish();
332+
transaction.end();
341333

342334
await Sentry.flush(1000);
343335

@@ -360,8 +352,7 @@ describe('hubextensions', () => {
360352
// eslint-disable-next-line deprecation/deprecation
361353
const transaction = hub.startTransaction({ name: 'profile_hub' });
362354
await wait(500);
363-
// eslint-disable-next-line deprecation/deprecation
364-
transaction.finish();
355+
transaction.end();
365356

366357
await Sentry.flush(1000);
367358

@@ -392,8 +383,7 @@ describe('hubextensions', () => {
392383
expect(stopProfilingSpy).toHaveBeenCalledTimes(1);
393384
expect((stopProfilingSpy.mock.calls[startProfilingSpy.mock.calls.length - 1]?.[0] as string).length).toBe(32);
394385

395-
// eslint-disable-next-line deprecation/deprecation
396-
transaction.finish();
386+
transaction.end();
397387
expect(stopProfilingSpy).toHaveBeenCalledTimes(1);
398388
});
399389
});
@@ -409,10 +399,8 @@ describe('hubextensions', () => {
409399

410400
// eslint-disable-next-line deprecation/deprecation
411401
const transaction = Sentry.getCurrentHub().startTransaction({ name: 'txn' });
412-
// eslint-disable-next-line deprecation/deprecation
413-
transaction.finish();
414-
// eslint-disable-next-line deprecation/deprecation
415-
transaction.finish();
402+
transaction.end();
403+
transaction.end();
416404
expect(stopProfilingSpy).toHaveBeenCalledTimes(1);
417405
});
418406

@@ -456,8 +444,7 @@ describe('hubextensions', () => {
456444
// eslint-disable-next-line deprecation/deprecation
457445
const transaction = hub.startTransaction({ name: 'profile_hub' });
458446
await wait(500);
459-
// eslint-disable-next-line deprecation/deprecation
460-
transaction.finish();
447+
transaction.end();
461448

462449
await Sentry.flush(1000);
463450

packages/profiling-node/test/hubextensions.test.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ function makeTransactionMock(options = {}): Transaction {
1818
tags: {},
1919
sampled: true,
2020
contexts: {},
21-
startChild: () => ({ finish: () => void 0 }),
22-
finish() {
21+
startChild: () => ({ end: () => void 0 }),
22+
end() {
2323
return;
2424
},
2525
toContext: () => {
@@ -74,7 +74,7 @@ describe('hubextensions', () => {
7474

7575
const maybeStartTransactionWithProfiling = __PRIVATE__wrapStartTransactionWithProfiling(startTransaction);
7676
const transaction = maybeStartTransactionWithProfiling.call(hub, { name: '' }, {});
77-
transaction.finish();
77+
transaction.end();
7878

7979
expect(startTransaction).toHaveBeenCalledTimes(1);
8080
expect(startProfilingSpy).not.toHaveBeenCalled();
@@ -87,7 +87,7 @@ describe('hubextensions', () => {
8787

8888
const maybeStartTransactionWithProfiling = __PRIVATE__wrapStartTransactionWithProfiling(startTransaction);
8989
const transaction = maybeStartTransactionWithProfiling.call(hub, { name: '' }, {});
90-
transaction.finish();
90+
transaction.end();
9191

9292
expect(startTransaction).toHaveBeenCalledTimes(1);
9393
expect(startProfilingSpy).not.toHaveBeenCalled();
@@ -102,7 +102,7 @@ describe('hubextensions', () => {
102102

103103
const maybeStartTransactionWithProfiling = __PRIVATE__wrapStartTransactionWithProfiling(startTransaction);
104104
const transaction = maybeStartTransactionWithProfiling.call(hub, { name: '' }, {});
105-
transaction.finish();
105+
transaction.end();
106106

107107
expect(startTransaction).toHaveBeenCalledTimes(1);
108108
expect(startProfilingSpy).not.toHaveBeenCalled();
@@ -118,7 +118,7 @@ describe('hubextensions', () => {
118118

119119
const maybeStartTransactionWithProfiling = __PRIVATE__wrapStartTransactionWithProfiling(startTransaction);
120120
const transaction = maybeStartTransactionWithProfiling.call(hub, { name: '' }, {});
121-
transaction.finish();
121+
transaction.end();
122122

123123
expect(startTransaction).toHaveBeenCalledTimes(1);
124124
expect(startProfilingSpy).toHaveBeenCalledTimes(1);
@@ -136,7 +136,7 @@ describe('hubextensions', () => {
136136

137137
const maybeStartTransactionWithProfiling = __PRIVATE__wrapStartTransactionWithProfiling(startTransaction);
138138
const transaction = maybeStartTransactionWithProfiling.call(hub, { name: '' }, {});
139-
transaction.finish();
139+
transaction.end();
140140

141141
expect(startTransaction).toHaveBeenCalledTimes(1);
142142
expect(startProfilingSpy).not.toHaveBeenCalledTimes(1);
@@ -150,7 +150,7 @@ describe('hubextensions', () => {
150150
const maybeStartTransactionWithProfiling = __PRIVATE__wrapStartTransactionWithProfiling(startTransaction);
151151
const samplingContext = { beep: 'boop' };
152152
const transaction = maybeStartTransactionWithProfiling.call(hub, { name: '' }, samplingContext);
153-
transaction.finish();
153+
transaction.end();
154154

155155
const startProfilingSpy = jest.spyOn(CpuProfilerBindings, 'startProfiling');
156156
expect(startProfilingSpy).not.toHaveBeenCalled();
@@ -171,7 +171,7 @@ describe('hubextensions', () => {
171171
const maybeStartTransactionWithProfiling = __PRIVATE__wrapStartTransactionWithProfiling(startTransaction);
172172
const samplingContext = { beep: 'boop' };
173173
const transaction = maybeStartTransactionWithProfiling.call(hub, { name: '' }, samplingContext);
174-
transaction.finish();
174+
transaction.end();
175175

176176
expect(options.profilesSampler).toHaveBeenCalled();
177177
expect(startProfilingSpy).not.toHaveBeenCalled();
@@ -192,7 +192,7 @@ describe('hubextensions', () => {
192192
const maybeStartTransactionWithProfiling = __PRIVATE__wrapStartTransactionWithProfiling(startTransaction);
193193
const samplingContext = { beep: 'boop' };
194194
const transaction = maybeStartTransactionWithProfiling.call(hub, { name: '' }, samplingContext);
195-
transaction.finish();
195+
transaction.end();
196196

197197
expect(options.profilesSampler).toHaveBeenCalled();
198198
expect(startProfilingSpy).not.toHaveBeenCalled();
@@ -212,7 +212,7 @@ describe('hubextensions', () => {
212212
const maybeStartTransactionWithProfiling = __PRIVATE__wrapStartTransactionWithProfiling(startTransaction);
213213
const samplingContext = { beep: 'boop' };
214214
const transaction = maybeStartTransactionWithProfiling.call(hub, { name: '' }, samplingContext);
215-
transaction.finish();
215+
transaction.end();
216216

217217
expect(options.profilesSampler).toHaveBeenCalledWith({
218218
...samplingContext,
@@ -235,7 +235,7 @@ describe('hubextensions', () => {
235235
const maybeStartTransactionWithProfiling = __PRIVATE__wrapStartTransactionWithProfiling(startTransaction);
236236
const samplingContext = { beep: 'boop' };
237237
const transaction = maybeStartTransactionWithProfiling.call(hub, { name: '' }, samplingContext);
238-
transaction.finish();
238+
transaction.end();
239239

240240
expect(startProfilingSpy).toHaveBeenCalled();
241241
});

packages/profiling-node/test/index.test.ts

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ describe('Sentry - Profiling', () => {
8888
// eslint-disable-next-line deprecation/deprecation
8989
const transaction = Sentry.startTransaction({ name: 'title' });
9090
await wait(500);
91-
// eslint-disable-next-line deprecation/deprecation
92-
transaction.finish();
91+
transaction.end();
9392

9493
await Sentry.flush(500);
9594
expect(findProfile(transport)).not.toBe(null);
@@ -108,10 +107,8 @@ describe('Sentry - Profiling', () => {
108107
const t2 = Sentry.startTransaction({ name: 'inner' });
109108
await wait(500);
110109

111-
// eslint-disable-next-line deprecation/deprecation
112-
t2.finish();
113-
// eslint-disable-next-line deprecation/deprecation
114-
t1.finish();
110+
t2.end();
111+
t1.end();
115112

116113
await Sentry.flush(500);
117114

@@ -133,17 +130,15 @@ describe('Sentry - Profiling', () => {
133130
// eslint-disable-next-line deprecation/deprecation
134131
const t2 = Sentry.startTransaction({ name: 'same-title' });
135132
await wait(500);
136-
// eslint-disable-next-line deprecation/deprecation
137-
t2.finish();
138-
// eslint-disable-next-line deprecation/deprecation
139-
t1.finish();
133+
t2.end();
134+
t1.end();
140135

141136
await Sentry.flush(500);
142137
expect(findAllProfiles(transport)).toHaveLength(2);
143138
expect(findProfile(transport)).not.toBe(null);
144139
});
145140

146-
it('does not crash if finish is called multiple times', async () => {
141+
it('does not crash if end is called multiple times', async () => {
147142
const [client, transport] = makeClientWithoutHooks();
148143
// eslint-disable-next-line deprecation/deprecation
149144
const hub = Sentry.getCurrentHub();
@@ -153,10 +148,8 @@ describe('Sentry - Profiling', () => {
153148
// eslint-disable-next-line deprecation/deprecation
154149
const transaction = Sentry.startTransaction({ name: 'title' });
155150
await wait(500);
156-
// eslint-disable-next-line deprecation/deprecation
157-
transaction.finish();
158-
// eslint-disable-next-line deprecation/deprecation
159-
transaction.finish();
151+
transaction.end();
152+
transaction.end();
160153

161154
await Sentry.flush(500);
162155
expect(findAllProfiles(transport)).toHaveLength(1);

packages/types/src/span.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -245,15 +245,6 @@ export interface Span extends Omit<SpanContext, 'name' | 'op' | 'status' | 'orig
245245
*/
246246
spanContext(): SpanContextData;
247247

248-
/**
249-
* Sets the finish timestamp on the current span.
250-
*
251-
* @param endTimestamp Takes an endTimestamp if the end should not be the time when you call this function.
252-
*
253-
* @deprecated Use `.end()` instead.
254-
*/
255-
finish(endTimestamp?: number): void;
256-
257248
/**
258249
* End the current span.
259250
*/

0 commit comments

Comments
 (0)