@@ -26,26 +26,32 @@ export function updateRouteBeforeResponse(event: H3Event): void {
26
26
getCurrentScope ( ) . setTransactionName ( parametrizedTransactionName ) ;
27
27
28
28
const activeSpan = getActiveSpan ( ) ; // In development mode, getActiveSpan() is always undefined
29
- if ( activeSpan ) {
30
- const rootSpan = getRootSpan ( activeSpan ) ;
31
- if ( rootSpan ) {
32
- rootSpan . updateName ( parametrizedTransactionName ) ;
33
- rootSpan . setAttributes ( {
34
- [ SEMANTIC_ATTRIBUTE_SENTRY_SOURCE ] : 'route' ,
35
- 'http.route' : matchedRoutePath ,
36
- } ) ;
29
+ if ( ! activeSpan ) {
30
+ return ;
31
+ }
32
+
33
+ const rootSpan = getRootSpan ( activeSpan ) ;
34
+ if ( ! rootSpan ) {
35
+ return ;
36
+ }
37
37
38
- const params = event . context ?. params ;
38
+ rootSpan . setAttributes ( {
39
+ [ SEMANTIC_ATTRIBUTE_SENTRY_SOURCE ] : 'route' ,
40
+ 'http.route' : matchedRoutePath ,
41
+ } ) ;
39
42
40
- if ( params && typeof params === 'object' ) {
41
- Object . entries ( params ) . forEach ( ( [ key , value ] ) => {
42
- // Based on this convention: https://getsentry.github.io/sentry-conventions/generated/attributes/url.html#urlpathparameterkey
43
- rootSpan . setAttribute ( `url.path.parameter.${ key } ` , String ( value ) ) ;
44
- } ) ;
45
- }
43
+ const params = event . context ?. params ;
46
44
47
- logger . log ( `Updated transaction name for parametrized route: ${ parametrizedTransactionName } ` ) ;
48
- }
45
+ if ( params && typeof params === 'object' ) {
46
+ Object . entries ( params ) . forEach ( ( [ key , value ] ) => {
47
+ // Based on this convention: https://getsentry.github.io/sentry-conventions/generated/attributes/url.html#urlpathparameterkey
48
+ rootSpan . setAttributes ( {
49
+ [ `url.path.parameter.${ key } ` ] : String ( value ) ,
50
+ [ `params.${ key } ` ] : String ( value ) ,
51
+ } ) ;
52
+ } ) ;
49
53
}
54
+
55
+ logger . log ( `Updated transaction name for parametrized route: ${ parametrizedTransactionName } ` ) ;
50
56
}
51
57
}
0 commit comments