[backport cloud/1.47] feat: add ComfyUI frontend version to Datadog RUM - #14237
Conversation
## Summary Expose `comfyui_frontend_version` on Datadog RUM events so dashboard traffic can be filtered by the frontend release. ## Changes - **What**: Set `comfyui_frontend_version` directly from `__COMFYUI_FRONTEND_VERSION__` before RUM initialization. - **Tests**: Cover the new context for classified traffic and frontend-context probe failure paths. ## Review Focus Confirm that the attribute name and build-time frontend version match the dashboard contract. Created by Codex --------- Co-authored-by: huang47 <157390+huang47@users.noreply.github.com>
📄 Knowledge reviewDosu skipped reviewing this PR because your organization has used its |
🎭 Playwright: ✅ 1709 passed, 0 failed · 5 flaky📊 Browser Reports
🎨 Storybook: ✅ Built — View Storybook📦 Bundle Size
⚡ Performance Report
Absolute values
Raw data{
"timestamp": "2026-07-29T01:38:25.346Z",
"gitSha": "ecde3eeb4fe22a8ea64998678e7d9acd4cd8e325",
"branch": "backport-14235-to-cloud-1.47",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2038.9640000000213,
"styleRecalcs": 9,
"styleRecalcDurationMs": 9.243,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 582.808,
"heapDeltaBytes": -926024,
"heapUsedBytes": 58798768,
"domNodes": 18,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 23.701,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-idle",
"durationMs": 2037.7209999999764,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.713000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 487.445,
"heapDeltaBytes": -603452,
"heapUsedBytes": 59098752,
"domNodes": 18,
"jsHeapTotalBytes": 24117248,
"scriptDurationMs": 20.782999999999998,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 2033.947999999981,
"styleRecalcs": 80,
"styleRecalcDurationMs": 49.97700000000001,
"layouts": 12,
"layoutDurationMs": 3.828,
"taskDurationMs": 1012.5999999999999,
"heapDeltaBytes": -5061268,
"heapUsedBytes": 54608916,
"domNodes": 64,
"jsHeapTotalBytes": 24117248,
"scriptDurationMs": 148.49400000000003,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1875.0779999999168,
"styleRecalcs": 74,
"styleRecalcDurationMs": 38.940000000000005,
"layouts": 12,
"layoutDurationMs": 3.3680000000000003,
"taskDurationMs": 887.123,
"heapDeltaBytes": -5877848,
"heapUsedBytes": 53881108,
"domNodes": 57,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 128.614,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1720.027000000016,
"styleRecalcs": 32,
"styleRecalcDurationMs": 17.578999999999997,
"layouts": 6,
"layoutDurationMs": 0.561,
"taskDurationMs": 406.825,
"heapDeltaBytes": 2828852,
"heapUsedBytes": 62512472,
"domNodes": 77,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 23.364,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1734.8230000000058,
"styleRecalcs": 32,
"styleRecalcDurationMs": 17.865000000000002,
"layouts": 6,
"layoutDurationMs": 0.6020000000000001,
"taskDurationMs": 425.39899999999994,
"heapDeltaBytes": 2875456,
"heapUsedBytes": 62536140,
"domNodes": 78,
"jsHeapTotalBytes": 24379392,
"scriptDurationMs": 24.927999999999997,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "dom-widget-clipping",
"durationMs": 594.3709999999669,
"styleRecalcs": 11,
"styleRecalcDurationMs": 7.303000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 392.813,
"heapDeltaBytes": 8409176,
"heapUsedBytes": 68130452,
"domNodes": 18,
"jsHeapTotalBytes": 19398656,
"scriptDurationMs": 62.059999999999995,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 597.7010000000291,
"styleRecalcs": 11,
"styleRecalcDurationMs": 7.822000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 391.03599999999994,
"heapDeltaBytes": 8428384,
"heapUsedBytes": 68155288,
"domNodes": 18,
"jsHeapTotalBytes": 19398656,
"scriptDurationMs": 59.235,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-idle",
"durationMs": 2054.70600000001,
"styleRecalcs": 11,
"styleRecalcDurationMs": 10.765,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 724.678,
"heapDeltaBytes": -6894000,
"heapUsedBytes": 67094980,
"domNodes": 22,
"jsHeapTotalBytes": 6696960,
"scriptDurationMs": 128.08599999999998,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2012.155000000007,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.468,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 714.9540000000001,
"heapDeltaBytes": -6290160,
"heapUsedBytes": 67823100,
"domNodes": 18,
"jsHeapTotalBytes": 6696960,
"scriptDurationMs": 128.521,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2180.1360000000045,
"styleRecalcs": 68,
"styleRecalcDurationMs": 17.501,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1425.0130000000001,
"heapDeltaBytes": 15471484,
"heapUsedBytes": 71549876,
"domNodes": 14,
"jsHeapTotalBytes": 8564736,
"scriptDurationMs": 561.589,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2161.8930000000773,
"styleRecalcs": 69,
"styleRecalcDurationMs": 18.576,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1309.5140000000001,
"heapDeltaBytes": 12161352,
"heapUsedBytes": 67878612,
"domNodes": 16,
"jsHeapTotalBytes": 5681152,
"scriptDurationMs": 463.187,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-zoom",
"durationMs": 3272.9570000000194,
"styleRecalcs": 64,
"styleRecalcDurationMs": 18.675,
"layouts": 60,
"layoutDurationMs": 7.646999999999999,
"taskDurationMs": 1541.008,
"heapDeltaBytes": 24118000,
"heapUsedBytes": 81249572,
"domNodes": 10,
"jsHeapTotalBytes": 6553600,
"scriptDurationMs": 586.725,
"eventListeners": 10,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3230.5529999999862,
"styleRecalcs": 64,
"styleRecalcDurationMs": 18.127999999999997,
"layouts": 60,
"layoutDurationMs": 7.839,
"taskDurationMs": 1563.79,
"heapDeltaBytes": 22129356,
"heapUsedBytes": 79630320,
"domNodes": 10,
"jsHeapTotalBytes": 6291456,
"scriptDurationMs": 565.415,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 1997.433000000001,
"styleRecalcs": 7,
"styleRecalcDurationMs": 7.224000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 688.606,
"heapDeltaBytes": 12600104,
"heapUsedBytes": 69581960,
"domNodes": 14,
"jsHeapTotalBytes": 3932160,
"scriptDurationMs": 123.14399999999999,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2006.5119999999297,
"styleRecalcs": 8,
"styleRecalcDurationMs": 8.105999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 680.0090000000001,
"heapDeltaBytes": 12839984,
"heapUsedBytes": 69711792,
"domNodes": 16,
"jsHeapTotalBytes": 4194304,
"scriptDurationMs": 122.123,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 614.4770000000221,
"styleRecalcs": 48,
"styleRecalcDurationMs": 12.429,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 410.84700000000004,
"heapDeltaBytes": 9033692,
"heapUsedBytes": 68835644,
"domNodes": 22,
"jsHeapTotalBytes": 19660800,
"scriptDurationMs": 124.85400000000001,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 610.2799999999888,
"styleRecalcs": 47,
"styleRecalcDurationMs": 11.658,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 416.31700000000006,
"heapDeltaBytes": 8990972,
"heapUsedBytes": 68777616,
"domNodes": 20,
"jsHeapTotalBytes": 19660800,
"scriptDurationMs": 123.76600000000002,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2006.5799999999854,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.482,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 482.95500000000004,
"heapDeltaBytes": -1345096,
"heapUsedBytes": 58366476,
"domNodes": 18,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 16.733999999999998,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 1998.181000000045,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.732000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 513.7669999999999,
"heapDeltaBytes": -1399780,
"heapUsedBytes": 58378972,
"domNodes": 20,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 19.725999999999996,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1707.8139999999848,
"styleRecalcs": 74,
"styleRecalcDurationMs": 38.768,
"layouts": 16,
"layoutDurationMs": 4.643,
"taskDurationMs": 828.6550000000001,
"heapDeltaBytes": -10103936,
"heapUsedBytes": 50059728,
"domNodes": 60,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 102.59100000000001,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1737.2510000000148,
"styleRecalcs": 74,
"styleRecalcDurationMs": 41.056,
"layouts": 16,
"layoutDurationMs": 4.713,
"taskDurationMs": 849.6360000000001,
"heapDeltaBytes": -9722716,
"heapUsedBytes": 50055824,
"domNodes": 61,
"jsHeapTotalBytes": 25165824,
"scriptDurationMs": 103.727,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-transition-enter",
"durationMs": 1433.5379999999986,
"styleRecalcs": 19,
"styleRecalcDurationMs": 34.759,
"layouts": 15,
"layoutDurationMs": 16.904,
"taskDurationMs": 1046.6740000000002,
"heapDeltaBytes": 4591464,
"heapUsedBytes": 81947720,
"domNodes": 13673,
"jsHeapTotalBytes": 17825792,
"scriptDurationMs": 41.807999999999986,
"eventListeners": 2533,
"totalBlockingTimeMs": 171,
"frameDurationMs": 16.666666666666696,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8299.503000000015,
"styleRecalcs": 251,
"styleRecalcDurationMs": 56.493,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4701.986,
"heapDeltaBytes": -4600464,
"heapUsedBytes": 69261036,
"domNodes": 18,
"jsHeapTotalBytes": 12640256,
"scriptDurationMs": 1484.942,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.80000000000109
},
{
"name": "viewport-pan-sweep",
"durationMs": 8281.334000000015,
"styleRecalcs": 251,
"styleRecalcDurationMs": 54.915000000000006,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4723.182,
"heapDeltaBytes": -4546620,
"heapUsedBytes": 69108968,
"domNodes": 18,
"jsHeapTotalBytes": 14213120,
"scriptDurationMs": 1488.92,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 17190.545999999984,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17149.701,
"heapDeltaBytes": -33009960,
"heapUsedBytes": 167000564,
"domNodes": -3342,
"jsHeapTotalBytes": 15699968,
"scriptDurationMs": 580.7150000000001,
"eventListeners": -16379,
"totalBlockingTimeMs": 1,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 17194.101000000046,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17172.327,
"heapDeltaBytes": -17729656,
"heapUsedBytes": 167944320,
"domNodes": -3342,
"jsHeapTotalBytes": 16486400,
"scriptDurationMs": 539.522,
"eventListeners": -16377,
"totalBlockingTimeMs": 0,
"frameDurationMs": 18.890000000000025,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 21577.88099999999,
"styleRecalcs": 151,
"styleRecalcDurationMs": 26.031000000000027,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 21533.032,
"heapDeltaBytes": -14050748,
"heapUsedBytes": 178999572,
"domNodes": -3313,
"jsHeapTotalBytes": 16400384,
"scriptDurationMs": 946.9509999999999,
"eventListeners": -16386,
"totalBlockingTimeMs": 459,
"frameDurationMs": 17.77333333333336,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 20627.08699999996,
"styleRecalcs": 140,
"styleRecalcDurationMs": 24.345000000000006,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 20600.78,
"heapDeltaBytes": -28261016,
"heapUsedBytes": 169578068,
"domNodes": -3342,
"jsHeapTotalBytes": 16486400,
"scriptDurationMs": 868.6299999999999,
"eventListeners": -16369,
"totalBlockingTimeMs": 178,
"frameDurationMs": 17.780000000000047,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "workflow-execution",
"durationMs": 449.1399999999999,
"styleRecalcs": 13,
"styleRecalcDurationMs": 19.025,
"layouts": 3,
"layoutDurationMs": 0.6709999999999999,
"taskDurationMs": 111.75400000000002,
"heapDeltaBytes": 5126088,
"heapUsedBytes": 63851852,
"domNodes": 130,
"jsHeapTotalBytes": 1572864,
"scriptDurationMs": 10.100999999999999,
"eventListeners": 65,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 455.0889999999299,
"styleRecalcs": 12,
"styleRecalcDurationMs": 18.021999999999995,
"layouts": 3,
"layoutDurationMs": 0.5120000000000001,
"taskDurationMs": 101.8,
"heapDeltaBytes": 4886456,
"heapUsedBytes": 63674456,
"domNodes": 117,
"jsHeapTotalBytes": 1310720,
"scriptDurationMs": 8.733,
"eventListeners": 67,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
}
]
} |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## cloud/1.47 #14237 +/- ##
=============================================
Coverage ? 67.43%
=============================================
Files ? 1602
Lines ? 82653
Branches ? 21824
=============================================
Hits ? 55737
Misses ? 26568
Partials ? 348
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Backport of #14235 to
cloud/1.47Automatically created by backport workflow.