getsentry / getsentry/sentry-javascript
INP metric: Too many spans with <unknown> target due to disappearing DOM elements
- Ngôn ngữ chính
- TypeScript
- Star
- 8.7k
- Fork
- 1.8k
- Merge trung bình
- 1 ngày 17 giờ
- Pull request đã merge (30 ngày)
- 523
Mô tả
### Problem Statement
We are seeing a large number of INP-related spans where the clicked element is reported as ``.
This happens when the user clicks UI elements that immediately disappear from the DOM right after the interaction — most commonly:
- closing buttons (e.g., closing a modal),
- clearing input with an “X” button,
- removing items from lists, cards, etc.
Because these elements are removed, by the time Sentry processes the INP event, `e.target` is already `null`, which results in spans showing `` instead of the actual clicked element.
This significantly reduces the usefulness and traceability of INP measurements.
### Solution Brainstorm
A potential fix is to capture and cache metadata about the clicked element at the moment of the click event — before the element disappears.
Example approach:
1. On click, immediately compute and store the result of `htmlTreeAsString(event.target)` (or an equivalent helper used for INP).
2. When constructing INP spans, use the cached `htmlTreeAsString` value instead of trying to read `event.target` again (which may already be null after DOM removal).
### Product Area
Unknown
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu từ phần xử lý tương tác INP và xây dựng span, sau đó lần theo nơi e.target và htmlTreeAsString được đọc. Xác minh cách một lần nhấp vào phần tử đã bị xóa khỏi DOM được biểu diễn, đồng thời xác định các test hiện có cho span INP hoặc các target biến mất. Hoàn tất khi các span đó giữ lại metadata của phần tử được nhấp thay vì hiển thị .
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, typescript
- Lĩnh vực
- frontend, observability-sre, performance
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100