Skip to content

feat(dashboards): Create HeatMapWidgetVisualization component#114916

Draft
gggritso wants to merge 5 commits intomasterfrom
georgegritsouk/logs-762-create-heatmapwidgetvisualization-component
Draft

feat(dashboards): Create HeatMapWidgetVisualization component#114916
gggritso wants to merge 5 commits intomasterfrom
georgegritsouk/logs-762-create-heatmapwidgetvisualization-component

Conversation

@gggritso
Copy link
Copy Markdown
Member

@gggritso gggritso commented May 5, 2026

Before having Heat Map support in Explore, one must have a Heat Map component to put into Explore! This is that widget. This is an MVP, it doesn't even have any features aside from plotting that mostly works. What it does have is:

  • plotting! It totally plots
  • types that are aligned with the new heat map data endpoint that's coming soon
  • enough files to work with (a story, some fixtures, etc.)

e.g.,

Screenshot 2026-05-05 at 2 49 04 PM

This component follows a very similar structure to how the time series, and categorical visualization widgets work. They declare a Plottable interface that the visualization component can plot, and each plottable kind (in this case, just HeatMap) works against that interface. There's a decent chance that we'll support other heat map plottables if we want to show percentiles on the same chart.

This is working from @marthalyndon's generous #114616 which spiked this feature a while back. Thank you Martha!

I also had to update BaseChart because it was dropping its visualMap prop on the floor mysteriously!

The BaseChart component is extended with a visualMap prop passthrough since ECharts heat maps require a visual map for color mapping. The HeatMapPlottable interface is intentionally separate from the existing Plottable interface since heat maps have fundamentally different axes (X, Y, Z) compared to time series (X, Y).

Closes LOGS-762

gggritso and others added 3 commits May 5, 2026 16:41
This prop was passed in, but never actually given to ECharts, so it was
pointless!
Fix Zstep range calculation (was Zmin+Zmax, should be Zmax-Zmin),
remove duplicate PlottableTimeSeriesValueType from heatMap.tsx, and
remove unused LOADING_PLACEHOLDER export from settings.

Refs LOGS-762
Co-Authored-By: Claude <noreply@anthropic.com>
@linear-code
Copy link
Copy Markdown

linear-code Bot commented May 5, 2026

@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label May 5, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

📊 Type Coverage Diff

Metric Before After Delta
Coverage 93.40% 93.40% ±0%
Typed 134,841 134,870 🟢 +29
Untyped 9,532 9,533 🔴 +1
🔍 1 new type safety issue introduced

Non-null assertions (!) (1 new)

File Line Detail
static/app/views/dashboards/widgets/heatMapWidget/heatMapWidgetVisualization.tsx 43 plottables.find(plottable => plottable instanceof HeatMap)!

This is informational only and does not block the PR.

gggritso and others added 2 commits May 5, 2026 17:04
These files aren't consumed by any production entry point yet. Add a
temporary knip entry point exception until the widget is integrated
into Explore.

Refs LOGS-762
Co-Authored-By: Claude <noreply@anthropic.com>
HeatMapValueType is only used internally within types.tsx, so it
doesn't need to be exported. Fixes knip unused-export violation.

Refs LOGS-762
Co-Authored-By: Claude <noreply@anthropic.com>
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.

1 participant