getsentry / getsentry/sentry-javascript

Add file path attribute to page-related spans

Open
#17,134 1 comment 0 reactions 0 assignees View on GitHub
Feature
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.