Skip to content

Commit 5149fab

Browse files
authored
feat: Improve runtime metric dashboard templates (#2092)
## Summary This PR improves the OTel Runtime Metric dashboard templates - Python template has been added - The filter condition on each template has been converted to Lucene so that it works with JSON schema in addition to the map schema - The top row of tiles have been increased to height: 4 ### Screenshots or video <img width="1472" height="891" alt="Screenshot 2026-04-16 at 7 06 04 AM" src="https://github.com/user-attachments/assets/da3c408f-512e-4c7d-a634-26eef6c02002" /> <img width="1476" height="903" alt="Screenshot 2026-04-16 at 7 06 43 AM" src="https://github.com/user-attachments/assets/13e599f2-0e0c-4bf3-b256-361b5ca29ea4" /> <img width="1475" height="906" alt="Screenshot 2026-04-16 at 7 06 33 AM" src="https://github.com/user-attachments/assets/0666c8cf-b176-47c1-8e9e-91637913bccf" /> <img width="1474" height="897" alt="Screenshot 2026-04-16 at 7 06 23 AM" src="https://github.com/user-attachments/assets/91d96561-ec1d-4720-ba37-dcbed9492f47" /> <img width="1478" height="901" alt="Screenshot 2026-04-16 at 7 07 28 AM" src="https://github.com/user-attachments/assets/f2aeea86-300d-4e31-90b9-ee50e6f0821a" /> ### How to test locally or on Vercel These templates can be tested in the demo / preview environment. ### References - Linear Issue: Closes HDX-3873 - Related PRs:
1 parent d3a61f9 commit 5149fab

7 files changed

Lines changed: 390 additions & 57 deletions

File tree

.changeset/shaggy-tigers-tan.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@hyperdx/app": patch
3+
---
4+
5+
feat: Add Python Runtime Metrics dashboard template

packages/app/src/dashboardTemplates/dotnet-runtime.json

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"x": 0,
1010
"y": 0,
1111
"w": 6,
12-
"h": 3,
12+
"h": 4,
1313
"config": {
1414
"name": "GC Heap Size",
1515
"source": "Metrics",
@@ -37,7 +37,7 @@
3737
"x": 6,
3838
"y": 0,
3939
"w": 6,
40-
"h": 3,
40+
"h": 4,
4141
"config": {
4242
"name": "Exceptions",
4343
"source": "Metrics",
@@ -66,7 +66,7 @@
6666
"x": 12,
6767
"y": 0,
6868
"w": 6,
69-
"h": 3,
69+
"h": 4,
7070
"config": {
7171
"name": "GC Pause (s)",
7272
"source": "Metrics",
@@ -95,7 +95,7 @@
9595
"x": 18,
9696
"y": 0,
9797
"w": 6,
98-
"h": 3,
98+
"h": 4,
9999
"config": {
100100
"name": "ThreadPool Items",
101101
"source": "Metrics",
@@ -122,7 +122,7 @@
122122
{
123123
"id": "98e92c",
124124
"x": 0,
125-
"y": 3,
125+
"y": 4,
126126
"w": 12,
127127
"h": 7,
128128
"config": {
@@ -147,7 +147,7 @@
147147
{
148148
"id": "f6c44a",
149149
"x": 12,
150-
"y": 3,
150+
"y": 4,
151151
"w": 12,
152152
"h": 7,
153153
"config": {
@@ -176,7 +176,7 @@
176176
{
177177
"id": "e54085",
178178
"x": 0,
179-
"y": 10,
179+
"y": 11,
180180
"w": 12,
181181
"h": 7,
182182
"config": {
@@ -205,7 +205,7 @@
205205
{
206206
"id": "34979f",
207207
"x": 12,
208-
"y": 10,
208+
"y": 11,
209209
"w": 12,
210210
"h": 7,
211211
"config": {
@@ -234,7 +234,7 @@
234234
{
235235
"id": "6649b7",
236236
"x": 0,
237-
"y": 17,
237+
"y": 18,
238238
"w": 12,
239239
"h": 7,
240240
"config": {
@@ -258,7 +258,7 @@
258258
{
259259
"id": "3a8add",
260260
"x": 12,
261-
"y": 17,
261+
"y": 18,
262262
"w": 12,
263263
"h": 7,
264264
"config": {
@@ -286,7 +286,7 @@
286286
{
287287
"id": "fdfdc8",
288288
"x": 0,
289-
"y": 24,
289+
"y": 25,
290290
"w": 12,
291291
"h": 7,
292292
"config": {
@@ -310,7 +310,7 @@
310310
{
311311
"id": "ebe6dc",
312312
"x": 12,
313-
"y": 24,
313+
"y": 25,
314314
"w": 12,
315315
"h": 7,
316316
"config": {
@@ -348,8 +348,8 @@
348348
"expression": "ServiceName",
349349
"source": "Metrics",
350350
"sourceMetricType": "sum",
351-
"where": "ResourceAttributes['telemetry.sdk.language'] = 'dotnet'",
352-
"whereLanguage": "sql"
351+
"where": "ResourceAttributes.telemetry.sdk.language:\"dotnet\"",
352+
"whereLanguage": "lucene"
353353
}
354354
]
355-
}
355+
}

packages/app/src/dashboardTemplates/go-runtime.json

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"x": 0,
1010
"y": 0,
1111
"w": 6,
12-
"h": 3,
12+
"h": 4,
1313
"config": {
1414
"name": "Memory Used",
1515
"source": "Metrics",
@@ -37,7 +37,7 @@
3737
"x": 6,
3838
"y": 0,
3939
"w": 6,
40-
"h": 3,
40+
"h": 4,
4141
"config": {
4242
"name": "Alloc Rate",
4343
"source": "Metrics",
@@ -65,7 +65,7 @@
6565
"x": 12,
6666
"y": 0,
6767
"w": 6,
68-
"h": 3,
68+
"h": 4,
6969
"config": {
7070
"name": "GC Heap Target",
7171
"source": "Metrics",
@@ -93,7 +93,7 @@
9393
"x": 18,
9494
"y": 0,
9595
"w": 6,
96-
"h": 3,
96+
"h": 4,
9797
"config": {
9898
"name": "CPU Utilization",
9999
"source": "Metrics",
@@ -119,7 +119,7 @@
119119
{
120120
"id": "bbde66",
121121
"x": 0,
122-
"y": 3,
122+
"y": 4,
123123
"w": 12,
124124
"h": 7,
125125
"config": {
@@ -162,7 +162,7 @@
162162
{
163163
"id": "deb616",
164164
"x": 12,
165-
"y": 3,
165+
"y": 4,
166166
"w": 12,
167167
"h": 7,
168168
"config": {
@@ -190,7 +190,7 @@
190190
{
191191
"id": "432607",
192192
"x": 0,
193-
"y": 10,
193+
"y": 11,
194194
"w": 12,
195195
"h": 7,
196196
"config": {
@@ -218,7 +218,7 @@
218218
{
219219
"id": "08224d",
220220
"x": 12,
221-
"y": 10,
221+
"y": 11,
222222
"w": 12,
223223
"h": 7,
224224
"config": {
@@ -242,7 +242,7 @@
242242
{
243243
"id": "fae8d7",
244244
"x": 0,
245-
"y": 17,
245+
"y": 18,
246246
"w": 12,
247247
"h": 7,
248248
"config": {
@@ -271,7 +271,7 @@
271271
{
272272
"id": "545a68",
273273
"x": 12,
274-
"y": 17,
274+
"y": 18,
275275
"w": 12,
276276
"h": 7,
277277
"config": {
@@ -300,7 +300,7 @@
300300
{
301301
"id": "c0fc04",
302302
"x": 0,
303-
"y": 24,
303+
"y": 25,
304304
"w": 12,
305305
"h": 7,
306306
"config": {
@@ -338,8 +338,8 @@
338338
"expression": "ServiceName",
339339
"source": "Metrics",
340340
"sourceMetricType": "sum",
341-
"where": "ResourceAttributes['telemetry.sdk.language'] = 'go'",
342-
"whereLanguage": "sql"
341+
"where": "ResourceAttributes.telemetry.sdk.language:\"go\"",
342+
"whereLanguage": "lucene"
343343
}
344344
]
345-
}
345+
}

packages/app/src/dashboardTemplates/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import dotnetRuntime from './dotnet-runtime.json';
77
import goRuntime from './go-runtime.json';
88
import jvmRuntimeMetrics from './jvm-runtime-metrics.json';
99
import nodejsRuntime from './nodejs-runtime.json';
10+
import pythonRuntime from './python-runtime.json';
1011

1112
function parseTemplate(
1213
id: string,
@@ -26,6 +27,7 @@ const templates: Record<string, unknown> = {
2627
'go-runtime': goRuntime,
2728
'jvm-runtime-metrics': jvmRuntimeMetrics,
2829
'nodejs-runtime': nodejsRuntime,
30+
'python-runtime': pythonRuntime,
2931
};
3032

3133
export const DASHBOARD_TEMPLATES = Object.entries(templates)

packages/app/src/dashboardTemplates/jvm-runtime-metrics.json

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"x": 0,
1010
"y": 0,
1111
"w": 6,
12-
"h": 3,
12+
"h": 4,
1313
"config": {
1414
"name": "Heap Used",
1515
"source": "Metrics",
@@ -39,7 +39,7 @@
3939
"x": 6,
4040
"y": 0,
4141
"w": 6,
42-
"h": 3,
42+
"h": 4,
4343
"config": {
4444
"name": "CPU Utilization",
4545
"source": "Metrics",
@@ -67,7 +67,7 @@
6767
"x": 12,
6868
"y": 0,
6969
"w": 6,
70-
"h": 3,
70+
"h": 4,
7171
"config": {
7272
"name": "Thread Count",
7373
"source": "Metrics",
@@ -96,7 +96,7 @@
9696
"x": 18,
9797
"y": 0,
9898
"w": 6,
99-
"h": 3,
99+
"h": 4,
100100
"config": {
101101
"name": "CPU Count",
102102
"source": "Metrics",
@@ -123,7 +123,7 @@
123123
{
124124
"id": "6363a5",
125125
"x": 0,
126-
"y": 3,
126+
"y": 4,
127127
"w": 12,
128128
"h": 7,
129129
"config": {
@@ -172,7 +172,7 @@
172172
{
173173
"id": "5abddd",
174174
"x": 12,
175-
"y": 3,
175+
"y": 4,
176176
"w": 12,
177177
"h": 7,
178178
"config": {
@@ -203,7 +203,7 @@
203203
{
204204
"id": "c4abeb",
205205
"x": 0,
206-
"y": 10,
206+
"y": 11,
207207
"w": 12,
208208
"h": 7,
209209
"config": {
@@ -234,7 +234,7 @@
234234
{
235235
"id": "26aa01",
236236
"x": 12,
237-
"y": 10,
237+
"y": 11,
238238
"w": 12,
239239
"h": 7,
240240
"config": {
@@ -265,7 +265,7 @@
265265
{
266266
"id": "ea6e2d",
267267
"x": 0,
268-
"y": 17,
268+
"y": 18,
269269
"w": 12,
270270
"h": 7,
271271
"config": {
@@ -293,7 +293,7 @@
293293
{
294294
"id": "bf01ef",
295295
"x": 12,
296-
"y": 17,
296+
"y": 18,
297297
"w": 12,
298298
"h": 7,
299299
"config": {
@@ -317,7 +317,7 @@
317317
{
318318
"id": "f90a9e",
319319
"x": 0,
320-
"y": 24,
320+
"y": 25,
321321
"w": 12,
322322
"h": 7,
323323
"config": {
@@ -342,7 +342,7 @@
342342
{
343343
"id": "17f41d",
344344
"x": 12,
345-
"y": 24,
345+
"y": 25,
346346
"w": 12,
347347
"h": 7,
348348
"config": {
@@ -380,8 +380,8 @@
380380
"expression": "ServiceName",
381381
"source": "Metrics",
382382
"sourceMetricType": "sum",
383-
"where": "ResourceAttributes['telemetry.sdk.language'] = 'java'",
384-
"whereLanguage": "sql"
383+
"where": "ResourceAttributes.telemetry.sdk.language:\"java\"",
384+
"whereLanguage": "lucene"
385385
}
386386
]
387-
}
387+
}

0 commit comments

Comments
 (0)