iii-sdk 0.8.2 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -11
- package/dist/index.cjs +234 -105
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +182 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +182 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +234 -106
- package/dist/index.mjs.map +1 -1
- package/dist/state.cjs +1 -0
- package/dist/state.cjs.map +1 -1
- package/dist/state.d.cts +43 -1
- package/dist/state.d.cts.map +1 -1
- package/dist/state.d.mts +43 -1
- package/dist/state.d.mts.map +1 -1
- package/dist/state.mjs +1 -0
- package/dist/state.mjs.map +1 -1
- package/dist/stream-BAjVneSg.d.mts +176 -0
- package/dist/stream-BAjVneSg.d.mts.map +1 -0
- package/dist/stream-DUNsytJU.d.cts +176 -0
- package/dist/stream-DUNsytJU.d.cts.map +1 -0
- package/dist/stream.d.cts +1 -1
- package/dist/stream.d.mts +1 -1
- package/dist/telemetry.cjs +1 -1
- package/dist/telemetry.d.cts +10 -11
- package/dist/telemetry.d.cts.map +1 -1
- package/dist/telemetry.d.mts +10 -11
- package/dist/telemetry.d.mts.map +1 -1
- package/dist/telemetry.mjs +1 -1
- package/dist/{utils-coGqiBHT.mjs → utils-5jD8F3OE.mjs} +241 -212
- package/dist/utils-5jD8F3OE.mjs.map +1 -0
- package/dist/{utils-CMrMD5Ij.d.mts → utils-BRn3Iff5.d.mts} +586 -210
- package/dist/utils-BRn3Iff5.d.mts.map +1 -0
- package/dist/{utils-BaGgUfjl.d.cts → utils-D6RPYBhs.d.cts} +586 -210
- package/dist/utils-D6RPYBhs.d.cts.map +1 -0
- package/dist/{utils-BJTjoUdq.cjs → utils-bsZVduQi.cjs} +240 -211
- package/dist/utils-bsZVduQi.cjs.map +1 -0
- package/package.json +4 -2
- package/typedoc.json +8 -0
- package/vitest.config.ts +4 -4
- package/dist/stream-BEp3rjfm.d.cts +0 -97
- package/dist/stream-BEp3rjfm.d.cts.map +0 -1
- package/dist/stream-Bzpo5JNV.d.mts +0 -97
- package/dist/stream-Bzpo5JNV.d.mts.map +0 -1
- package/dist/utils-BJTjoUdq.cjs.map +0 -1
- package/dist/utils-BaGgUfjl.d.cts.map +0 -1
- package/dist/utils-CMrMD5Ij.d.mts.map +0 -1
- package/dist/utils-coGqiBHT.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-D6RPYBhs.d.cts","names":[],"sources":["../src/iii-types.ts","../src/channels.ts","../src/iii-constants.ts","../src/telemetry-system/types.ts","../src/telemetry-system/context.ts","../src/telemetry-system/index.ts","../src/triggers.ts","../src/types.ts","../src/utils.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const require_index = require('./index.cjs');
|
|
2
|
-
let __opentelemetry_api = require("@opentelemetry/api");
|
|
3
2
|
let ws = require("ws");
|
|
3
|
+
let __opentelemetry_api = require("@opentelemetry/api");
|
|
4
|
+
let node_perf_hooks = require("node:perf_hooks");
|
|
4
5
|
let __opentelemetry_resources = require("@opentelemetry/resources");
|
|
5
6
|
let __opentelemetry_semantic_conventions = require("@opentelemetry/semantic-conventions");
|
|
6
7
|
let node_crypto = require("node:crypto");
|
|
@@ -12,7 +13,6 @@ let __opentelemetry_instrumentation = require("@opentelemetry/instrumentation");
|
|
|
12
13
|
let __opentelemetry_sdk_logs = require("@opentelemetry/sdk-logs");
|
|
13
14
|
let __opentelemetry_api_logs = require("@opentelemetry/api-logs");
|
|
14
15
|
let __opentelemetry_otlp_transformer = require("@opentelemetry/otlp-transformer");
|
|
15
|
-
let node_perf_hooks = require("node:perf_hooks");
|
|
16
16
|
|
|
17
17
|
//#region src/iii-constants.ts
|
|
18
18
|
/**
|
|
@@ -22,6 +22,7 @@ let node_perf_hooks = require("node:perf_hooks");
|
|
|
22
22
|
const EngineFunctions = {
|
|
23
23
|
LIST_FUNCTIONS: "engine::functions::list",
|
|
24
24
|
LIST_WORKERS: "engine::workers::list",
|
|
25
|
+
LIST_TRIGGERS: "engine::triggers::list",
|
|
25
26
|
REGISTER_WORKER: "engine::workers::register"
|
|
26
27
|
};
|
|
27
28
|
/** Engine trigger types */
|
|
@@ -47,6 +48,213 @@ const DEFAULT_BRIDGE_RECONNECTION_CONFIG = {
|
|
|
47
48
|
/** Default invocation timeout in milliseconds */
|
|
48
49
|
const DEFAULT_INVOCATION_TIMEOUT_MS = 3e4;
|
|
49
50
|
|
|
51
|
+
//#endregion
|
|
52
|
+
//#region src/worker-metrics.ts
|
|
53
|
+
/**
|
|
54
|
+
* Worker metrics collection for the III Node SDK.
|
|
55
|
+
*
|
|
56
|
+
* Collects CPU, memory, and event loop metrics for worker health monitoring.
|
|
57
|
+
* Uses the Node.js built-in `monitorEventLoopDelay` API for accurate
|
|
58
|
+
* event loop lag measurements.
|
|
59
|
+
*/
|
|
60
|
+
/**
|
|
61
|
+
* Collects worker resource metrics including CPU, memory, and event loop lag.
|
|
62
|
+
*
|
|
63
|
+
* Uses the Node.js `monitorEventLoopDelay` API for high-precision event loop
|
|
64
|
+
* delay measurements instead of manual `setImmediate` timing.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const collector = new WorkerMetricsCollector()
|
|
69
|
+
*
|
|
70
|
+
* // Collect metrics periodically
|
|
71
|
+
* setInterval(() => {
|
|
72
|
+
* const metrics = collector.collect()
|
|
73
|
+
* console.log('CPU:', metrics.cpu_percent, '%')
|
|
74
|
+
* console.log('Event Loop Lag:', metrics.event_loop_lag_ms, 'ms')
|
|
75
|
+
* }, 5000)
|
|
76
|
+
*
|
|
77
|
+
* // Clean up when done
|
|
78
|
+
* collector.stopMonitoring()
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
var WorkerMetricsCollector = class {
|
|
82
|
+
/**
|
|
83
|
+
* Creates a new WorkerMetricsCollector instance.
|
|
84
|
+
*
|
|
85
|
+
* @param options - Configuration options
|
|
86
|
+
*/
|
|
87
|
+
constructor(options = {}) {
|
|
88
|
+
this.eventLoopHistogram = null;
|
|
89
|
+
this.startTime = Date.now();
|
|
90
|
+
this.lastCpuUsage = process.cpuUsage();
|
|
91
|
+
this.lastCpuTime = node_perf_hooks.performance.now();
|
|
92
|
+
this.startEventLoopMonitoring(options.eventLoopResolutionMs ?? 20);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Starts the event loop delay histogram monitoring.
|
|
96
|
+
*
|
|
97
|
+
* @param resolutionMs - Histogram resolution in milliseconds
|
|
98
|
+
*/
|
|
99
|
+
startEventLoopMonitoring(resolutionMs) {
|
|
100
|
+
this.eventLoopHistogram = (0, node_perf_hooks.monitorEventLoopDelay)({ resolution: Number.isFinite(resolutionMs) && resolutionMs > 0 ? Math.max(1, Math.floor(resolutionMs)) : 20 });
|
|
101
|
+
this.eventLoopHistogram.enable();
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Stops the event loop monitoring and releases resources.
|
|
105
|
+
* Should be called when the collector is no longer needed.
|
|
106
|
+
*/
|
|
107
|
+
stopMonitoring() {
|
|
108
|
+
if (this.eventLoopHistogram) {
|
|
109
|
+
this.eventLoopHistogram.disable();
|
|
110
|
+
this.eventLoopHistogram = null;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Collects current worker metrics.
|
|
115
|
+
*
|
|
116
|
+
* This method calculates CPU usage since the last collection,
|
|
117
|
+
* reads memory usage, and gets event loop delay statistics.
|
|
118
|
+
* The event loop histogram is reset after each collection for
|
|
119
|
+
* accurate per-interval measurements.
|
|
120
|
+
*
|
|
121
|
+
* @returns Current worker metrics snapshot
|
|
122
|
+
*/
|
|
123
|
+
collect() {
|
|
124
|
+
const memoryUsage = process.memoryUsage();
|
|
125
|
+
const cpuUsage = process.cpuUsage();
|
|
126
|
+
const now = node_perf_hooks.performance.now();
|
|
127
|
+
const cpuDelta = {
|
|
128
|
+
user: cpuUsage.user - this.lastCpuUsage.user,
|
|
129
|
+
system: cpuUsage.system - this.lastCpuUsage.system
|
|
130
|
+
};
|
|
131
|
+
const timeDelta = (now - this.lastCpuTime) * 1e3;
|
|
132
|
+
const cpuPercent = timeDelta > 0 ? (cpuDelta.user + cpuDelta.system) / timeDelta * 100 : 0;
|
|
133
|
+
this.lastCpuUsage = cpuUsage;
|
|
134
|
+
this.lastCpuTime = now;
|
|
135
|
+
let eventLoopLagMs = 0;
|
|
136
|
+
if (this.eventLoopHistogram) {
|
|
137
|
+
eventLoopLagMs = this.eventLoopHistogram.mean / 1e6;
|
|
138
|
+
this.eventLoopHistogram.reset();
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
memory_heap_used: memoryUsage.heapUsed,
|
|
142
|
+
memory_heap_total: memoryUsage.heapTotal,
|
|
143
|
+
memory_rss: memoryUsage.rss,
|
|
144
|
+
memory_external: memoryUsage.external,
|
|
145
|
+
cpu_user_micros: cpuUsage.user,
|
|
146
|
+
cpu_system_micros: cpuUsage.system,
|
|
147
|
+
cpu_percent: Math.min(cpuPercent, 100),
|
|
148
|
+
event_loop_lag_ms: eventLoopLagMs,
|
|
149
|
+
uptime_seconds: Math.floor((Date.now() - this.startTime) / 1e3),
|
|
150
|
+
timestamp_ms: Date.now(),
|
|
151
|
+
runtime: "node"
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
//#endregion
|
|
157
|
+
//#region src/otel-worker-gauges.ts
|
|
158
|
+
let registeredGauges = false;
|
|
159
|
+
let metricsCollector = null;
|
|
160
|
+
let registeredMeter = null;
|
|
161
|
+
let registeredBatchCallback = null;
|
|
162
|
+
let registeredObservables = [];
|
|
163
|
+
function registerWorkerGauges(meter$1, options) {
|
|
164
|
+
if (registeredGauges) return;
|
|
165
|
+
const { workerId, workerName } = options;
|
|
166
|
+
const baseAttributes = {
|
|
167
|
+
"worker.id": workerId,
|
|
168
|
+
...workerName && { "worker.name": workerName }
|
|
169
|
+
};
|
|
170
|
+
metricsCollector = new WorkerMetricsCollector();
|
|
171
|
+
const memoryHeapUsed = meter$1.createObservableGauge("iii.worker.memory.heap_used", {
|
|
172
|
+
description: "Worker heap memory used in bytes",
|
|
173
|
+
unit: "bytes"
|
|
174
|
+
});
|
|
175
|
+
const memoryHeapTotal = meter$1.createObservableGauge("iii.worker.memory.heap_total", {
|
|
176
|
+
description: "Worker total heap memory in bytes",
|
|
177
|
+
unit: "bytes"
|
|
178
|
+
});
|
|
179
|
+
const memoryRss = meter$1.createObservableGauge("iii.worker.memory.rss", {
|
|
180
|
+
description: "Worker resident set size in bytes",
|
|
181
|
+
unit: "bytes"
|
|
182
|
+
});
|
|
183
|
+
const memoryExternal = meter$1.createObservableGauge("iii.worker.memory.external", {
|
|
184
|
+
description: "Worker external memory in bytes",
|
|
185
|
+
unit: "bytes"
|
|
186
|
+
});
|
|
187
|
+
const cpuPercent = meter$1.createObservableGauge("iii.worker.cpu.percent", {
|
|
188
|
+
description: "Worker CPU usage percentage",
|
|
189
|
+
unit: "%"
|
|
190
|
+
});
|
|
191
|
+
const cpuUserMicros = meter$1.createObservableGauge("iii.worker.cpu.user_micros", {
|
|
192
|
+
description: "Worker CPU user time in microseconds",
|
|
193
|
+
unit: "us"
|
|
194
|
+
});
|
|
195
|
+
const cpuSystemMicros = meter$1.createObservableGauge("iii.worker.cpu.system_micros", {
|
|
196
|
+
description: "Worker CPU system time in microseconds",
|
|
197
|
+
unit: "us"
|
|
198
|
+
});
|
|
199
|
+
const eventLoopLag = meter$1.createObservableGauge("iii.worker.event_loop.lag_ms", {
|
|
200
|
+
description: "Worker event loop lag in milliseconds",
|
|
201
|
+
unit: "ms"
|
|
202
|
+
});
|
|
203
|
+
const uptimeSeconds = meter$1.createObservableGauge("iii.worker.uptime_seconds", {
|
|
204
|
+
description: "Worker uptime in seconds",
|
|
205
|
+
unit: "s"
|
|
206
|
+
});
|
|
207
|
+
const batchCallback = (observableResult) => {
|
|
208
|
+
if (!metricsCollector) return;
|
|
209
|
+
const metrics$1 = metricsCollector.collect();
|
|
210
|
+
if (metrics$1.memory_heap_used !== void 0) observableResult.observe(memoryHeapUsed, metrics$1.memory_heap_used, baseAttributes);
|
|
211
|
+
if (metrics$1.memory_heap_total !== void 0) observableResult.observe(memoryHeapTotal, metrics$1.memory_heap_total, baseAttributes);
|
|
212
|
+
if (metrics$1.memory_rss !== void 0) observableResult.observe(memoryRss, metrics$1.memory_rss, baseAttributes);
|
|
213
|
+
if (metrics$1.memory_external !== void 0) observableResult.observe(memoryExternal, metrics$1.memory_external, baseAttributes);
|
|
214
|
+
if (metrics$1.cpu_percent !== void 0) observableResult.observe(cpuPercent, metrics$1.cpu_percent, baseAttributes);
|
|
215
|
+
if (metrics$1.cpu_user_micros !== void 0) observableResult.observe(cpuUserMicros, metrics$1.cpu_user_micros, baseAttributes);
|
|
216
|
+
if (metrics$1.cpu_system_micros !== void 0) observableResult.observe(cpuSystemMicros, metrics$1.cpu_system_micros, baseAttributes);
|
|
217
|
+
if (metrics$1.event_loop_lag_ms !== void 0) observableResult.observe(eventLoopLag, metrics$1.event_loop_lag_ms, baseAttributes);
|
|
218
|
+
if (metrics$1.uptime_seconds !== void 0) observableResult.observe(uptimeSeconds, metrics$1.uptime_seconds, baseAttributes);
|
|
219
|
+
};
|
|
220
|
+
meter$1.addBatchObservableCallback(batchCallback, [
|
|
221
|
+
memoryHeapUsed,
|
|
222
|
+
memoryHeapTotal,
|
|
223
|
+
memoryRss,
|
|
224
|
+
memoryExternal,
|
|
225
|
+
cpuPercent,
|
|
226
|
+
cpuUserMicros,
|
|
227
|
+
cpuSystemMicros,
|
|
228
|
+
eventLoopLag,
|
|
229
|
+
uptimeSeconds
|
|
230
|
+
]);
|
|
231
|
+
registeredMeter = meter$1;
|
|
232
|
+
registeredBatchCallback = batchCallback;
|
|
233
|
+
registeredObservables = [
|
|
234
|
+
memoryHeapUsed,
|
|
235
|
+
memoryHeapTotal,
|
|
236
|
+
memoryRss,
|
|
237
|
+
memoryExternal,
|
|
238
|
+
cpuPercent,
|
|
239
|
+
cpuUserMicros,
|
|
240
|
+
cpuSystemMicros,
|
|
241
|
+
eventLoopLag,
|
|
242
|
+
uptimeSeconds
|
|
243
|
+
];
|
|
244
|
+
registeredGauges = true;
|
|
245
|
+
}
|
|
246
|
+
function stopWorkerGauges() {
|
|
247
|
+
if (registeredMeter && registeredBatchCallback) registeredMeter.removeBatchObservableCallback(registeredBatchCallback, registeredObservables);
|
|
248
|
+
if (metricsCollector) {
|
|
249
|
+
metricsCollector.stopMonitoring();
|
|
250
|
+
metricsCollector = null;
|
|
251
|
+
}
|
|
252
|
+
registeredMeter = null;
|
|
253
|
+
registeredBatchCallback = null;
|
|
254
|
+
registeredObservables = [];
|
|
255
|
+
registeredGauges = false;
|
|
256
|
+
}
|
|
257
|
+
|
|
50
258
|
//#endregion
|
|
51
259
|
//#region src/telemetry-system/types.ts
|
|
52
260
|
const ATTR_SERVICE_VERSION = "service.version";
|
|
@@ -705,7 +913,7 @@ function initOtel(config = {}) {
|
|
|
705
913
|
const serviceVersion = config.serviceVersion ?? process.env.SERVICE_VERSION ?? DEFAULT_OTEL_CONFIG.serviceVersion;
|
|
706
914
|
const serviceNamespace = config.serviceNamespace ?? process.env.SERVICE_NAMESPACE;
|
|
707
915
|
const serviceInstanceId = config.serviceInstanceId ?? process.env.SERVICE_INSTANCE_ID ?? (0, node_crypto.randomUUID)();
|
|
708
|
-
const engineWsUrl = config.engineWsUrl ?? process.env.
|
|
916
|
+
const engineWsUrl = config.engineWsUrl ?? process.env.III_URL ?? DEFAULT_OTEL_CONFIG.engineWsUrl;
|
|
709
917
|
const resourceAttributes = {
|
|
710
918
|
[__opentelemetry_semantic_conventions.ATTR_SERVICE_NAME]: serviceName,
|
|
711
919
|
[ATTR_SERVICE_VERSION]: serviceVersion,
|
|
@@ -849,213 +1057,6 @@ async function withSpan(name, options, fn) {
|
|
|
849
1057
|
});
|
|
850
1058
|
}
|
|
851
1059
|
|
|
852
|
-
//#endregion
|
|
853
|
-
//#region src/worker-metrics.ts
|
|
854
|
-
/**
|
|
855
|
-
* Worker metrics collection for the III Node SDK.
|
|
856
|
-
*
|
|
857
|
-
* Collects CPU, memory, and event loop metrics for worker health monitoring.
|
|
858
|
-
* Uses the Node.js built-in `monitorEventLoopDelay` API for accurate
|
|
859
|
-
* event loop lag measurements.
|
|
860
|
-
*/
|
|
861
|
-
/**
|
|
862
|
-
* Collects worker resource metrics including CPU, memory, and event loop lag.
|
|
863
|
-
*
|
|
864
|
-
* Uses the Node.js `monitorEventLoopDelay` API for high-precision event loop
|
|
865
|
-
* delay measurements instead of manual `setImmediate` timing.
|
|
866
|
-
*
|
|
867
|
-
* @example
|
|
868
|
-
* ```typescript
|
|
869
|
-
* const collector = new WorkerMetricsCollector()
|
|
870
|
-
*
|
|
871
|
-
* // Collect metrics periodically
|
|
872
|
-
* setInterval(() => {
|
|
873
|
-
* const metrics = collector.collect()
|
|
874
|
-
* console.log('CPU:', metrics.cpu_percent, '%')
|
|
875
|
-
* console.log('Event Loop Lag:', metrics.event_loop_lag_ms, 'ms')
|
|
876
|
-
* }, 5000)
|
|
877
|
-
*
|
|
878
|
-
* // Clean up when done
|
|
879
|
-
* collector.stopMonitoring()
|
|
880
|
-
* ```
|
|
881
|
-
*/
|
|
882
|
-
var WorkerMetricsCollector = class {
|
|
883
|
-
/**
|
|
884
|
-
* Creates a new WorkerMetricsCollector instance.
|
|
885
|
-
*
|
|
886
|
-
* @param options - Configuration options
|
|
887
|
-
*/
|
|
888
|
-
constructor(options = {}) {
|
|
889
|
-
this.eventLoopHistogram = null;
|
|
890
|
-
this.startTime = Date.now();
|
|
891
|
-
this.lastCpuUsage = process.cpuUsage();
|
|
892
|
-
this.lastCpuTime = node_perf_hooks.performance.now();
|
|
893
|
-
this.startEventLoopMonitoring(options.eventLoopResolutionMs ?? 20);
|
|
894
|
-
}
|
|
895
|
-
/**
|
|
896
|
-
* Starts the event loop delay histogram monitoring.
|
|
897
|
-
*
|
|
898
|
-
* @param resolutionMs - Histogram resolution in milliseconds
|
|
899
|
-
*/
|
|
900
|
-
startEventLoopMonitoring(resolutionMs) {
|
|
901
|
-
this.eventLoopHistogram = (0, node_perf_hooks.monitorEventLoopDelay)({ resolution: Number.isFinite(resolutionMs) && resolutionMs > 0 ? Math.max(1, Math.floor(resolutionMs)) : 20 });
|
|
902
|
-
this.eventLoopHistogram.enable();
|
|
903
|
-
}
|
|
904
|
-
/**
|
|
905
|
-
* Stops the event loop monitoring and releases resources.
|
|
906
|
-
* Should be called when the collector is no longer needed.
|
|
907
|
-
*/
|
|
908
|
-
stopMonitoring() {
|
|
909
|
-
if (this.eventLoopHistogram) {
|
|
910
|
-
this.eventLoopHistogram.disable();
|
|
911
|
-
this.eventLoopHistogram = null;
|
|
912
|
-
}
|
|
913
|
-
}
|
|
914
|
-
/**
|
|
915
|
-
* Collects current worker metrics.
|
|
916
|
-
*
|
|
917
|
-
* This method calculates CPU usage since the last collection,
|
|
918
|
-
* reads memory usage, and gets event loop delay statistics.
|
|
919
|
-
* The event loop histogram is reset after each collection for
|
|
920
|
-
* accurate per-interval measurements.
|
|
921
|
-
*
|
|
922
|
-
* @returns Current worker metrics snapshot
|
|
923
|
-
*/
|
|
924
|
-
collect() {
|
|
925
|
-
const memoryUsage = process.memoryUsage();
|
|
926
|
-
const cpuUsage = process.cpuUsage();
|
|
927
|
-
const now = node_perf_hooks.performance.now();
|
|
928
|
-
const cpuDelta = {
|
|
929
|
-
user: cpuUsage.user - this.lastCpuUsage.user,
|
|
930
|
-
system: cpuUsage.system - this.lastCpuUsage.system
|
|
931
|
-
};
|
|
932
|
-
const timeDelta = (now - this.lastCpuTime) * 1e3;
|
|
933
|
-
const cpuPercent = timeDelta > 0 ? (cpuDelta.user + cpuDelta.system) / timeDelta * 100 : 0;
|
|
934
|
-
this.lastCpuUsage = cpuUsage;
|
|
935
|
-
this.lastCpuTime = now;
|
|
936
|
-
let eventLoopLagMs = 0;
|
|
937
|
-
if (this.eventLoopHistogram) {
|
|
938
|
-
eventLoopLagMs = this.eventLoopHistogram.mean / 1e6;
|
|
939
|
-
this.eventLoopHistogram.reset();
|
|
940
|
-
}
|
|
941
|
-
return {
|
|
942
|
-
memory_heap_used: memoryUsage.heapUsed,
|
|
943
|
-
memory_heap_total: memoryUsage.heapTotal,
|
|
944
|
-
memory_rss: memoryUsage.rss,
|
|
945
|
-
memory_external: memoryUsage.external,
|
|
946
|
-
cpu_user_micros: cpuUsage.user,
|
|
947
|
-
cpu_system_micros: cpuUsage.system,
|
|
948
|
-
cpu_percent: Math.min(cpuPercent, 100),
|
|
949
|
-
event_loop_lag_ms: eventLoopLagMs,
|
|
950
|
-
uptime_seconds: Math.floor((Date.now() - this.startTime) / 1e3),
|
|
951
|
-
timestamp_ms: Date.now(),
|
|
952
|
-
runtime: "node"
|
|
953
|
-
};
|
|
954
|
-
}
|
|
955
|
-
};
|
|
956
|
-
|
|
957
|
-
//#endregion
|
|
958
|
-
//#region src/otel-worker-gauges.ts
|
|
959
|
-
let registeredGauges = false;
|
|
960
|
-
let metricsCollector = null;
|
|
961
|
-
let registeredMeter = null;
|
|
962
|
-
let registeredBatchCallback = null;
|
|
963
|
-
let registeredObservables = [];
|
|
964
|
-
function registerWorkerGauges(meter$1, options) {
|
|
965
|
-
if (registeredGauges) return;
|
|
966
|
-
const { workerId, workerName } = options;
|
|
967
|
-
const baseAttributes = {
|
|
968
|
-
"worker.id": workerId,
|
|
969
|
-
...workerName && { "worker.name": workerName }
|
|
970
|
-
};
|
|
971
|
-
metricsCollector = new WorkerMetricsCollector();
|
|
972
|
-
const memoryHeapUsed = meter$1.createObservableGauge("iii.worker.memory.heap_used", {
|
|
973
|
-
description: "Worker heap memory used in bytes",
|
|
974
|
-
unit: "bytes"
|
|
975
|
-
});
|
|
976
|
-
const memoryHeapTotal = meter$1.createObservableGauge("iii.worker.memory.heap_total", {
|
|
977
|
-
description: "Worker total heap memory in bytes",
|
|
978
|
-
unit: "bytes"
|
|
979
|
-
});
|
|
980
|
-
const memoryRss = meter$1.createObservableGauge("iii.worker.memory.rss", {
|
|
981
|
-
description: "Worker resident set size in bytes",
|
|
982
|
-
unit: "bytes"
|
|
983
|
-
});
|
|
984
|
-
const memoryExternal = meter$1.createObservableGauge("iii.worker.memory.external", {
|
|
985
|
-
description: "Worker external memory in bytes",
|
|
986
|
-
unit: "bytes"
|
|
987
|
-
});
|
|
988
|
-
const cpuPercent = meter$1.createObservableGauge("iii.worker.cpu.percent", {
|
|
989
|
-
description: "Worker CPU usage percentage",
|
|
990
|
-
unit: "%"
|
|
991
|
-
});
|
|
992
|
-
const cpuUserMicros = meter$1.createObservableGauge("iii.worker.cpu.user_micros", {
|
|
993
|
-
description: "Worker CPU user time in microseconds",
|
|
994
|
-
unit: "us"
|
|
995
|
-
});
|
|
996
|
-
const cpuSystemMicros = meter$1.createObservableGauge("iii.worker.cpu.system_micros", {
|
|
997
|
-
description: "Worker CPU system time in microseconds",
|
|
998
|
-
unit: "us"
|
|
999
|
-
});
|
|
1000
|
-
const eventLoopLag = meter$1.createObservableGauge("iii.worker.event_loop.lag_ms", {
|
|
1001
|
-
description: "Worker event loop lag in milliseconds",
|
|
1002
|
-
unit: "ms"
|
|
1003
|
-
});
|
|
1004
|
-
const uptimeSeconds = meter$1.createObservableGauge("iii.worker.uptime_seconds", {
|
|
1005
|
-
description: "Worker uptime in seconds",
|
|
1006
|
-
unit: "s"
|
|
1007
|
-
});
|
|
1008
|
-
const batchCallback = (observableResult) => {
|
|
1009
|
-
if (!metricsCollector) return;
|
|
1010
|
-
const metrics$1 = metricsCollector.collect();
|
|
1011
|
-
if (metrics$1.memory_heap_used !== void 0) observableResult.observe(memoryHeapUsed, metrics$1.memory_heap_used, baseAttributes);
|
|
1012
|
-
if (metrics$1.memory_heap_total !== void 0) observableResult.observe(memoryHeapTotal, metrics$1.memory_heap_total, baseAttributes);
|
|
1013
|
-
if (metrics$1.memory_rss !== void 0) observableResult.observe(memoryRss, metrics$1.memory_rss, baseAttributes);
|
|
1014
|
-
if (metrics$1.memory_external !== void 0) observableResult.observe(memoryExternal, metrics$1.memory_external, baseAttributes);
|
|
1015
|
-
if (metrics$1.cpu_percent !== void 0) observableResult.observe(cpuPercent, metrics$1.cpu_percent, baseAttributes);
|
|
1016
|
-
if (metrics$1.cpu_user_micros !== void 0) observableResult.observe(cpuUserMicros, metrics$1.cpu_user_micros, baseAttributes);
|
|
1017
|
-
if (metrics$1.cpu_system_micros !== void 0) observableResult.observe(cpuSystemMicros, metrics$1.cpu_system_micros, baseAttributes);
|
|
1018
|
-
if (metrics$1.event_loop_lag_ms !== void 0) observableResult.observe(eventLoopLag, metrics$1.event_loop_lag_ms, baseAttributes);
|
|
1019
|
-
if (metrics$1.uptime_seconds !== void 0) observableResult.observe(uptimeSeconds, metrics$1.uptime_seconds, baseAttributes);
|
|
1020
|
-
};
|
|
1021
|
-
meter$1.addBatchObservableCallback(batchCallback, [
|
|
1022
|
-
memoryHeapUsed,
|
|
1023
|
-
memoryHeapTotal,
|
|
1024
|
-
memoryRss,
|
|
1025
|
-
memoryExternal,
|
|
1026
|
-
cpuPercent,
|
|
1027
|
-
cpuUserMicros,
|
|
1028
|
-
cpuSystemMicros,
|
|
1029
|
-
eventLoopLag,
|
|
1030
|
-
uptimeSeconds
|
|
1031
|
-
]);
|
|
1032
|
-
registeredMeter = meter$1;
|
|
1033
|
-
registeredBatchCallback = batchCallback;
|
|
1034
|
-
registeredObservables = [
|
|
1035
|
-
memoryHeapUsed,
|
|
1036
|
-
memoryHeapTotal,
|
|
1037
|
-
memoryRss,
|
|
1038
|
-
memoryExternal,
|
|
1039
|
-
cpuPercent,
|
|
1040
|
-
cpuUserMicros,
|
|
1041
|
-
cpuSystemMicros,
|
|
1042
|
-
eventLoopLag,
|
|
1043
|
-
uptimeSeconds
|
|
1044
|
-
];
|
|
1045
|
-
registeredGauges = true;
|
|
1046
|
-
}
|
|
1047
|
-
function stopWorkerGauges() {
|
|
1048
|
-
if (registeredMeter && registeredBatchCallback) registeredMeter.removeBatchObservableCallback(registeredBatchCallback, registeredObservables);
|
|
1049
|
-
if (metricsCollector) {
|
|
1050
|
-
metricsCollector.stopMonitoring();
|
|
1051
|
-
metricsCollector = null;
|
|
1052
|
-
}
|
|
1053
|
-
registeredMeter = null;
|
|
1054
|
-
registeredBatchCallback = null;
|
|
1055
|
-
registeredObservables = [];
|
|
1056
|
-
registeredGauges = false;
|
|
1057
|
-
}
|
|
1058
|
-
|
|
1059
1060
|
//#endregion
|
|
1060
1061
|
//#region src/utils.ts
|
|
1061
1062
|
/**
|
|
@@ -1077,6 +1078,28 @@ function safeStringify(value) {
|
|
|
1077
1078
|
return "[unserializable]";
|
|
1078
1079
|
}
|
|
1079
1080
|
}
|
|
1081
|
+
/**
|
|
1082
|
+
* Helper that wraps an HTTP-style handler (with separate `req`/`res` arguments)
|
|
1083
|
+
* into the function handler format expected by the SDK.
|
|
1084
|
+
*
|
|
1085
|
+
* @param callback - Async handler receiving an {@link HttpRequest} and {@link HttpResponse}.
|
|
1086
|
+
* @returns A function handler compatible with {@link ISdk.registerFunction}.
|
|
1087
|
+
*
|
|
1088
|
+
* @example
|
|
1089
|
+
* ```typescript
|
|
1090
|
+
* import { http } from 'iii-sdk'
|
|
1091
|
+
*
|
|
1092
|
+
* iii.registerFunction(
|
|
1093
|
+
* { id: 'my-api' },
|
|
1094
|
+
* http(async (req, res) => {
|
|
1095
|
+
* res.status(200)
|
|
1096
|
+
* res.headers({ 'content-type': 'application/json' })
|
|
1097
|
+
* res.stream.end(JSON.stringify({ hello: 'world' }))
|
|
1098
|
+
* res.close()
|
|
1099
|
+
* }),
|
|
1100
|
+
* )
|
|
1101
|
+
* ```
|
|
1102
|
+
*/
|
|
1080
1103
|
const http = (callback) => {
|
|
1081
1104
|
return async (req) => {
|
|
1082
1105
|
const { response, ...request } = req;
|
|
@@ -1094,6 +1117,12 @@ const http = (callback) => {
|
|
|
1094
1117
|
});
|
|
1095
1118
|
};
|
|
1096
1119
|
};
|
|
1120
|
+
/**
|
|
1121
|
+
* Type guard that checks if a value is a {@link StreamChannelRef}.
|
|
1122
|
+
*
|
|
1123
|
+
* @param value - Value to check.
|
|
1124
|
+
* @returns `true` if the value is a valid `StreamChannelRef`.
|
|
1125
|
+
*/
|
|
1097
1126
|
const isChannelRef = (value) => {
|
|
1098
1127
|
if (typeof value !== "object" || value === null) return false;
|
|
1099
1128
|
const maybe = value;
|
|
@@ -1269,4 +1298,4 @@ Object.defineProperty(exports, 'withSpan', {
|
|
|
1269
1298
|
return withSpan;
|
|
1270
1299
|
}
|
|
1271
1300
|
});
|
|
1272
|
-
//# sourceMappingURL=utils-
|
|
1301
|
+
//# sourceMappingURL=utils-bsZVduQi.cjs.map
|