Skip to content

feat: Add dashboard template gallery#2010

Merged
kodiakhq[bot] merged 7 commits intomainfrom
drew/dashboard-template-gallery
Apr 1, 2026
Merged

feat: Add dashboard template gallery#2010
kodiakhq[bot] merged 7 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: a2ec799

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 Apr 1, 2026 5:28pm

Request Review

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 30, 2026

E2E Test Results

All tests passed • 126 passed • 3 skipped • 1081s

Status Count
✅ Passed 126
❌ Failed 0
⚠️ Flaky 2
⏭️ 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

✅ No critical issues found.

A few minor notes worth considering:

  • ⚠️ router.query.template can be string | string[] in Next.js — the as string | undefined cast (with eslint-disable) will silently pass an array to getDashboardTemplate, which then fails the lookup gracefully. Low risk, but could be made explicit with Array.isArray(v) ? v[0] : v.
  • ⚠️ description is optional in DashboardTemplateSchema but the unit test enforces it via expect(json.description).toBeTruthy(). These are inconsistent — either make description required in the schema or document the intentional split (schema allows omission for user-imported templates, tests enforce it for shipped ones).
  • ℹ️ getDashboardTemplate re-parses the JSON on every call rather than reusing the already-parsed DASHBOARD_TEMPLATES array — minor inefficiency, not a bug.

}

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.

wrn14897
wrn14897 previously approved these changes Apr 1, 2026
wrn14897
wrn14897 previously approved these changes Apr 1, 2026
@kodiakhq kodiakhq bot merged commit 518bda7 into main Apr 1, 2026
15 of 16 checks passed
@kodiakhq kodiakhq bot deleted the drew/dashboard-template-gallery branch April 1, 2026 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants