Skip to content

Metrics explorer page design - #3348

Open
benjaminleonard wants to merge 40 commits into
oxql-pagefrom
oxql-page-design
Open

benjaminleonard wants to merge 40 commits into
oxql-pagefrom
oxql-page-design

Conversation

@benjaminleonard

Copy link
Copy Markdown
Contributor

WIP

@vercel

vercel Bot commented Aug 24, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
console Ready Ready Preview Oct 7, 2026 2:32am UTC

Request Review

@david-crespo
david-crespo marked this pull request as ready for review August 25, 2026 20:48
*
* Exported for tests; use {@link oxqlAutocomplete} in the editor.
*/
export const oxqlCompletionSource =

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

WOW lol

No point leaving it behind.
They're stable.
There is no such thing as "one representative query". There are three
distinct kinds of charts, to say nothing of layout!
Codemirror was putting it behind the active line, making it challenging
to see what text you selected (and impossible to tell what whitespace
you selected).
Comment thread app/pages/system/OxqlPage.tsx
This page is already tipped pretty far into "knowing everything about
backend implementation details", so I'm just grabbing an easy win here.
Safari has subpixel precision on bounding boxes, so we need slightly
more tolerance than exact matching for cursor<->placeholder comparisons.
"Within a pixel" seems fair enough to me.
@david-crespo

Copy link
Copy Markdown
Collaborator

🤖 says we could cut over 90% of the timeseries schemas file checked in for mock purposes and still have the tests pass. Schema autocomplete in the editor in the mock version would be incomplete, but that's about the only practical difference. I'm inclined to cut just because the giant file is giant but there's no real need to do so.

@david-crespo

Copy link
Copy Markdown
Collaborator

Couple thoughts here:

  • While I can live with metric name in sans font, it might look better in mono. The colon in particular disappears — so maybe instead of mono, what we should do is split on : and display it nicer somehow?
  • Badge looks cool but it's the only place I can think of where we display a UUID in caps. We could keep the badge treatment while still lower-casing the ID, maybe that's the easiest thing.
  • Looking at this chart, I don't know what the unit is. First one is presumably a count of RPM? Second I have no idea, maybe also a count. Third I would expect to be in some kind of time unit but million of what? These numbers are fake and maybe the real ones are less confusing,

Mock data

image image image

Real data from dogfood

image

@david-crespo

Copy link
Copy Markdown
Collaborator

Relevant to the unit question — it would make things a lot easier if the metrics responses included units, but it looks like there's quite a lot required to get that done, at least according to the plan here: oxidecomputer/omicron#6696

It's possible we could do something clever client-side, though it would be fragile. I am not above fetching the units from the TOML in omicron and keeping a map of them. One issue would be that if you do some kind of math in your query and combine units, we might not be able to easily figure out what the resulting unit should be.

@fakemonster

Copy link
Copy Markdown
Contributor

Looking at this chart, I don't know what the unit is.

Yeah... unfortunately this is intrinsic to oximeter at the moment. We could kind of... huck the schema TOML into console and pull out units that way (or, similarly, do that within omicron), but it's not in the DB schema at the moment.

Badge looks cool but it's the only place I can think of where we display a UUID in caps.

We do have a "looks like a badge but doesn't screw with the casing" component now. I agree it's odd but my main concern (that you can copy-paste it with the correct casing) is satisfied, so I'm personally neutral on it.

display it nicer somehow?

Was a bit of laziness on my part; I think if you're transforming the table name at all, you should format it. Which is relatively a pain given how many acronyms we got floating around in here. Mono might be a good middle ground then (though my understanding is that it hurts @benjaminleonard's feelings)

@david-crespo

Copy link
Copy Markdown
Collaborator

Example showing more aggressive UUID truncation. I felt like with truncating UUIDs to 24 chars, we were getting the visual noise of truncation without enough of the benefit in terms of space saved.

image

@david-crespo

Copy link
Copy Markdown
Collaborator

Yeehaw.

Screenshot 2026-10-06 at 9 31 34 PM Screenshot 2026-10-06 at 9 31 39 PM Screenshot 2026-10-06 at 9 31 11 PM Screenshot 2026-10-06 at 9 31 24 PM

This branch was successfully deployed

1 active deployment
Preview — 0da9bb5c Deployed Oct 7, 2026 by vercel[bot]
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.

3 participants