Skip to content

Conversation

@edwardgou-sentry
Copy link
Contributor

@edwardgou-sentry edwardgou-sentry commented Dec 23, 2025

Adds samples tables for core webvitals to the web vitals prebuilt json

@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Dec 23, 2025
@edwardgou-sentry edwardgou-sentry marked this pull request as ready for review December 23, 2025 22:58
@edwardgou-sentry edwardgou-sentry requested a review from a team as a code owner December 23, 2025 22:58
Comment on lines +452 to +460
fields: [
'trace',
'lcp.element',
'measurements.lcp',
'profile.id',
'replay.id',
'measurements.score.ratio.lcp',
'timestamp',
],
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The new LCP, INP, and CLS sample table widgets query for profile.id, replay.id, and lcp.element from a SPANS dataset, but these fields are likely unavailable at the span level.
Severity: MEDIUM | Confidence: High

🔍 Detailed Analysis

The newly added LCP, INP, and CLS sample table widgets are configured to query the SPANS dataset for the fields profile.id, replay.id, and lcp.element. However, these fields are likely transaction-level identifiers or tags, not attributes available on individual spans. Since there are no other examples of table widgets querying these raw fields from the SPANS source, and these fields are not used in any other span queries in the codebase, it is highly probable that they are not queryable columns. This will likely cause the widgets to fail to render or display empty tables, as the underlying query will return no data for these columns.

💡 Suggested Fix

Verify if profile.id, replay.id, and lcp.element are available on the SPANS dataset. If not, either remove these columns from the widget definitions or change the data source. If these are transaction properties, the query might need to be against the TRANSACTIONS dataset instead of SPANS.

🤖 Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location:
static/app/views/dashboards/utils/prebuiltConfigs/webVitals/pageSummary.ts#L452-L460

Potential issue: The newly added LCP, INP, and CLS sample table widgets are configured
to query the `SPANS` dataset for the fields `profile.id`, `replay.id`, and
`lcp.element`. However, these fields are likely transaction-level identifiers or tags,
not attributes available on individual spans. Since there are no other examples of table
widgets querying these raw fields from the `SPANS` source, and these fields are not used
in any other span queries in the codebase, it is highly probable that they are not
queryable columns. This will likely cause the widgets to fail to render or display empty
tables, as the underlying query will return no data for these columns.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7891519

queries: [
{
name: '',
conditions: `has:measurements.lcp`,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sample tables use different filters than summary widgets

The new sample tables use simple has:measurements.* conditions while all other SPANS widgets in this dashboard use DEFAULT_QUERY_FILTER. The DEFAULT_QUERY_FILTER restricts to specific span.op values and excludes unparameterized transactions. This inconsistency means the samples could include data not reflected in the summary metrics (P75 values, scores), potentially confusing users when the samples don't match the aggregated numbers.

Additional Locations (2)

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants