@aztec/telemetry-client 0.86.0-starknet.1 → 0.87.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/dest/lmdb_metrics.d.ts +2 -2
- package/dest/lmdb_metrics.d.ts.map +1 -1
- package/dest/metrics.d.ts +4 -0
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +4 -0
- package/dest/{event_loop_monitor.d.ts → nodejs_metrics_monitor.d.ts} +5 -2
- package/dest/nodejs_metrics_monitor.d.ts.map +1 -0
- package/dest/{event_loop_monitor.js → nodejs_metrics_monitor.js} +39 -3
- package/dest/noop.d.ts +1 -1
- package/dest/noop.d.ts.map +1 -1
- package/dest/otel.d.ts +2 -2
- package/dest/otel.d.ts.map +1 -1
- package/dest/otel.js +5 -5
- package/dest/otel_filter_metric_exporter.d.ts.map +1 -1
- package/dest/telemetry.js +1 -1
- package/dest/vendor/otel-pino-stream.d.ts +0 -1
- package/dest/vendor/otel-pino-stream.d.ts.map +1 -1
- package/dest/vendor/otel-pino-stream.js +1 -1
- package/dest/wrappers/fetch.d.ts +1 -1
- package/dest/wrappers/fetch.d.ts.map +1 -1
- package/dest/wrappers/fetch.js +7 -5
- package/package.json +5 -5
- package/src/bench.ts +5 -5
- package/src/lmdb_metrics.ts +5 -1
- package/src/metrics.ts +5 -0
- package/src/{event_loop_monitor.ts → nodejs_metrics_monitor.ts} +40 -1
- package/src/noop.ts +1 -1
- package/src/otel.ts +5 -5
- package/src/otel_filter_metric_exporter.ts +4 -1
- package/src/telemetry.ts +1 -1
- package/src/vendor/otel-pino-stream.ts +0 -3
- package/src/wrappers/fetch.ts +24 -31
- package/dest/event_loop_monitor.d.ts.map +0 -1
package/dest/lmdb_metrics.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Meter } from './telemetry.js';
|
|
1
|
+
import { type AttributesType, type Meter } from './telemetry.js';
|
|
2
2
|
export type LmdbStatsCallback = () => Promise<{
|
|
3
3
|
mappingSize: number;
|
|
4
4
|
physicalFileSize: number;
|
|
@@ -12,7 +12,7 @@ export declare class LmdbMetrics {
|
|
|
12
12
|
private dbPhysicalFileSize;
|
|
13
13
|
private dbUsedSize;
|
|
14
14
|
private dbNumItems;
|
|
15
|
-
constructor(meter: Meter, attributes?:
|
|
15
|
+
constructor(meter: Meter, attributes?: AttributesType | undefined, getStats?: LmdbStatsCallback | undefined);
|
|
16
16
|
private recordDBMetrics;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=lmdb_metrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lmdb_metrics.d.ts","sourceRoot":"","sources":["../src/lmdb_metrics.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"lmdb_metrics.d.ts","sourceRoot":"","sources":["../src/lmdb_metrics.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,KAAK,EAGX,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,qBAAa,WAAW;IAQpB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC;IARnB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAkB;gBAGlC,KAAK,EAAE,KAAK,EACJ,UAAU,CAAC,EAAE,cAAc,YAAA,EAC3B,QAAQ,CAAC,EAAE,iBAAiB,YAAA;IA8BtC,OAAO,CAAC,eAAe,CASrB;CACH"}
|
package/dest/metrics.d.ts
CHANGED
|
@@ -151,4 +151,8 @@ export declare const NODEJS_EVENT_LOOP_DELAY_P90 = "nodejs.eventloop.delay.p90";
|
|
|
151
151
|
export declare const NODEJS_EVENT_LOOP_DELAY_P99 = "nodejs.eventloop.delay.p99";
|
|
152
152
|
export declare const NODEJS_EVENT_LOOP_UTILIZATION = "nodejs.eventloop.utilization";
|
|
153
153
|
export declare const NODEJS_EVENT_LOOP_TIME = "nodejs.eventloop.time";
|
|
154
|
+
export declare const NODEJS_MEMORY_HEAP_USAGE = "nodejs.memory.v8_heap.usage";
|
|
155
|
+
export declare const NODEJS_MEMORY_HEAP_TOTAL = "nodejs.memory.v8_heap.total";
|
|
156
|
+
export declare const NODEJS_MEMORY_NATIVE_USAGE = "nodejs.memory.native.usage";
|
|
157
|
+
export declare const NODEJS_MEMORY_BUFFER_USAGE = "nodejs.memory.array_buffer.usage";
|
|
154
158
|
//# sourceMappingURL=metrics.d.ts.map
|
package/dest/metrics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|
package/dest/metrics.js
CHANGED
|
@@ -149,3 +149,7 @@ export const NODEJS_EVENT_LOOP_DELAY_P90 = 'nodejs.eventloop.delay.p90';
|
|
|
149
149
|
export const NODEJS_EVENT_LOOP_DELAY_P99 = 'nodejs.eventloop.delay.p99';
|
|
150
150
|
export const NODEJS_EVENT_LOOP_UTILIZATION = 'nodejs.eventloop.utilization';
|
|
151
151
|
export const NODEJS_EVENT_LOOP_TIME = 'nodejs.eventloop.time';
|
|
152
|
+
export const NODEJS_MEMORY_HEAP_USAGE = 'nodejs.memory.v8_heap.usage';
|
|
153
|
+
export const NODEJS_MEMORY_HEAP_TOTAL = 'nodejs.memory.v8_heap.total';
|
|
154
|
+
export const NODEJS_MEMORY_NATIVE_USAGE = 'nodejs.memory.native.usage';
|
|
155
|
+
export const NODEJS_MEMORY_BUFFER_USAGE = 'nodejs.memory.array_buffer.usage';
|
|
@@ -2,9 +2,10 @@ import { type Meter } from './telemetry.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Detector for custom Aztec attributes
|
|
4
4
|
*/
|
|
5
|
-
export declare class
|
|
5
|
+
export declare class NodejsMetricsMonitor {
|
|
6
6
|
private meter;
|
|
7
7
|
private eventLoopDelayGauges;
|
|
8
|
+
private memoryGauges;
|
|
8
9
|
private eventLoopUilization;
|
|
9
10
|
private eventLoopTime;
|
|
10
11
|
private started;
|
|
@@ -14,5 +15,7 @@ export declare class EventLoopMonitor {
|
|
|
14
15
|
start(): void;
|
|
15
16
|
stop(): void;
|
|
16
17
|
private measure;
|
|
18
|
+
private measureMemoryUsage;
|
|
19
|
+
private measureEventLoopDelay;
|
|
17
20
|
}
|
|
18
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=nodejs_metrics_monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodejs_metrics_monitor.d.ts","sourceRoot":"","sources":["../src/nodejs_metrics_monitor.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,KAAK,EAIX,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,qBAAa,oBAAoB;IAuBnB,OAAO,CAAC,KAAK;IAtBzB,OAAO,CAAC,oBAAoB,CAQ1B;IAIF,OAAO,CAAC,YAAY,CAAoE;IAExF,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,cAAc,CAAoB;gBAEtB,KAAK,EAAE,KAAK;IAmDhC,KAAK,IAAI,IAAI;IAcb,IAAI,IAAI,IAAI;IAcZ,OAAO,CAAC,OAAO,CAGb;IAEF,OAAO,CAAC,kBAAkB,CAOxB;IAEF,OAAO,CAAC,qBAAqB,CAyB3B;CACH"}
|
|
@@ -4,9 +4,12 @@ import * as Metrics from './metrics.js';
|
|
|
4
4
|
import { ValueType } from './telemetry.js';
|
|
5
5
|
/**
|
|
6
6
|
* Detector for custom Aztec attributes
|
|
7
|
-
*/ export class
|
|
7
|
+
*/ export class NodejsMetricsMonitor {
|
|
8
8
|
meter;
|
|
9
9
|
eventLoopDelayGauges;
|
|
10
|
+
// skip `rss` because that's already tracked by @opentelemetry/host-metrics
|
|
11
|
+
// description of each field here https://nodejs.org/api/process.html#processmemoryusage
|
|
12
|
+
memoryGauges;
|
|
10
13
|
eventLoopUilization;
|
|
11
14
|
eventLoopTime;
|
|
12
15
|
started;
|
|
@@ -16,6 +19,17 @@ import { ValueType } from './telemetry.js';
|
|
|
16
19
|
this.meter = meter;
|
|
17
20
|
this.started = false;
|
|
18
21
|
this.measure = (obs)=>{
|
|
22
|
+
this.measureMemoryUsage(obs);
|
|
23
|
+
this.measureEventLoopDelay(obs);
|
|
24
|
+
};
|
|
25
|
+
this.measureMemoryUsage = (observer)=>{
|
|
26
|
+
const mem = process.memoryUsage();
|
|
27
|
+
observer.observe(this.memoryGauges.heapUsed, mem.heapUsed);
|
|
28
|
+
observer.observe(this.memoryGauges.heapTotal, mem.heapTotal);
|
|
29
|
+
observer.observe(this.memoryGauges.arrayBuffers, mem.arrayBuffers);
|
|
30
|
+
observer.observe(this.memoryGauges.external, mem.external);
|
|
31
|
+
};
|
|
32
|
+
this.measureEventLoopDelay = (obs)=>{
|
|
19
33
|
const newELU = performance.eventLoopUtilization();
|
|
20
34
|
const delta = performance.eventLoopUtilization(newELU, this.lastELU);
|
|
21
35
|
this.lastELU = newELU;
|
|
@@ -65,6 +79,24 @@ import { ValueType } from './telemetry.js';
|
|
|
65
79
|
description: 'How much time the event loop has spent in a given state'
|
|
66
80
|
});
|
|
67
81
|
this.eventLoopDelay = monitorEventLoopDelay();
|
|
82
|
+
this.memoryGauges = {
|
|
83
|
+
heapUsed: meter.createObservableGauge(Metrics.NODEJS_MEMORY_HEAP_USAGE, {
|
|
84
|
+
unit: 'By',
|
|
85
|
+
description: 'Memory used by the V8 heap'
|
|
86
|
+
}),
|
|
87
|
+
heapTotal: meter.createObservableGauge(Metrics.NODEJS_MEMORY_HEAP_TOTAL, {
|
|
88
|
+
unit: 'By',
|
|
89
|
+
description: 'The max size the V8 heap can grow to'
|
|
90
|
+
}),
|
|
91
|
+
arrayBuffers: meter.createObservableGauge(Metrics.NODEJS_MEMORY_BUFFER_USAGE, {
|
|
92
|
+
unit: 'By',
|
|
93
|
+
description: 'Memory allocated for buffers (includes native memory used)'
|
|
94
|
+
}),
|
|
95
|
+
external: meter.createObservableGauge(Metrics.NODEJS_MEMORY_NATIVE_USAGE, {
|
|
96
|
+
unit: 'By',
|
|
97
|
+
description: 'Memory allocated for native C++ objects'
|
|
98
|
+
})
|
|
99
|
+
};
|
|
68
100
|
}
|
|
69
101
|
start() {
|
|
70
102
|
if (this.started) {
|
|
@@ -74,7 +106,8 @@ import { ValueType } from './telemetry.js';
|
|
|
74
106
|
this.eventLoopDelay.enable();
|
|
75
107
|
this.meter.addBatchObservableCallback(this.measure, [
|
|
76
108
|
this.eventLoopUilization,
|
|
77
|
-
...Object.values(this.eventLoopDelayGauges)
|
|
109
|
+
...Object.values(this.eventLoopDelayGauges),
|
|
110
|
+
...Object.values(this.memoryGauges)
|
|
78
111
|
]);
|
|
79
112
|
}
|
|
80
113
|
stop() {
|
|
@@ -83,11 +116,14 @@ import { ValueType } from './telemetry.js';
|
|
|
83
116
|
}
|
|
84
117
|
this.meter.removeBatchObservableCallback(this.measure, [
|
|
85
118
|
this.eventLoopUilization,
|
|
86
|
-
...Object.values(this.eventLoopDelayGauges)
|
|
119
|
+
...Object.values(this.eventLoopDelayGauges),
|
|
120
|
+
...Object.values(this.memoryGauges)
|
|
87
121
|
]);
|
|
88
122
|
this.eventLoopDelay.disable();
|
|
89
123
|
this.eventLoopDelay.reset();
|
|
90
124
|
this.lastELU = undefined;
|
|
91
125
|
}
|
|
92
126
|
measure;
|
|
127
|
+
measureMemoryUsage;
|
|
128
|
+
measureEventLoopDelay;
|
|
93
129
|
}
|
package/dest/noop.d.ts
CHANGED
|
@@ -9,6 +9,6 @@ export declare class NoopTelemetryClient implements TelemetryClient {
|
|
|
9
9
|
}
|
|
10
10
|
export declare class NoopTracer implements Tracer {
|
|
11
11
|
startSpan(): Span;
|
|
12
|
-
startActiveSpan<F extends (...args: any[]) => any>(_name: string, ...args:
|
|
12
|
+
startActiveSpan<F extends (...args: any[]) => any>(_name: string, ...args: unknown[]): ReturnType<F>;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=noop.d.ts.map
|
package/dest/noop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noop.d.ts","sourceRoot":"","sources":["../src/noop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAoB,KAAK,MAAM,EAAmB,MAAM,oBAAoB,CAAC;AAE3G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,IAAI,KAAK;IAIjB,SAAS,IAAI,MAAM;IAInB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,SAAS;CAGV;AAKD,qBAAa,UAAW,YAAW,MAAM;IACvC,SAAS,IAAI,IAAI;IAIjB,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"noop.d.ts","sourceRoot":"","sources":["../src/noop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAoB,KAAK,MAAM,EAAmB,MAAM,oBAAoB,CAAC;AAE3G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,IAAI,KAAK;IAIjB,SAAS,IAAI,MAAM;IAInB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,SAAS;CAGV;AAKD,qBAAa,UAAW,YAAW,MAAM;IACvC,SAAS,IAAI,IAAI;IAIjB,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;CAKrG"}
|
package/dest/otel.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type { IResource } from '@opentelemetry/resources';
|
|
|
5
5
|
import type { LoggerProvider } from '@opentelemetry/sdk-logs';
|
|
6
6
|
import { MeterProvider, type PeriodicExportingMetricReaderOptions } from '@opentelemetry/sdk-metrics';
|
|
7
7
|
import type { TelemetryClientConfig } from './config.js';
|
|
8
|
-
import {
|
|
8
|
+
import { NodejsMetricsMonitor } from './nodejs_metrics_monitor.js';
|
|
9
9
|
import type { TelemetryClient } from './telemetry.js';
|
|
10
10
|
export type OpenTelemetryClientFactory = (resource: IResource, log: Logger) => OpenTelemetryClient;
|
|
11
11
|
export declare class OpenTelemetryClient implements TelemetryClient {
|
|
@@ -15,7 +15,7 @@ export declare class OpenTelemetryClient implements TelemetryClient {
|
|
|
15
15
|
private loggerProvider;
|
|
16
16
|
private log;
|
|
17
17
|
hostMetrics: HostMetrics | undefined;
|
|
18
|
-
|
|
18
|
+
nodejsMetricsMonitor: NodejsMetricsMonitor | undefined;
|
|
19
19
|
private meters;
|
|
20
20
|
private tracers;
|
|
21
21
|
protected constructor(resource: IResource, meterProvider: MeterProvider, traceProvider: TracerProvider, loggerProvider: LoggerProvider | undefined, log: Logger);
|
package/dest/otel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AAErF,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,cAAc,EAKpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAGL,aAAa,EAEb,KAAK,oCAAoC,EAE1C,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AAErF,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,cAAc,EAKpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAGL,aAAa,EAEb,KAAK,oCAAoC,EAE1C,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAInE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,mBAAmB,CAAC;AAEnG,qBAAa,mBAAoB,YAAW,eAAe;IAOvD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,GAAG;IAVb,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,oBAAoB,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACvD,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,OAAO,CAAkD;IAEjE,SAAS,aACC,QAAQ,EAAE,SAAS,EACnB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,cAAc,EAC7B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,GAAG,EAAE,MAAM;IAGrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAS7B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IASxB,KAAK;IA+BL,SAAS;IAIH,KAAK;IAQL,IAAI;WAkBH,mBAAmB,CAC/B,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,OAAO,CAAC,oCAAoC,CAAC,GACrD,aAAa;IAkHhB,OAAO,CAAC,MAAM,CAAC,sBAAsB;WA4BvB,cAAc,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB;CAS9F"}
|
package/dest/otel.js
CHANGED
|
@@ -6,7 +6,7 @@ import { HostMetrics } from '@opentelemetry/host-metrics';
|
|
|
6
6
|
import { ExplicitBucketHistogramAggregation, InstrumentType, MeterProvider, PeriodicExportingMetricReader, View } from '@opentelemetry/sdk-metrics';
|
|
7
7
|
import { BatchSpanProcessor, NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
|
|
8
8
|
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
|
|
9
|
-
import {
|
|
9
|
+
import { NodejsMetricsMonitor } from './nodejs_metrics_monitor.js';
|
|
10
10
|
import { OtelFilterMetricExporter } from './otel_filter_metric_exporter.js';
|
|
11
11
|
import { registerOtelLoggerProvider } from './otel_logger_provider.js';
|
|
12
12
|
import { getOtelResource } from './otel_resource.js';
|
|
@@ -17,7 +17,7 @@ export class OpenTelemetryClient {
|
|
|
17
17
|
loggerProvider;
|
|
18
18
|
log;
|
|
19
19
|
hostMetrics;
|
|
20
|
-
|
|
20
|
+
nodejsMetricsMonitor;
|
|
21
21
|
meters;
|
|
22
22
|
tracers;
|
|
23
23
|
constructor(resource, meterProvider, traceProvider, loggerProvider, log){
|
|
@@ -63,9 +63,9 @@ export class OpenTelemetryClient {
|
|
|
63
63
|
name: this.resource.attributes[ATTR_SERVICE_NAME],
|
|
64
64
|
meterProvider: this.meterProvider
|
|
65
65
|
});
|
|
66
|
-
this.
|
|
66
|
+
this.nodejsMetricsMonitor = new NodejsMetricsMonitor(this.meterProvider.getMeter(this.resource.attributes[ATTR_SERVICE_NAME]));
|
|
67
67
|
this.hostMetrics.start();
|
|
68
|
-
this.
|
|
68
|
+
this.nodejsMetricsMonitor.start();
|
|
69
69
|
}
|
|
70
70
|
isEnabled() {
|
|
71
71
|
return true;
|
|
@@ -78,7 +78,7 @@ export class OpenTelemetryClient {
|
|
|
78
78
|
]);
|
|
79
79
|
}
|
|
80
80
|
async stop() {
|
|
81
|
-
this.
|
|
81
|
+
this.nodejsMetricsMonitor?.stop();
|
|
82
82
|
const flushAndShutdown = async (provider)=>{
|
|
83
83
|
if (!provider) {
|
|
84
84
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel_filter_metric_exporter.d.ts","sourceRoot":"","sources":["../src/otel_filter_metric_exporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAc,kBAAkB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElG,qBAAa,wBAAyB,YAAW,kBAAkB;
|
|
1
|
+
{"version":3,"file":"otel_filter_metric_exporter.d.ts","sourceRoot":"","sources":["../src/otel_filter_metric_exporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAc,kBAAkB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElG,qBAAa,wBAAyB,YAAW,kBAAkB;IAE/D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBADrB,QAAQ,EAAE,kBAAkB,EAC5B,qBAAqB,EAAE,MAAM,EAAE;IAU3C,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAW7F,OAAO,CAAC,aAAa;IAMd,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGjC"}
|
package/dest/telemetry.js
CHANGED
|
@@ -27,7 +27,7 @@ export { SpanStatusCode, ValueType } from '@opentelemetry/api';
|
|
|
27
27
|
// run originalMethod wrapped in an active span
|
|
28
28
|
// "active" means the span will be alive for the duration of the function execution
|
|
29
29
|
// and if any other spans are started during the execution of originalMethod, they will be children of this span
|
|
30
|
-
// behind the scenes this uses AsyncLocalStorage https://nodejs.org/dist/latest-
|
|
30
|
+
// behind the scenes this uses AsyncLocalStorage https://nodejs.org/dist/latest-v22.x/docs/api/async_context.html
|
|
31
31
|
return this.tracer.startActiveSpan(name, async (span)=>{
|
|
32
32
|
span.setAttributes(currentAttrs ?? {});
|
|
33
33
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel-pino-stream.d.ts","sourceRoot":"","sources":["../../src/vendor/otel-pino-stream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"otel-pino-stream.d.ts","sourceRoot":"","sources":["../../src/vendor/otel-pino-stream.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AA2ElC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAI5C,MAAM,uBAIN,MAAM,aAOvB;AAED,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC;CAC/C;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,sBAAsB,CAAC;gBAEnB,OAAO,EAAE,qBAAqB;IAmBjC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;CAqGjE;AAMD,MAAM,CAAC,OAAO,WAAW,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAMvE"}
|
|
@@ -20,7 +20,7 @@ import { millisToHrTime } from '@opentelemetry/core';
|
|
|
20
20
|
import { Writable } from 'stream';
|
|
21
21
|
import { registerOtelLoggerProvider } from '../otel_logger_provider.js';
|
|
22
22
|
import { getOtelResource } from '../otel_resource.js';
|
|
23
|
-
|
|
23
|
+
// This block is a copy (modulo code style and TypeScript types) of the Pino
|
|
24
24
|
// code that defines log level value and names. This file is part of
|
|
25
25
|
// *instrumenting* Pino, so we want to avoid a dependency on the library.
|
|
26
26
|
const DEFAULT_LEVELS = {
|
package/dest/wrappers/fetch.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { Logger } from '@aztec/foundation/log';
|
|
|
7
7
|
* @param log - Optional logger for logging attempts.
|
|
8
8
|
* @returns A fetch function.
|
|
9
9
|
*/
|
|
10
|
-
export declare function makeTracedFetch(retries: number[], defaultNoRetry: boolean, fetch?: typeof defaultFetch, log?: Logger): (host: string,
|
|
10
|
+
export declare function makeTracedFetch(retries: number[], defaultNoRetry: boolean, fetch?: typeof defaultFetch, log?: Logger): (host: string, body: unknown, extraHeaders?: Record<string, string>, noRetry?: boolean) => Promise<{
|
|
11
11
|
response: any;
|
|
12
12
|
headers: {
|
|
13
13
|
get: (header: string) => string | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/wrappers/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAQpD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,sBAAe,EAAE,GAAG,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/wrappers/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAQpD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,sBAAe,EAAE,GAAG,CAAC,EAAE,MAAM,IACpG,MAAM,MAAM,EAAE,MAAM,OAAO,EAAE,eAAc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAAE,UAAU,OAAO;;;;;GA2BlG"}
|
package/dest/wrappers/fetch.js
CHANGED
|
@@ -10,21 +10,23 @@ import { ATTR_JSONRPC_METHOD, ATTR_JSONRPC_REQUEST_ID } from '../vendor/attribut
|
|
|
10
10
|
* @param log - Optional logger for logging attempts.
|
|
11
11
|
* @returns A fetch function.
|
|
12
12
|
*/ export function makeTracedFetch(retries, defaultNoRetry, fetch = defaultFetch, log) {
|
|
13
|
-
return (host,
|
|
13
|
+
return (host, body, extraHeaders = {}, noRetry)=>{
|
|
14
14
|
const telemetry = getTelemetryClient();
|
|
15
|
-
return telemetry.getTracer('fetch').startActiveSpan(`JsonRpcClient
|
|
15
|
+
return telemetry.getTracer('fetch').startActiveSpan(`JsonRpcClient`, {
|
|
16
16
|
kind: SpanKind.CLIENT
|
|
17
17
|
}, async (span)=>{
|
|
18
18
|
try {
|
|
19
|
-
if (body && typeof body.id === 'number') {
|
|
19
|
+
if (body && typeof body === 'object' && 'id' in body && typeof body.id === 'number') {
|
|
20
20
|
span.setAttribute(ATTR_JSONRPC_REQUEST_ID, body.id);
|
|
21
21
|
}
|
|
22
|
-
|
|
22
|
+
if (body && typeof body === 'object' && 'method' in body && typeof body.method === 'string') {
|
|
23
|
+
span.setAttribute(ATTR_JSONRPC_METHOD, body.method);
|
|
24
|
+
}
|
|
23
25
|
const headers = {
|
|
24
26
|
...extraHeaders
|
|
25
27
|
};
|
|
26
28
|
propagation.inject(context.active(), headers);
|
|
27
|
-
return await retry(()=>fetch(host,
|
|
29
|
+
return await retry(()=>fetch(host, body, headers, noRetry ?? defaultNoRetry), `JsonRpcClient request to ${host}`, makeBackoff(retries), log, false);
|
|
28
30
|
} catch (err) {
|
|
29
31
|
span.setStatus({
|
|
30
32
|
code: SpanStatusCode.ERROR,
|
package/package.json
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
17
17
|
},
|
|
18
18
|
"engines": {
|
|
19
|
-
"node": ">=
|
|
19
|
+
"node": ">=20.10"
|
|
20
20
|
},
|
|
21
21
|
"files": [
|
|
22
22
|
"dest",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"!*.test.*"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aztec/foundation": "0.
|
|
28
|
-
"@aztec/stdlib": "0.
|
|
27
|
+
"@aztec/foundation": "0.87.0",
|
|
28
|
+
"@aztec/stdlib": "0.87.0",
|
|
29
29
|
"@opentelemetry/api": "^1.9.0",
|
|
30
30
|
"@opentelemetry/api-logs": "^0.55.0",
|
|
31
31
|
"@opentelemetry/core": "^1.28.0",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@types/koa": "^2.15.0",
|
|
50
50
|
"jest": "^29.5.0",
|
|
51
51
|
"ts-node": "^10.9.1",
|
|
52
|
-
"typescript": "^5.
|
|
52
|
+
"typescript": "^5.3.3"
|
|
53
53
|
},
|
|
54
54
|
"jest": {
|
|
55
55
|
"extensionsToTreatAsEsm": [
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"../../foundation/src/jest/setup.mjs"
|
|
85
85
|
]
|
|
86
86
|
},
|
|
87
|
-
"version": "0.
|
|
87
|
+
"version": "0.87.0"
|
|
88
88
|
}
|
package/src/bench.ts
CHANGED
|
@@ -76,23 +76,23 @@ class InMemoryPlainMeter implements Meter {
|
|
|
76
76
|
this.metrics.forEach(metric => metric.clear());
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
createGauge(name: MetricsType, options?: MetricOptions
|
|
79
|
+
createGauge(name: MetricsType, options?: MetricOptions): Gauge {
|
|
80
80
|
return this.createMetric('gauge', name, options);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
createObservableGauge(name: MetricsType, options?: MetricOptions
|
|
83
|
+
createObservableGauge(name: MetricsType, options?: MetricOptions): ObservableGauge {
|
|
84
84
|
return this.createMetric('gauge', name, options);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
createHistogram(name: MetricsType, options?: MetricOptions
|
|
87
|
+
createHistogram(name: MetricsType, options?: MetricOptions): Histogram {
|
|
88
88
|
return this.createMetric('histogram', name, options);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
createUpDownCounter(name: MetricsType, options?: MetricOptions
|
|
91
|
+
createUpDownCounter(name: MetricsType, options?: MetricOptions): UpDownCounter {
|
|
92
92
|
return this.createMetric('counter', name, options);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
createObservableUpDownCounter(name: MetricsType, options?: MetricOptions
|
|
95
|
+
createObservableUpDownCounter(name: MetricsType, options?: MetricOptions): ObservableUpDownCounter {
|
|
96
96
|
return this.createMetric('counter', name, options);
|
|
97
97
|
}
|
|
98
98
|
|
package/src/lmdb_metrics.ts
CHANGED
|
@@ -20,7 +20,11 @@ export class LmdbMetrics {
|
|
|
20
20
|
private dbUsedSize: ObservableGauge;
|
|
21
21
|
private dbNumItems: ObservableGauge;
|
|
22
22
|
|
|
23
|
-
constructor(
|
|
23
|
+
constructor(
|
|
24
|
+
meter: Meter,
|
|
25
|
+
private attributes?: AttributesType,
|
|
26
|
+
private getStats?: LmdbStatsCallback,
|
|
27
|
+
) {
|
|
24
28
|
this.dbMapSize = meter.createObservableGauge(Metrics.DB_MAP_SIZE, {
|
|
25
29
|
description: 'LMDB Map Size',
|
|
26
30
|
valueType: ValueType.INT,
|
package/src/metrics.ts
CHANGED
|
@@ -178,3 +178,8 @@ export const NODEJS_EVENT_LOOP_DELAY_P99 = 'nodejs.eventloop.delay.p99';
|
|
|
178
178
|
|
|
179
179
|
export const NODEJS_EVENT_LOOP_UTILIZATION = 'nodejs.eventloop.utilization';
|
|
180
180
|
export const NODEJS_EVENT_LOOP_TIME = 'nodejs.eventloop.time';
|
|
181
|
+
|
|
182
|
+
export const NODEJS_MEMORY_HEAP_USAGE = 'nodejs.memory.v8_heap.usage';
|
|
183
|
+
export const NODEJS_MEMORY_HEAP_TOTAL = 'nodejs.memory.v8_heap.total';
|
|
184
|
+
export const NODEJS_MEMORY_NATIVE_USAGE = 'nodejs.memory.native.usage';
|
|
185
|
+
export const NODEJS_MEMORY_BUFFER_USAGE = 'nodejs.memory.array_buffer.usage';
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
/**
|
|
14
14
|
* Detector for custom Aztec attributes
|
|
15
15
|
*/
|
|
16
|
-
export class
|
|
16
|
+
export class NodejsMetricsMonitor {
|
|
17
17
|
private eventLoopDelayGauges: {
|
|
18
18
|
min: ObservableGauge;
|
|
19
19
|
max: ObservableGauge;
|
|
@@ -24,6 +24,10 @@ export class EventLoopMonitor {
|
|
|
24
24
|
p99: ObservableGauge;
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
+
// skip `rss` because that's already tracked by @opentelemetry/host-metrics
|
|
28
|
+
// description of each field here https://nodejs.org/api/process.html#processmemoryusage
|
|
29
|
+
private memoryGauges: Record<Exclude<keyof NodeJS.MemoryUsage, 'rss'>, ObservableGauge>;
|
|
30
|
+
|
|
27
31
|
private eventLoopUilization: ObservableGauge;
|
|
28
32
|
private eventLoopTime: UpDownCounter;
|
|
29
33
|
|
|
@@ -62,6 +66,25 @@ export class EventLoopMonitor {
|
|
|
62
66
|
});
|
|
63
67
|
|
|
64
68
|
this.eventLoopDelay = monitorEventLoopDelay();
|
|
69
|
+
|
|
70
|
+
this.memoryGauges = {
|
|
71
|
+
heapUsed: meter.createObservableGauge(Metrics.NODEJS_MEMORY_HEAP_USAGE, {
|
|
72
|
+
unit: 'By',
|
|
73
|
+
description: 'Memory used by the V8 heap',
|
|
74
|
+
}),
|
|
75
|
+
heapTotal: meter.createObservableGauge(Metrics.NODEJS_MEMORY_HEAP_TOTAL, {
|
|
76
|
+
unit: 'By',
|
|
77
|
+
description: 'The max size the V8 heap can grow to',
|
|
78
|
+
}),
|
|
79
|
+
arrayBuffers: meter.createObservableGauge(Metrics.NODEJS_MEMORY_BUFFER_USAGE, {
|
|
80
|
+
unit: 'By',
|
|
81
|
+
description: 'Memory allocated for buffers (includes native memory used)',
|
|
82
|
+
}),
|
|
83
|
+
external: meter.createObservableGauge(Metrics.NODEJS_MEMORY_NATIVE_USAGE, {
|
|
84
|
+
unit: 'By',
|
|
85
|
+
description: 'Memory allocated for native C++ objects',
|
|
86
|
+
}),
|
|
87
|
+
};
|
|
65
88
|
}
|
|
66
89
|
|
|
67
90
|
start(): void {
|
|
@@ -74,6 +97,7 @@ export class EventLoopMonitor {
|
|
|
74
97
|
this.meter.addBatchObservableCallback(this.measure, [
|
|
75
98
|
this.eventLoopUilization,
|
|
76
99
|
...Object.values(this.eventLoopDelayGauges),
|
|
100
|
+
...Object.values(this.memoryGauges),
|
|
77
101
|
]);
|
|
78
102
|
}
|
|
79
103
|
|
|
@@ -84,6 +108,7 @@ export class EventLoopMonitor {
|
|
|
84
108
|
this.meter.removeBatchObservableCallback(this.measure, [
|
|
85
109
|
this.eventLoopUilization,
|
|
86
110
|
...Object.values(this.eventLoopDelayGauges),
|
|
111
|
+
...Object.values(this.memoryGauges),
|
|
87
112
|
]);
|
|
88
113
|
this.eventLoopDelay.disable();
|
|
89
114
|
this.eventLoopDelay.reset();
|
|
@@ -91,6 +116,20 @@ export class EventLoopMonitor {
|
|
|
91
116
|
}
|
|
92
117
|
|
|
93
118
|
private measure = (obs: BatchObservableResult): void => {
|
|
119
|
+
this.measureMemoryUsage(obs);
|
|
120
|
+
this.measureEventLoopDelay(obs);
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
private measureMemoryUsage = (observer: BatchObservableResult) => {
|
|
124
|
+
const mem = process.memoryUsage();
|
|
125
|
+
|
|
126
|
+
observer.observe(this.memoryGauges.heapUsed, mem.heapUsed);
|
|
127
|
+
observer.observe(this.memoryGauges.heapTotal, mem.heapTotal);
|
|
128
|
+
observer.observe(this.memoryGauges.arrayBuffers, mem.arrayBuffers);
|
|
129
|
+
observer.observe(this.memoryGauges.external, mem.external);
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
private measureEventLoopDelay = (obs: BatchObservableResult): void => {
|
|
94
133
|
const newELU = performance.eventLoopUtilization();
|
|
95
134
|
const delta = performance.eventLoopUtilization(newELU, this.lastELU);
|
|
96
135
|
this.lastELU = newELU;
|
package/src/noop.ts
CHANGED
|
@@ -32,7 +32,7 @@ export class NoopTracer implements Tracer {
|
|
|
32
32
|
return new NoopSpan();
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
startActiveSpan<F extends (...args: any[]) => any>(_name: string, ...args:
|
|
35
|
+
startActiveSpan<F extends (...args: any[]) => any>(_name: string, ...args: unknown[]): ReturnType<F> {
|
|
36
36
|
// there are three different signatures for startActiveSpan, grab the function, we don't care about the rest
|
|
37
37
|
const fn = args.find(arg => typeof arg === 'function') as F;
|
|
38
38
|
return fn(new NoopSpan());
|
package/src/otel.ts
CHANGED
|
@@ -28,7 +28,7 @@ import { BatchSpanProcessor, NodeTracerProvider } from '@opentelemetry/sdk-trace
|
|
|
28
28
|
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
|
|
29
29
|
|
|
30
30
|
import type { TelemetryClientConfig } from './config.js';
|
|
31
|
-
import {
|
|
31
|
+
import { NodejsMetricsMonitor } from './nodejs_metrics_monitor.js';
|
|
32
32
|
import { OtelFilterMetricExporter } from './otel_filter_metric_exporter.js';
|
|
33
33
|
import { registerOtelLoggerProvider } from './otel_logger_provider.js';
|
|
34
34
|
import { getOtelResource } from './otel_resource.js';
|
|
@@ -38,7 +38,7 @@ export type OpenTelemetryClientFactory = (resource: IResource, log: Logger) => O
|
|
|
38
38
|
|
|
39
39
|
export class OpenTelemetryClient implements TelemetryClient {
|
|
40
40
|
hostMetrics: HostMetrics | undefined;
|
|
41
|
-
|
|
41
|
+
nodejsMetricsMonitor: NodejsMetricsMonitor | undefined;
|
|
42
42
|
private meters: Map<string, Meter> = new Map<string, Meter>();
|
|
43
43
|
private tracers: Map<string, Tracer> = new Map<string, Tracer>();
|
|
44
44
|
|
|
@@ -91,12 +91,12 @@ export class OpenTelemetryClient implements TelemetryClient {
|
|
|
91
91
|
meterProvider: this.meterProvider,
|
|
92
92
|
});
|
|
93
93
|
|
|
94
|
-
this.
|
|
94
|
+
this.nodejsMetricsMonitor = new NodejsMetricsMonitor(
|
|
95
95
|
this.meterProvider.getMeter(this.resource.attributes[ATTR_SERVICE_NAME] as string),
|
|
96
96
|
);
|
|
97
97
|
|
|
98
98
|
this.hostMetrics.start();
|
|
99
|
-
this.
|
|
99
|
+
this.nodejsMetricsMonitor.start();
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
public isEnabled() {
|
|
@@ -112,7 +112,7 @@ export class OpenTelemetryClient implements TelemetryClient {
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
public async stop() {
|
|
115
|
-
this.
|
|
115
|
+
this.nodejsMetricsMonitor?.stop();
|
|
116
116
|
|
|
117
117
|
const flushAndShutdown = async (provider?: { forceFlush: () => Promise<void>; shutdown: () => Promise<void> }) => {
|
|
118
118
|
if (!provider) {
|
|
@@ -2,7 +2,10 @@ import type { ExportResult } from '@opentelemetry/core';
|
|
|
2
2
|
import type { MetricData, PushMetricExporter, ResourceMetrics } from '@opentelemetry/sdk-metrics';
|
|
3
3
|
|
|
4
4
|
export class OtelFilterMetricExporter implements PushMetricExporter {
|
|
5
|
-
constructor(
|
|
5
|
+
constructor(
|
|
6
|
+
private readonly exporter: PushMetricExporter,
|
|
7
|
+
private readonly excludeMetricPrefixes: string[],
|
|
8
|
+
) {
|
|
6
9
|
if (exporter.selectAggregation) {
|
|
7
10
|
(this as PushMetricExporter).selectAggregation = exporter.selectAggregation.bind(exporter);
|
|
8
11
|
}
|
package/src/telemetry.ts
CHANGED
|
@@ -193,7 +193,7 @@ export function trackSpan<T extends Traceable, F extends (...args: any[]) => any
|
|
|
193
193
|
// run originalMethod wrapped in an active span
|
|
194
194
|
// "active" means the span will be alive for the duration of the function execution
|
|
195
195
|
// and if any other spans are started during the execution of originalMethod, they will be children of this span
|
|
196
|
-
// behind the scenes this uses AsyncLocalStorage https://nodejs.org/dist/latest-
|
|
196
|
+
// behind the scenes this uses AsyncLocalStorage https://nodejs.org/dist/latest-v22.x/docs/api/async_context.html
|
|
197
197
|
return this.tracer.startActiveSpan(name, async (span: Span) => {
|
|
198
198
|
span.setAttributes(currentAttrs ?? {});
|
|
199
199
|
|
|
@@ -23,9 +23,6 @@ import { Writable } from 'stream';
|
|
|
23
23
|
import { registerOtelLoggerProvider } from '../otel_logger_provider.js';
|
|
24
24
|
import { getOtelResource } from '../otel_resource.js';
|
|
25
25
|
|
|
26
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
27
|
-
/* eslint-disable camelcase */
|
|
28
|
-
|
|
29
26
|
// This block is a copy (modulo code style and TypeScript types) of the Pino
|
|
30
27
|
// code that defines log level value and names. This file is part of
|
|
31
28
|
// *instrumenting* Pino, so we want to avoid a dependency on the library.
|
package/src/wrappers/fetch.ts
CHANGED
|
@@ -15,38 +15,31 @@ import { ATTR_JSONRPC_METHOD, ATTR_JSONRPC_REQUEST_ID } from '../vendor/attribut
|
|
|
15
15
|
* @returns A fetch function.
|
|
16
16
|
*/
|
|
17
17
|
export function makeTracedFetch(retries: number[], defaultNoRetry: boolean, fetch = defaultFetch, log?: Logger) {
|
|
18
|
-
return (
|
|
19
|
-
host: string,
|
|
20
|
-
rpcMethod: string,
|
|
21
|
-
body: any,
|
|
22
|
-
useApiEndpoints: boolean,
|
|
23
|
-
extraHeaders: Record<string, string> = {},
|
|
24
|
-
noRetry?: boolean,
|
|
25
|
-
) => {
|
|
18
|
+
return (host: string, body: unknown, extraHeaders: Record<string, string> = {}, noRetry?: boolean) => {
|
|
26
19
|
const telemetry = getTelemetryClient();
|
|
27
|
-
return telemetry
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (body && typeof body.id === 'number') {
|
|
32
|
-
span.setAttribute(ATTR_JSONRPC_REQUEST_ID, body.id);
|
|
33
|
-
}
|
|
34
|
-
span.setAttribute(ATTR_JSONRPC_METHOD, rpcMethod);
|
|
35
|
-
const headers = { ...extraHeaders };
|
|
36
|
-
propagation.inject(context.active(), headers);
|
|
37
|
-
return await retry(
|
|
38
|
-
() => fetch(host, rpcMethod, body, useApiEndpoints, headers, noRetry ?? defaultNoRetry),
|
|
39
|
-
`JsonRpcClient request ${rpcMethod} to ${host}`,
|
|
40
|
-
makeBackoff(retries),
|
|
41
|
-
log,
|
|
42
|
-
false,
|
|
43
|
-
);
|
|
44
|
-
} catch (err: any) {
|
|
45
|
-
span.setStatus({ code: SpanStatusCode.ERROR, message: err?.message ?? String(err) });
|
|
46
|
-
throw err;
|
|
47
|
-
} finally {
|
|
48
|
-
span.end();
|
|
20
|
+
return telemetry.getTracer('fetch').startActiveSpan(`JsonRpcClient`, { kind: SpanKind.CLIENT }, async span => {
|
|
21
|
+
try {
|
|
22
|
+
if (body && typeof body === 'object' && 'id' in body && typeof body.id === 'number') {
|
|
23
|
+
span.setAttribute(ATTR_JSONRPC_REQUEST_ID, body.id);
|
|
49
24
|
}
|
|
50
|
-
|
|
25
|
+
if (body && typeof body === 'object' && 'method' in body && typeof body.method === 'string') {
|
|
26
|
+
span.setAttribute(ATTR_JSONRPC_METHOD, body.method);
|
|
27
|
+
}
|
|
28
|
+
const headers = { ...extraHeaders };
|
|
29
|
+
propagation.inject(context.active(), headers);
|
|
30
|
+
return await retry(
|
|
31
|
+
() => fetch(host, body, headers, noRetry ?? defaultNoRetry),
|
|
32
|
+
`JsonRpcClient request to ${host}`,
|
|
33
|
+
makeBackoff(retries),
|
|
34
|
+
log,
|
|
35
|
+
false,
|
|
36
|
+
);
|
|
37
|
+
} catch (err: any) {
|
|
38
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: err?.message ?? String(err) });
|
|
39
|
+
throw err;
|
|
40
|
+
} finally {
|
|
41
|
+
span.end();
|
|
42
|
+
}
|
|
43
|
+
});
|
|
51
44
|
};
|
|
52
45
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event_loop_monitor.d.ts","sourceRoot":"","sources":["../src/event_loop_monitor.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,KAAK,EAIX,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,qBAAa,gBAAgB;IAmBf,OAAO,CAAC,KAAK;IAlBzB,OAAO,CAAC,oBAAoB,CAQ1B;IAEF,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,cAAc,CAAoB;gBAEtB,KAAK,EAAE,KAAK;IAgChC,KAAK,IAAI,IAAI;IAab,IAAI,IAAI,IAAI;IAaZ,OAAO,CAAC,OAAO,CAyBb;CACH"}
|