Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .changeset/gpu-metrics-infra-panel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
'@hyperdx/app': minor
---

Show GPU utilization and GPU memory utilization charts in the log/span side
panel Infrastructure section when `hw.gpu.*` metrics (OTel hardware semconv)
exist for the correlated host/node. Multiple GPUs on a host render as separate
series grouped by `hw.id`, and utilization is split per GPU engine by
`hw.gpu.task` (general/encoder/decoder) so a node saturated on video encode is
still visible; a missing task is reported as `general`. The section is fully
hidden when no GPU metrics are present and partially rendered when only one
metric is available.

The Infrastructure tab now also treats a Kubernetes resource attribute that is
present but empty (for example `k8s.node.name: ""`) as absent. Such rows
previously surfaced an Infrastructure tab that could render nothing.

Fix GPU chart availability leaking across rows: switching the side panel to a
row on a different host briefly rendered the previous host's set of GPU
charts, because the availability query keeps the prior result readable while
the new one runs.
5 changes: 5 additions & 0 deletions packages/app/src/ChartUtils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,11 @@ export const K8S_MEM_NUMBER_FORMAT: NumberFormat = {
output: 'byte',
};

export const GPU_UTILIZATION_NUMBER_FORMAT: NumberFormat = {
output: 'percent',
mantissa: 1,
};

function inferValueColumns(
meta: Array<{ name: string; type: string }>,
excluded: Set<string>,
Expand Down
Loading
Loading