@justanalyticsapp/node 0.1.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/dist/client.d.ts +286 -0
- package/dist/client.js +681 -0
- package/dist/client.js.map +1 -0
- package/dist/context.d.ts +126 -0
- package/dist/context.js +170 -0
- package/dist/context.js.map +1 -0
- package/dist/errors.d.ts +135 -0
- package/dist/errors.js +180 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +301 -0
- package/dist/index.js +314 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/express.d.ts +77 -0
- package/dist/integrations/express.js +87 -0
- package/dist/integrations/express.js.map +1 -0
- package/dist/integrations/http.d.ts +129 -0
- package/dist/integrations/http.js +465 -0
- package/dist/integrations/http.js.map +1 -0
- package/dist/integrations/metrics.d.ts +110 -0
- package/dist/integrations/metrics.js +313 -0
- package/dist/integrations/metrics.js.map +1 -0
- package/dist/integrations/next.d.ts +252 -0
- package/dist/integrations/next.js +480 -0
- package/dist/integrations/next.js.map +1 -0
- package/dist/integrations/pg.d.ts +169 -0
- package/dist/integrations/pg.js +616 -0
- package/dist/integrations/pg.js.map +1 -0
- package/dist/integrations/pino.d.ts +52 -0
- package/dist/integrations/pino.js +153 -0
- package/dist/integrations/pino.js.map +1 -0
- package/dist/integrations/redis.d.ts +190 -0
- package/dist/integrations/redis.js +597 -0
- package/dist/integrations/redis.js.map +1 -0
- package/dist/integrations/winston.d.ts +48 -0
- package/dist/integrations/winston.js +99 -0
- package/dist/integrations/winston.js.map +1 -0
- package/dist/logger.d.ts +148 -0
- package/dist/logger.js +162 -0
- package/dist/logger.js.map +1 -0
- package/dist/span.d.ts +192 -0
- package/dist/span.js +197 -0
- package/dist/span.js.map +1 -0
- package/dist/transport.d.ts +246 -0
- package/dist/transport.js +654 -0
- package/dist/transport.js.map +1 -0
- package/dist/utils/headers.d.ts +60 -0
- package/dist/utils/headers.js +93 -0
- package/dist/utils/headers.js.map +1 -0
- package/dist/utils/id.d.ts +23 -0
- package/dist/utils/id.js +36 -0
- package/dist/utils/id.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/integrations/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file packages/node-sdk/src/integrations/metrics.ts
|
|
3
|
+
* @description MetricsIntegration - automatic infrastructure metrics collector for Node.js processes.
|
|
4
|
+
*
|
|
5
|
+
* Implements Story 048 - Infrastructure Metrics Collection
|
|
6
|
+
*
|
|
7
|
+
* Collected metrics:
|
|
8
|
+
* - cpu.user_percent, cpu.system_percent (CPU usage delta between samples)
|
|
9
|
+
* - memory.rss, memory.heap_used, memory.heap_total, memory.external (bytes)
|
|
10
|
+
* - event_loop.lag_ms (setTimeout(0) technique)
|
|
11
|
+
* - gc.minor_ms, gc.major_ms, gc.pause_total_ms (via PerformanceObserver)
|
|
12
|
+
*
|
|
13
|
+
* Design:
|
|
14
|
+
* - Fail-open: collection errors never crash the host process
|
|
15
|
+
* - All timers are unref()'d so they don't keep the process alive
|
|
16
|
+
* - GC stats are silently omitted if PerformanceObserver is not available
|
|
17
|
+
* - Uses only Node.js built-in modules (os, perf_hooks, process)
|
|
18
|
+
*/
|
|
19
|
+
import type { BatchTransport } from '../transport';
|
|
20
|
+
/**
|
|
21
|
+
* Configuration options for the MetricsIntegration.
|
|
22
|
+
*/
|
|
23
|
+
export interface MetricsIntegrationOptions {
|
|
24
|
+
/** Sampling interval in milliseconds (default: 15000, min: 5000, max: 300000) */
|
|
25
|
+
interval?: number;
|
|
26
|
+
/** Enable/disable auto-collection (default: true) */
|
|
27
|
+
enabled?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Serialized metric payload matching the metricDataPointSchema in POST /api/ingest/metrics.
|
|
31
|
+
*/
|
|
32
|
+
export interface MetricPayload {
|
|
33
|
+
metricName: string;
|
|
34
|
+
value: number;
|
|
35
|
+
serviceName: string;
|
|
36
|
+
timestamp: string;
|
|
37
|
+
tags: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* MetricsIntegration automatically collects infrastructure metrics from the
|
|
41
|
+
* Node.js process and enqueues them for batched transport.
|
|
42
|
+
*
|
|
43
|
+
* Collected metrics:
|
|
44
|
+
* - cpu.user_percent, cpu.system_percent (CPU usage delta)
|
|
45
|
+
* - memory.rss, memory.heap_used, memory.heap_total, memory.external (bytes)
|
|
46
|
+
* - event_loop.lag_ms (setTimeout(0) technique)
|
|
47
|
+
* - gc.minor_ms, gc.major_ms, gc.pause_total_ms (via PerformanceObserver)
|
|
48
|
+
*/
|
|
49
|
+
export declare class MetricsIntegration {
|
|
50
|
+
private readonly serviceName;
|
|
51
|
+
private readonly environment;
|
|
52
|
+
private readonly hostname;
|
|
53
|
+
private readonly transport;
|
|
54
|
+
private readonly debug;
|
|
55
|
+
private readonly intervalMs;
|
|
56
|
+
private timer;
|
|
57
|
+
private previousCpuUsage;
|
|
58
|
+
private previousSampleTime;
|
|
59
|
+
private lastEventLoopLag;
|
|
60
|
+
private gcObserver;
|
|
61
|
+
private gcMinorMs;
|
|
62
|
+
private gcMajorMs;
|
|
63
|
+
private gcTotalMs;
|
|
64
|
+
private gcAvailable;
|
|
65
|
+
constructor(serviceName: string, transport: BatchTransport, debug: boolean, environment?: string, options?: MetricsIntegrationOptions);
|
|
66
|
+
/**
|
|
67
|
+
* Start the periodic metrics collection timer.
|
|
68
|
+
* Sets up GC observation and stores initial CPU usage baseline.
|
|
69
|
+
*/
|
|
70
|
+
enable(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Stop the periodic collection timer and clean up resources.
|
|
73
|
+
*/
|
|
74
|
+
disable(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Collect all system metrics and enqueue them for transport.
|
|
77
|
+
* Wrapped in try/catch for fail-open safety.
|
|
78
|
+
*/
|
|
79
|
+
private collectMetrics;
|
|
80
|
+
/**
|
|
81
|
+
* Collect CPU user and system percentages via process.cpuUsage() delta.
|
|
82
|
+
*/
|
|
83
|
+
private collectCpuMetrics;
|
|
84
|
+
/**
|
|
85
|
+
* Collect memory metrics via process.memoryUsage().
|
|
86
|
+
*/
|
|
87
|
+
private collectMemoryMetrics;
|
|
88
|
+
/**
|
|
89
|
+
* Emit the last measured event loop lag value.
|
|
90
|
+
*/
|
|
91
|
+
private collectEventLoopLagMetric;
|
|
92
|
+
/**
|
|
93
|
+
* Measure event loop lag using setTimeout(0) technique.
|
|
94
|
+
* The lag value is stored and included in the next metric collection tick.
|
|
95
|
+
*/
|
|
96
|
+
private measureEventLoopLag;
|
|
97
|
+
/**
|
|
98
|
+
* Emit accumulated GC stats and reset counters.
|
|
99
|
+
*/
|
|
100
|
+
private collectGCMetrics;
|
|
101
|
+
/**
|
|
102
|
+
* Set up a PerformanceObserver to track GC events.
|
|
103
|
+
* Silently skips if not available in the current runtime.
|
|
104
|
+
*/
|
|
105
|
+
private setupGCObserver;
|
|
106
|
+
/**
|
|
107
|
+
* Helper to construct a MetricPayload and enqueue it in the transport.
|
|
108
|
+
*/
|
|
109
|
+
private enqueue;
|
|
110
|
+
}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file packages/node-sdk/src/integrations/metrics.ts
|
|
4
|
+
* @description MetricsIntegration - automatic infrastructure metrics collector for Node.js processes.
|
|
5
|
+
*
|
|
6
|
+
* Implements Story 048 - Infrastructure Metrics Collection
|
|
7
|
+
*
|
|
8
|
+
* Collected metrics:
|
|
9
|
+
* - cpu.user_percent, cpu.system_percent (CPU usage delta between samples)
|
|
10
|
+
* - memory.rss, memory.heap_used, memory.heap_total, memory.external (bytes)
|
|
11
|
+
* - event_loop.lag_ms (setTimeout(0) technique)
|
|
12
|
+
* - gc.minor_ms, gc.major_ms, gc.pause_total_ms (via PerformanceObserver)
|
|
13
|
+
*
|
|
14
|
+
* Design:
|
|
15
|
+
* - Fail-open: collection errors never crash the host process
|
|
16
|
+
* - All timers are unref()'d so they don't keep the process alive
|
|
17
|
+
* - GC stats are silently omitted if PerformanceObserver is not available
|
|
18
|
+
* - Uses only Node.js built-in modules (os, perf_hooks, process)
|
|
19
|
+
*/
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.MetricsIntegration = void 0;
|
|
25
|
+
const os_1 = __importDefault(require("os"));
|
|
26
|
+
const perf_hooks_1 = require("perf_hooks");
|
|
27
|
+
// ---------- Constants ----------
|
|
28
|
+
const MIN_INTERVAL_MS = 5000;
|
|
29
|
+
const MAX_INTERVAL_MS = 300000;
|
|
30
|
+
const DEFAULT_INTERVAL_MS = 15000;
|
|
31
|
+
// ---------- MetricsIntegration ----------
|
|
32
|
+
/**
|
|
33
|
+
* MetricsIntegration automatically collects infrastructure metrics from the
|
|
34
|
+
* Node.js process and enqueues them for batched transport.
|
|
35
|
+
*
|
|
36
|
+
* Collected metrics:
|
|
37
|
+
* - cpu.user_percent, cpu.system_percent (CPU usage delta)
|
|
38
|
+
* - memory.rss, memory.heap_used, memory.heap_total, memory.external (bytes)
|
|
39
|
+
* - event_loop.lag_ms (setTimeout(0) technique)
|
|
40
|
+
* - gc.minor_ms, gc.major_ms, gc.pause_total_ms (via PerformanceObserver)
|
|
41
|
+
*/
|
|
42
|
+
class MetricsIntegration {
|
|
43
|
+
constructor(serviceName, transport, debug, environment, options) {
|
|
44
|
+
this.timer = null;
|
|
45
|
+
// CPU delta tracking
|
|
46
|
+
this.previousCpuUsage = null;
|
|
47
|
+
this.previousSampleTime = 0;
|
|
48
|
+
// Event loop lag tracking
|
|
49
|
+
this.lastEventLoopLag = 0;
|
|
50
|
+
// GC stats tracking
|
|
51
|
+
this.gcObserver = null;
|
|
52
|
+
this.gcMinorMs = 0;
|
|
53
|
+
this.gcMajorMs = 0;
|
|
54
|
+
this.gcTotalMs = 0;
|
|
55
|
+
this.gcAvailable = false;
|
|
56
|
+
this.serviceName = serviceName;
|
|
57
|
+
this.transport = transport;
|
|
58
|
+
this.debug = debug;
|
|
59
|
+
this.environment = environment;
|
|
60
|
+
this.hostname = os_1.default.hostname();
|
|
61
|
+
// Clamp interval to [5000, 300000]
|
|
62
|
+
const rawInterval = options?.interval ?? DEFAULT_INTERVAL_MS;
|
|
63
|
+
this.intervalMs = Math.min(MAX_INTERVAL_MS, Math.max(MIN_INTERVAL_MS, rawInterval));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Start the periodic metrics collection timer.
|
|
67
|
+
* Sets up GC observation and stores initial CPU usage baseline.
|
|
68
|
+
*/
|
|
69
|
+
enable() {
|
|
70
|
+
try {
|
|
71
|
+
// Store initial CPU usage for delta calculation
|
|
72
|
+
if (typeof process.cpuUsage === 'function') {
|
|
73
|
+
this.previousCpuUsage = process.cpuUsage();
|
|
74
|
+
this.previousSampleTime = Date.now();
|
|
75
|
+
}
|
|
76
|
+
// Set up GC observation
|
|
77
|
+
this.setupGCObserver();
|
|
78
|
+
// Start periodic collection
|
|
79
|
+
this.timer = setInterval(() => {
|
|
80
|
+
this.collectMetrics();
|
|
81
|
+
}, this.intervalMs);
|
|
82
|
+
// unref() so the timer doesn't keep the Node.js process alive
|
|
83
|
+
if (this.timer && typeof this.timer.unref === 'function') {
|
|
84
|
+
this.timer.unref();
|
|
85
|
+
}
|
|
86
|
+
// Schedule initial event loop lag measurement
|
|
87
|
+
this.measureEventLoopLag();
|
|
88
|
+
if (this.debug) {
|
|
89
|
+
console.debug(`[JustAnalytics] MetricsIntegration enabled: interval=${this.intervalMs}ms, ` +
|
|
90
|
+
`gc=${this.gcAvailable ? 'available' : 'unavailable'}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
// Fail-open: if setup fails, the SDK continues without metrics
|
|
95
|
+
if (this.debug) {
|
|
96
|
+
console.debug('[JustAnalytics] MetricsIntegration enable() failed:', err);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Stop the periodic collection timer and clean up resources.
|
|
102
|
+
*/
|
|
103
|
+
disable() {
|
|
104
|
+
if (this.timer !== null) {
|
|
105
|
+
clearInterval(this.timer);
|
|
106
|
+
this.timer = null;
|
|
107
|
+
}
|
|
108
|
+
if (this.gcObserver) {
|
|
109
|
+
try {
|
|
110
|
+
this.gcObserver.disconnect();
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// Ignore disconnect errors
|
|
114
|
+
}
|
|
115
|
+
this.gcObserver = null;
|
|
116
|
+
}
|
|
117
|
+
this.previousCpuUsage = null;
|
|
118
|
+
this.gcMinorMs = 0;
|
|
119
|
+
this.gcMajorMs = 0;
|
|
120
|
+
this.gcTotalMs = 0;
|
|
121
|
+
if (this.debug) {
|
|
122
|
+
console.debug('[JustAnalytics] MetricsIntegration disabled.');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// ---------- Private Methods ----------
|
|
126
|
+
/**
|
|
127
|
+
* Collect all system metrics and enqueue them for transport.
|
|
128
|
+
* Wrapped in try/catch for fail-open safety.
|
|
129
|
+
*/
|
|
130
|
+
collectMetrics() {
|
|
131
|
+
try {
|
|
132
|
+
const timestamp = new Date().toISOString();
|
|
133
|
+
const baseTags = {
|
|
134
|
+
hostname: this.hostname,
|
|
135
|
+
...(this.environment ? { environment: this.environment } : {}),
|
|
136
|
+
};
|
|
137
|
+
// CPU metrics
|
|
138
|
+
this.collectCpuMetrics(timestamp, baseTags);
|
|
139
|
+
// Memory metrics
|
|
140
|
+
this.collectMemoryMetrics(timestamp, baseTags);
|
|
141
|
+
// Event loop lag
|
|
142
|
+
this.collectEventLoopLagMetric(timestamp, baseTags);
|
|
143
|
+
// GC metrics
|
|
144
|
+
this.collectGCMetrics(timestamp, baseTags);
|
|
145
|
+
// Schedule next event loop lag measurement
|
|
146
|
+
this.measureEventLoopLag();
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
if (this.debug) {
|
|
150
|
+
console.debug('[JustAnalytics] MetricsIntegration collectMetrics() error:', err);
|
|
151
|
+
}
|
|
152
|
+
// Fail-open: never throw
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Collect CPU user and system percentages via process.cpuUsage() delta.
|
|
157
|
+
*/
|
|
158
|
+
collectCpuMetrics(timestamp, baseTags) {
|
|
159
|
+
try {
|
|
160
|
+
if (typeof process.cpuUsage !== 'function')
|
|
161
|
+
return;
|
|
162
|
+
const currentCpuUsage = process.cpuUsage();
|
|
163
|
+
const currentTime = Date.now();
|
|
164
|
+
if (this.previousCpuUsage !== null && this.previousSampleTime > 0) {
|
|
165
|
+
const elapsedMs = currentTime - this.previousSampleTime;
|
|
166
|
+
if (elapsedMs > 0) {
|
|
167
|
+
const elapsedMicros = elapsedMs * 1000;
|
|
168
|
+
const userDelta = currentCpuUsage.user - this.previousCpuUsage.user;
|
|
169
|
+
const systemDelta = currentCpuUsage.system - this.previousCpuUsage.system;
|
|
170
|
+
const userPercent = Math.min(100, Math.max(0, (userDelta / elapsedMicros) * 100));
|
|
171
|
+
const systemPercent = Math.min(100, Math.max(0, (systemDelta / elapsedMicros) * 100));
|
|
172
|
+
this.enqueue('cpu.user_percent', userPercent, timestamp, baseTags);
|
|
173
|
+
this.enqueue('cpu.system_percent', systemPercent, timestamp, baseTags);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
this.previousCpuUsage = currentCpuUsage;
|
|
177
|
+
this.previousSampleTime = currentTime;
|
|
178
|
+
}
|
|
179
|
+
catch (err) {
|
|
180
|
+
if (this.debug) {
|
|
181
|
+
console.debug('[JustAnalytics] CPU metrics collection error:', err);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Collect memory metrics via process.memoryUsage().
|
|
187
|
+
*/
|
|
188
|
+
collectMemoryMetrics(timestamp, baseTags) {
|
|
189
|
+
try {
|
|
190
|
+
if (typeof process.memoryUsage !== 'function')
|
|
191
|
+
return;
|
|
192
|
+
const mem = process.memoryUsage();
|
|
193
|
+
this.enqueue('memory.rss', mem.rss, timestamp, baseTags);
|
|
194
|
+
this.enqueue('memory.heap_used', mem.heapUsed, timestamp, baseTags);
|
|
195
|
+
this.enqueue('memory.heap_total', mem.heapTotal, timestamp, baseTags);
|
|
196
|
+
this.enqueue('memory.external', mem.external, timestamp, baseTags);
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
if (this.debug) {
|
|
200
|
+
console.debug('[JustAnalytics] Memory metrics collection error:', err);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Emit the last measured event loop lag value.
|
|
206
|
+
*/
|
|
207
|
+
collectEventLoopLagMetric(timestamp, baseTags) {
|
|
208
|
+
try {
|
|
209
|
+
this.enqueue('event_loop.lag_ms', this.lastEventLoopLag, timestamp, baseTags);
|
|
210
|
+
}
|
|
211
|
+
catch (err) {
|
|
212
|
+
if (this.debug) {
|
|
213
|
+
console.debug('[JustAnalytics] Event loop lag metric error:', err);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Measure event loop lag using setTimeout(0) technique.
|
|
219
|
+
* The lag value is stored and included in the next metric collection tick.
|
|
220
|
+
*/
|
|
221
|
+
measureEventLoopLag() {
|
|
222
|
+
try {
|
|
223
|
+
const start = process.hrtime.bigint();
|
|
224
|
+
const t = setTimeout(() => {
|
|
225
|
+
try {
|
|
226
|
+
const elapsed = Number(process.hrtime.bigint() - start) / 1000000; // ns -> ms
|
|
227
|
+
this.lastEventLoopLag = Math.max(0, elapsed);
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
// Fail silently
|
|
231
|
+
}
|
|
232
|
+
}, 0);
|
|
233
|
+
// unref so it doesn't keep process alive
|
|
234
|
+
if (t && typeof t.unref === 'function') {
|
|
235
|
+
t.unref();
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
// Fail silently
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Emit accumulated GC stats and reset counters.
|
|
244
|
+
*/
|
|
245
|
+
collectGCMetrics(timestamp, baseTags) {
|
|
246
|
+
try {
|
|
247
|
+
if (!this.gcAvailable)
|
|
248
|
+
return;
|
|
249
|
+
this.enqueue('gc.minor_ms', this.gcMinorMs, timestamp, baseTags);
|
|
250
|
+
this.enqueue('gc.major_ms', this.gcMajorMs, timestamp, baseTags);
|
|
251
|
+
this.enqueue('gc.pause_total_ms', this.gcTotalMs, timestamp, baseTags);
|
|
252
|
+
// Reset accumulators for next interval
|
|
253
|
+
this.gcMinorMs = 0;
|
|
254
|
+
this.gcMajorMs = 0;
|
|
255
|
+
this.gcTotalMs = 0;
|
|
256
|
+
}
|
|
257
|
+
catch (err) {
|
|
258
|
+
if (this.debug) {
|
|
259
|
+
console.debug('[JustAnalytics] GC metrics collection error:', err);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Set up a PerformanceObserver to track GC events.
|
|
265
|
+
* Silently skips if not available in the current runtime.
|
|
266
|
+
*/
|
|
267
|
+
setupGCObserver() {
|
|
268
|
+
try {
|
|
269
|
+
const obs = new perf_hooks_1.PerformanceObserver((list) => {
|
|
270
|
+
try {
|
|
271
|
+
for (const entry of list.getEntries()) {
|
|
272
|
+
const durationMs = entry.duration;
|
|
273
|
+
this.gcTotalMs += durationMs;
|
|
274
|
+
// entry.detail.kind: 1 = minor (Scavenge), 2 = major (Mark-Sweep-Compact)
|
|
275
|
+
const kind = entry.detail?.kind
|
|
276
|
+
?? entry.kind;
|
|
277
|
+
if (kind === 1) {
|
|
278
|
+
this.gcMinorMs += durationMs;
|
|
279
|
+
}
|
|
280
|
+
else if (kind === 2) {
|
|
281
|
+
this.gcMajorMs += durationMs;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
// Fail silently on individual entry processing
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
obs.observe({ entryTypes: ['gc'] });
|
|
290
|
+
this.gcObserver = obs;
|
|
291
|
+
this.gcAvailable = true;
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
// GC observation not available -- silently skip
|
|
295
|
+
this.gcAvailable = false;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Helper to construct a MetricPayload and enqueue it in the transport.
|
|
300
|
+
*/
|
|
301
|
+
enqueue(metricName, value, timestamp, baseTags) {
|
|
302
|
+
const payload = {
|
|
303
|
+
metricName,
|
|
304
|
+
value,
|
|
305
|
+
serviceName: this.serviceName,
|
|
306
|
+
timestamp,
|
|
307
|
+
tags: { ...baseTags },
|
|
308
|
+
};
|
|
309
|
+
this.transport.enqueueMetric(payload);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
exports.MetricsIntegration = MetricsIntegration;
|
|
313
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/integrations/metrics.ts"],"names":[],"mappings":"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"}
|