getsentry / getsentry/sentry-javascript
Add file path attribute to page-related spans
- Dominant language
- TypeScript
- Stars
- 8.7k
- Forks
- 1.8k
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 515
Description
### Problem Statement
Our `pageload`, `navigation` but also ` http.server` spans often can be be mentally associated to specific files. For example:
- A pageload of a NextJS (/insert file-based routing framework of your choice) route, has a clear file where the page code is living
- A server-side SSR request for a specific page in an NextJS app can be associated with the same files.
Today, we don't track this information with our spans. In many cases, the span name will be very similar to the file path, but any connection we make here will always be implicit and prone to errors (e.g. `/users/[id]` corresponding to a route like `src/users/[id]/page.jsx`
### Solution Brainstorm
For framework SDKs where we already collect build-time information about the available routes (e.g. #16686 or more broadly, our recent [parametrization efforts](https://linear.app/getsentry/project/parametrized-routes-everywhere-443af0345211)), this should be possible.
Things get more complicated for frameworks or projects that don't rely on file-based routing. For these, adding a file name attribute is likely out of scope.
We'll probably make use of the [`code.file.path` attribute](https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/#code-file-path) semantic attribute.
Contributor guide
Assessment
This issue has not been assessed yet.