From 8d0191d3f852bd20005e1319992b2fae9e517f4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20V=C3=A9roone?= Date: Sat, 27 Sep 2025 16:18:48 +0200 Subject: [PATCH 1/2] fix: use absolute results in eventLoopUtilization computation --- .../src/metrics/eventLoopUtilizationCollector.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/instrumentation-runtime-node/src/metrics/eventLoopUtilizationCollector.ts b/packages/instrumentation-runtime-node/src/metrics/eventLoopUtilizationCollector.ts index 97a5642708..71604f68f9 100644 --- a/packages/instrumentation-runtime-node/src/metrics/eventLoopUtilizationCollector.ts +++ b/packages/instrumentation-runtime-node/src/metrics/eventLoopUtilizationCollector.ts @@ -46,7 +46,7 @@ export class EventLoopUtilizationCollector extends BaseCollector { const elu = eventLoopUtilizationCollector(this._lastValue); observableResult.observe(elu.utilization); - this._lastValue = elu; + this._lastValue = eventLoopUtilizationCollector(); }); } From 96ec7a4eb32187407ccfeef382a5dae9e84b2ff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20V=C3=A9roone?= Date: Fri, 17 Oct 2025 09:50:04 +0200 Subject: [PATCH 2/2] Improve solution from review --- .../src/metrics/eventLoopUtilizationCollector.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/instrumentation-runtime-node/src/metrics/eventLoopUtilizationCollector.ts b/packages/instrumentation-runtime-node/src/metrics/eventLoopUtilizationCollector.ts index 71604f68f9..62f436c536 100644 --- a/packages/instrumentation-runtime-node/src/metrics/eventLoopUtilizationCollector.ts +++ b/packages/instrumentation-runtime-node/src/metrics/eventLoopUtilizationCollector.ts @@ -44,9 +44,10 @@ export class EventLoopUtilizationCollector extends BaseCollector { .addCallback(async observableResult => { if (!this._config.enabled) return; - const elu = eventLoopUtilizationCollector(this._lastValue); - observableResult.observe(elu.utilization); - this._lastValue = eventLoopUtilizationCollector(); + const currentELU = eventLoopUtilizationCollector(); + const deltaELU = eventLoopUtilizationCollector(currentELU, this._lastValue); + this._lastValue = currentELU; + observableResult.observe(deltaELU.utilization); }); }