getsentry / getsentry/self-hosted
Dashboard Web Vitals widgets show "No Data" after upgrading self-hosted 25.4.0 -> 26.5.2 while Discover returns results
- Dominant language
- Shell
- Stars
- 9.6k
- Forks
- 2k
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 15
Description
### Self-Hosted Version
self-hosted 26.5.2
### CPU Architecture
X86_64
### Docker Version
Docker version 26.1.3, build b72abbb
### Docker Compose Version
Docker Compose version v2.36.0
### Machine Specification
- [x] My system meets the minimum system requirements of Sentry
### Installation Type
upgrading from self-hosted 25.4.0 to 26.5.2
### Steps to Reproduce
### Environment
* self-hosted 26.5.2
* Official docker-compose deployment
* Upgraded from self-hosted 25.4.0
### Steps to reproduce
1. Upgrade a self-hosted Sentry instance from 25.4.0 to 26.5.2.
2. Send browser performance transactions containing Web Vitals (LCP/FCP).
3. Verify that Discover returns data using:
```
project:
transaction.op:pageload
Fields:
- p75(measurements.lcp)
- p75(measurements.fcp)
- avg(measurements.lcp)
- avg(measurements.fcp)
```
4. Create a Dashboard widget with the same fields and filters.
5. Observe that the Dashboard widget displays **"No Data"**.
6. Click **"Open in Discover"** from the widget, and the same query immediately returns data.
### Additional observations
We verified the following:
* Transactions are successfully ingested.
* `transactions_local` contains thousands of recent pageload transactions.
* Transactions contain both `measurements.lcp` and `measurements.fcp`.
* Discover requests use:
```
dataset_label='transactions'
```
* Dashboard requests use:
```
dataset_label='metricsEnhanced'
```
Additionally, `sentry_perfstringindexer` contains
```
d:transactions/measurements.score.ratio.lcp@ratio
```
but does **not** contain
```
d:transactions/measurements.lcp@millisecond
```
This appears to cause Dashboard queries to return no data while Discover works correctly.
### Expected Result
Dashboard widgets should display the same Web Vitals metrics as Discover when querying the same project, filters, and fields.
Both Dashboard and Discover should return identical results for:
* p75(measurements.lcp)
* p75(measurements.fcp)
* avg(measurements.lcp)
* avg(measurements.fcp)
### Actual Result
Dashboard widgets always display **"No Data"**, even though the same query works correctly in Discover.
This also occurs for:
* Newly created Dashboard widgets
* Widgets saved directly from Discover
Relevant log output:
Dashboard:
```text
referrer='api.dashboards.widget.line-chart'
dataset_label='metricsEnhanced'
```
Discover:
```text
referrer='api.discover.default-chart'
dataset_label='transactions'
```
The ClickHouse `transactions_local` table contains recent transactions with both `measurements.lcp` and `measurements.fcp`, confirming that ingestion is working correctly.
### Event ID
_No response_
Contributor guide
Research direction
Start by comparing the Dashboard entry point `api.dashboards.widget.line-chart` with the Discover entry point `api.discover.default-chart`, focusing on their `dataset_label` values and Web Vitals field handling. Reproduce the issue with the listed LCP/FCP queries and inspect the ClickHouse `transactions_local` table and `sentry_perfstringindexer`; done means Dashboard widgets return the same metrics as Discover.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clickhouse, docker, docker-compose, shell
- Domain
- backend, data, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100