Skip to content

feat: Add dashboard template gallery#2010

Open
pulpdrew wants to merge 2 commits intomainfrom
drew/dashboard-template-gallery
Open

feat: Add dashboard template gallery#2010
pulpdrew wants to merge 2 commits intomainfrom
drew/dashboard-template-gallery

Conversation

@pulpdrew
Copy link
Copy Markdown
Contributor

@pulpdrew pulpdrew commented Mar 30, 2026

Summary

This PR adds a gallery of importable dashboard templates to the dashboards page. The existing Dashboard import functionality is modified to support importing dashboard templates which are included in the app source code bundle.

Screenshots or video

Screen.Recording.2026-03-30.at.8.52.12.AM.mov

How to test locally or on Vercel

This can be tested as shown above in the preview environment.

References

  • Linear Issue: Closes HDX-3661 Closes HDX-3814
  • Related PRs:

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 30, 2026

🦋 Changeset detected

Latest commit: d7a8f18

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@hyperdx/common-utils Patch
@hyperdx/app Patch
@hyperdx/api Patch
@hyperdx/otel-collector Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 30, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hyperdx-oss Ready Ready Preview, Comment Mar 31, 2026 8:01pm

Request Review

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 30, 2026

Knip - Unused Code Analysis

⚪ No changes detected (1 issues on both main and PR)

What is this?

Knip finds unused files, dependencies, and exports in your codebase.
This comment compares the PR branch against main to detect regressions.

Run yarn knip locally to see full details.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 30, 2026

E2E Test Results

All tests passed • 119 passed • 3 skipped • 1017s

Status Count
✅ Passed 119
❌ Failed 0
⚠️ Flaky 1
⏭️ Skipped 3

Tests ran across 4 shards in parallel.

View full report →

@pulpdrew pulpdrew force-pushed the drew/dashboard-template-gallery branch from 3a450cd to 0e8fee1 Compare March 30, 2026 13:05
@pulpdrew pulpdrew force-pushed the drew/dashboard-template-gallery branch from 0e8fee1 to 72fc51e Compare March 30, 2026 16:58
@pulpdrew pulpdrew marked this pull request as ready for review March 30, 2026 16:59
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 30, 2026

PR Review

feat: Add dashboard template gallery — Clean implementation overall, tests validate all templates against the Zod schema, and error handling for invalid template IDs is present.

  • ⚠️ Changeset marks this as patch but it's a new user-facing feature → Change both entries in .changeset/dull-grapes-whisper.md to minor per semver conventions

✅ Everything else looks good — Zod schema validation on template load, proper undefined returns for invalid IDs with UI error handling, tests covering all templates, and E2E coverage for the import flow.

}

type FilterCheckboxProps = {
columnName: string;
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Changes to this file are intended to fix flaky E2E tests caused by duplicate filter inputs (when the same label/value is present under multiple filter columns)

).toHaveLength(0);
});

it('does not validate valueExpression for metric sources', () => {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixes bug: Form submission error when submitting a metric query without first setting a value expression via a non-metric source

@pulpdrew pulpdrew requested review from a team and wrn14897 and removed request for a team March 30, 2026 18:39
@@ -0,0 +1,367 @@
{
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Have we verified that these dashboard templates work as expected? One concern I have is the semantic conventions, since they tend to change over time.

Another thing is that we probably want to list the supported collector version range and I wonder if we want to introduce a 'Collector' tag for things like OTel or Vector, etc

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Have we verified that these dashboard templates work as expected?

@alex-fedotyev created them, and I have verified that they display the metrics produced by simple java/go/python/node/dotnet applications running locally with OTEL.

One concern I have is the semantic conventions, since they tend to change over time.

That's a good point. I can add the required semantic spec version in each description.

Since these are imported as saved dashboards (and are not hardcoded presets), if/when the semantic conventions change, users will likely have to update the impacted dashboard tiles themselves.

Another thing is that we probably want to list the supported collector version range

These metrics are collected by OTel language SDKs - would they depend on the collector version?

I wonder if we want to introduce a 'Collector' tag for things like OTel or Vector, etc

That's a good idea, I could tag these as "OTEL Runtime Metrics" instead of just "Runtime Metrics"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I believe otel sdks follow semantic versioning (maybe that’s the version we should follow). Let's get this out and we can adjust templates time to time.

@@ -0,0 +1,54 @@
import {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I wonder if we could host a remote template gallery and open it up for contributions 🤔

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yep, that is future work

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants