Skip to content

Commit bd930ce

Browse files
committed
fix span name, origin inconsistencies
1 parent 0fc9c40 commit bd930ce

File tree

3 files changed

+30
-11
lines changed

3 files changed

+30
-11
lines changed

packages/sveltekit/src/server-common/handle.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,13 +177,13 @@ async function instrumentHandle(
177177

178178
const routeName = kitRootSpanAttributes['http.route'];
179179
if (routeName && typeof routeName === 'string') {
180-
updateSpanName(kitRootSpan, routeName);
180+
updateSpanName(kitRootSpan, `${event.request.method ?? 'GET'} ${routeName}`);
181181
}
182182

183183
kitRootSpan.setAttributes({
184184
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.server',
185-
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.sveltejs.kit',
186-
[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: routeId ? 'route' : 'url',
185+
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.sveltekit',
186+
[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: routeName ? 'route' : 'url',
187187
'sveltekit.tracing.original_name': originalName,
188188
});
189189
}

packages/sveltekit/src/server-common/processKitSpans.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,12 @@ export function _enhanceKitSpan(span: SpanJSON): void {
2929

3030
const spanName = span.description;
3131

32+
const previousOp = span.op || span.data[SEMANTIC_ATTRIBUTE_SENTRY_OP];
33+
const previousOrigin = span.origin || span.data[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN];
34+
3235
switch (spanName) {
3336
case 'sveltekit.resolve':
34-
op = 'http.sveltekit.resolve';
37+
op = 'function.sveltekit.resolve';
3538
origin = 'auto.http.sveltekit';
3639
break;
3740
case 'sveltekit.load':
@@ -59,15 +62,12 @@ export function _enhanceKitSpan(span: SpanJSON): void {
5962
}
6063
}
6164

62-
const previousOp = span.op || span.data[SEMANTIC_ATTRIBUTE_SENTRY_OP];
63-
const previousOrigin = span.origin || span.data[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN];
64-
6565
if (!previousOp && op) {
6666
span.op = op;
6767
span.data[SEMANTIC_ATTRIBUTE_SENTRY_OP] = op;
6868
}
6969

70-
if (!previousOrigin && origin) {
70+
if ((!previousOrigin || previousOrigin === 'manual') && origin) {
7171
span.origin = origin;
7272
span.data[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] = origin;
7373
}

packages/sveltekit/test/server-common/processKitSpans.test.ts

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,15 @@ describe('svelteKitSpansIntegration', () => {
3131
svelteKitSpansIntegration().preprocessEvent?.(event, {}, {});
3232

3333
expect(event.spans).toHaveLength(1);
34-
expect(event.spans?.[0]?.op).toBe('http.sveltekit.resolve');
34+
expect(event.spans?.[0]?.op).toBe('function.sveltekit.resolve');
3535
expect(event.spans?.[0]?.origin).toBe('auto.http.sveltekit');
36-
expect(event.spans?.[0]?.data[SEMANTIC_ATTRIBUTE_SENTRY_OP]).toBe('http.sveltekit.resolve');
36+
expect(event.spans?.[0]?.data[SEMANTIC_ATTRIBUTE_SENTRY_OP]).toBe('function.sveltekit.resolve');
3737
expect(event.spans?.[0]?.data[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toBe('auto.http.sveltekit');
3838
});
3939

4040
describe('_enhanceKitSpan', () => {
4141
it.each([
42-
['sveltekit.resolve', 'http.sveltekit.resolve', 'auto.http.sveltekit'],
42+
['sveltekit.resolve', 'function.sveltekit.resolve', 'auto.http.sveltekit'],
4343
['sveltekit.load', 'function.sveltekit.load', 'auto.function.sveltekit.load'],
4444
['sveltekit.form_action', 'function.sveltekit.form_action', 'auto.function.sveltekit.action'],
4545
['sveltekit.remote.call', 'function.sveltekit.remote', 'auto.rpc.sveltekit.remote'],
@@ -140,5 +140,24 @@ describe('svelteKitSpansIntegration', () => {
140140
expect(span.origin).toBe('auto.custom.origin');
141141
expect(span.data[SEMANTIC_ATTRIBUTE_SENTRY_OP]).toBe('custom.op');
142142
});
143+
144+
it('overwrites previously set "manual" origins on sveltekit spans', () => {
145+
// for example, if users manually set this (for whatever reason)
146+
const span = {
147+
description: 'sveltekit.resolve',
148+
origin: 'manual',
149+
data: {
150+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'custom.op',
151+
},
152+
span_id: '123',
153+
trace_id: 'abc',
154+
start_timestamp: 0,
155+
} as SpanJSON;
156+
157+
_enhanceKitSpan(span);
158+
159+
expect(span.origin).toBe('auto.http.sveltekit');
160+
expect(span.data[SEMANTIC_ATTRIBUTE_SENTRY_OP]).toBe('custom.op');
161+
});
143162
});
144163
});

0 commit comments

Comments
 (0)