@aztec/telemetry-client 0.76.4 → 0.77.0-testnet-ignition.21
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/attributes.d.ts +3 -1
- package/dest/attributes.d.ts.map +1 -1
- package/dest/attributes.js +31 -61
- package/dest/bench.d.ts +5 -5
- package/dest/bench.d.ts.map +1 -1
- package/dest/bench.js +28 -15
- package/dest/config.d.ts +0 -6
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +11 -44
- package/dest/event_loop_monitor.js +29 -19
- package/dest/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -2
- package/dest/lmdb_metrics.d.ts +1 -1
- package/dest/lmdb_metrics.d.ts.map +1 -1
- package/dest/lmdb_metrics.js +21 -12
- package/dest/metrics.d.ts +10 -5
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +12 -10
- package/dest/noop.d.ts +1 -1
- package/dest/noop.d.ts.map +1 -1
- package/dest/noop.js +3 -6
- package/dest/otel.d.ts +4 -6
- package/dest/otel.d.ts.map +1 -1
- package/dest/otel.js +191 -90
- package/dest/otel_filter_metric_exporter.d.ts +2 -2
- package/dest/otel_filter_metric_exporter.d.ts.map +1 -1
- package/dest/otel_filter_metric_exporter.js +8 -6
- package/dest/otel_logger_provider.d.ts +1 -1
- package/dest/otel_logger_provider.d.ts.map +1 -1
- package/dest/otel_logger_provider.js +6 -7
- package/dest/otel_propagation.js +18 -12
- package/dest/otel_resource.d.ts.map +1 -1
- package/dest/otel_resource.js +3 -8
- package/dest/prom_otel_adapter.d.ts +2 -2
- package/dest/prom_otel_adapter.d.ts.map +1 -1
- package/dest/prom_otel_adapter.js +50 -53
- package/dest/start.d.ts +2 -2
- package/dest/start.d.ts.map +1 -1
- package/dest/start.js +3 -5
- package/dest/telemetry.d.ts +25 -25
- package/dest/telemetry.d.ts.map +1 -1
- package/dest/telemetry.js +25 -39
- package/dest/vendor/attributes.js +0 -1
- package/dest/vendor/otel-pino-stream.js +33 -49
- package/dest/with_tracer.d.ts +1 -1
- package/dest/with_tracer.d.ts.map +1 -1
- package/dest/with_tracer.js +3 -4
- package/dest/wrappers/fetch.d.ts +1 -1
- package/dest/wrappers/fetch.d.ts.map +1 -1
- package/dest/wrappers/fetch.js +15 -14
- package/dest/wrappers/index.js +0 -1
- package/dest/wrappers/json_rpc_server.d.ts +1 -1
- package/dest/wrappers/json_rpc_server.d.ts.map +1 -1
- package/dest/wrappers/json_rpc_server.js +4 -2
- package/dest/wrappers/l2_block_stream.d.ts +1 -1
- package/dest/wrappers/l2_block_stream.d.ts.map +1 -1
- package/dest/wrappers/l2_block_stream.js +24 -32
- package/package.json +5 -8
- package/src/attributes.ts +3 -1
- package/src/bench.ts +26 -32
- package/src/config.ts +1 -34
- package/src/event_loop_monitor.ts +3 -3
- package/src/index.ts +2 -1
- package/src/lmdb_metrics.ts +6 -6
- package/src/metrics.ts +10 -5
- package/src/noop.ts +1 -1
- package/src/otel.ts +53 -66
- package/src/otel_filter_metric_exporter.ts +2 -2
- package/src/otel_logger_provider.ts +1 -1
- package/src/otel_resource.ts +1 -11
- package/src/prom_otel_adapter.ts +8 -8
- package/src/start.ts +4 -4
- package/src/telemetry.ts +28 -28
- package/src/with_tracer.ts +1 -1
- package/src/wrappers/fetch.ts +1 -1
- package/src/wrappers/json_rpc_server.ts +1 -1
- package/src/wrappers/l2_block_stream.ts +2 -2
- package/dest/aztec_resource_detector.d.ts +0 -10
- package/dest/aztec_resource_detector.d.ts.map +0 -1
- package/dest/aztec_resource_detector.js +0 -20
- package/dest/histogram_utils.d.ts +0 -36
- package/dest/histogram_utils.d.ts.map +0 -1
- package/dest/histogram_utils.js +0 -50
- package/src/aztec_resource_detector.ts +0 -28
- package/src/histogram_utils.ts +0 -50
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { Registry } from 'prom-client';
|
|
3
|
-
export var MessageSource
|
|
4
|
-
(function (MessageSource) {
|
|
3
|
+
export var MessageSource = /*#__PURE__*/ function(MessageSource) {
|
|
5
4
|
MessageSource["forward"] = "forward";
|
|
6
5
|
MessageSource["publish"] = "publish";
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
return MessageSource;
|
|
7
|
+
}({});
|
|
8
|
+
/**Otel MetricsType Adapters
|
|
9
9
|
*
|
|
10
10
|
* Some dependencies we use export metrics directly in a Prometheus format
|
|
11
11
|
* This adapter is used to convert those metrics to a format that we can use with OpenTelemetry
|
|
@@ -13,39 +13,44 @@ export var MessageSource;
|
|
|
13
13
|
* Affected services include:
|
|
14
14
|
* - chainsafe/gossipsub
|
|
15
15
|
* - libp2p
|
|
16
|
-
*/
|
|
17
|
-
|
|
16
|
+
*/ export class OtelGauge {
|
|
17
|
+
logger;
|
|
18
|
+
labelNames;
|
|
19
|
+
gauge;
|
|
20
|
+
currentValue;
|
|
21
|
+
labeledValues;
|
|
22
|
+
collectFns;
|
|
23
|
+
_collect;
|
|
18
24
|
get collect() {
|
|
19
25
|
return this._collect;
|
|
20
26
|
}
|
|
21
27
|
set collect(fn) {
|
|
22
28
|
this._collect = fn;
|
|
23
29
|
}
|
|
24
|
-
constructor(logger, meter, name, help, labelNames = [])
|
|
30
|
+
constructor(logger, meter, name, help, labelNames = []){
|
|
25
31
|
this.logger = logger;
|
|
26
32
|
this.labelNames = labelNames;
|
|
27
33
|
this.currentValue = 0;
|
|
28
34
|
this.labeledValues = new Map();
|
|
29
35
|
this.collectFns = [];
|
|
30
|
-
this._collect = ()
|
|
36
|
+
this._collect = ()=>{};
|
|
31
37
|
this.gauge = meter.createObservableGauge(name, {
|
|
32
|
-
description: help
|
|
38
|
+
description: help
|
|
33
39
|
});
|
|
34
40
|
// Only observe in the callback when collect() is called
|
|
35
41
|
this.gauge.addCallback(this.handleObservation.bind(this));
|
|
36
42
|
}
|
|
37
43
|
/**
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
addCollect(collectFn) {
|
|
44
|
+
* Add a collect callback
|
|
45
|
+
* @param collectFn - Callback function
|
|
46
|
+
*/ addCollect(collectFn) {
|
|
42
47
|
this.collectFns.push(collectFn);
|
|
43
48
|
}
|
|
44
49
|
handleObservation(result) {
|
|
45
50
|
// Execute the main collect function if assigned
|
|
46
51
|
this._collect();
|
|
47
52
|
// Execute all the collect functions
|
|
48
|
-
for (const fn of this.collectFns)
|
|
53
|
+
for (const fn of this.collectFns){
|
|
49
54
|
fn(this);
|
|
50
55
|
}
|
|
51
56
|
// Report the current values
|
|
@@ -53,7 +58,7 @@ export class OtelGauge {
|
|
|
53
58
|
result.observe(this.currentValue);
|
|
54
59
|
return;
|
|
55
60
|
}
|
|
56
|
-
for (const [labelStr, value] of this.labeledValues.entries())
|
|
61
|
+
for (const [labelStr, value] of this.labeledValues.entries()){
|
|
57
62
|
const labels = this.parseLabelsSafely(labelStr);
|
|
58
63
|
if (labels) {
|
|
59
64
|
result.observe(value, labels);
|
|
@@ -84,10 +89,9 @@ export class OtelGauge {
|
|
|
84
89
|
this.labeledValues.set(labelKey, value);
|
|
85
90
|
}
|
|
86
91
|
/**
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
dec(labels) {
|
|
92
|
+
* Decrements the gauge value
|
|
93
|
+
* @param labels - Optional labels object
|
|
94
|
+
*/ dec(labels) {
|
|
91
95
|
if (labels) {
|
|
92
96
|
this.validateLabels(labels);
|
|
93
97
|
const labelKey = JSON.stringify(labels);
|
|
@@ -98,37 +102,33 @@ export class OtelGauge {
|
|
|
98
102
|
this.currentValue -= 1;
|
|
99
103
|
}
|
|
100
104
|
/**
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
reset() {
|
|
105
|
+
* Resets the gauge to initial state
|
|
106
|
+
*/ reset() {
|
|
104
107
|
this.currentValue = 0;
|
|
105
108
|
this.labeledValues.clear();
|
|
106
109
|
}
|
|
107
110
|
/**
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
validateLabels(labels) {
|
|
111
|
+
* Validates that provided labels match the expected schema
|
|
112
|
+
* @param labels - Labels object to validate
|
|
113
|
+
* @throws Error if invalid labels are provided
|
|
114
|
+
*/ validateLabels(labels) {
|
|
113
115
|
if (this.labelNames.length === 0) {
|
|
114
116
|
throw new Error('Gauge was initialized without labels support');
|
|
115
117
|
}
|
|
116
|
-
for (const key of Object.keys(labels))
|
|
118
|
+
for (const key of Object.keys(labels)){
|
|
117
119
|
if (!this.labelNames.includes(key)) {
|
|
118
120
|
throw new Error(`Invalid label key: ${key}`);
|
|
119
121
|
}
|
|
120
122
|
}
|
|
121
123
|
}
|
|
122
124
|
/**
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
parseLabelsSafely(labelStr) {
|
|
125
|
+
* Safely parses label string back to object
|
|
126
|
+
* @param labelStr - Stringified labels object
|
|
127
|
+
* @returns Labels object or null if parsing fails
|
|
128
|
+
*/ parseLabelsSafely(labelStr) {
|
|
128
129
|
try {
|
|
129
130
|
return JSON.parse(labelStr);
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
131
|
+
} catch {
|
|
132
132
|
this.logger.error(`Failed to parse label string: ${labelStr}`);
|
|
133
133
|
return null;
|
|
134
134
|
}
|
|
@@ -136,15 +136,14 @@ export class OtelGauge {
|
|
|
136
136
|
}
|
|
137
137
|
/**
|
|
138
138
|
* Noop implementation of a Historgram collec
|
|
139
|
-
*/
|
|
140
|
-
|
|
141
|
-
constructor(logger, _meter, _name,
|
|
142
|
-
_help, _buckets = [], _labelNames = []) {
|
|
139
|
+
*/ class NoopOtelHistogram {
|
|
140
|
+
logger;
|
|
141
|
+
constructor(logger, _meter, _name, _help, _buckets = [], _labelNames = []){
|
|
143
142
|
this.logger = logger;
|
|
144
143
|
}
|
|
145
|
-
observe(_valueOrLabels, _value) {
|
|
144
|
+
observe(_valueOrLabels, _value) {}
|
|
146
145
|
startTimer(_labels) {
|
|
147
|
-
return ()
|
|
146
|
+
return ()=>0;
|
|
148
147
|
}
|
|
149
148
|
reset() {
|
|
150
149
|
// OpenTelemetry histograms cannot be reset, but we implement the interface
|
|
@@ -153,24 +152,23 @@ class NoopOtelHistogram {
|
|
|
153
152
|
}
|
|
154
153
|
/**
|
|
155
154
|
* Noop implementation of an AvgMinMax collector
|
|
156
|
-
*/
|
|
157
|
-
|
|
158
|
-
constructor(_logger, _meter, _name,
|
|
159
|
-
_help, _labelNames = []) {
|
|
155
|
+
*/ class NoopOtelAvgMinMax {
|
|
156
|
+
_logger;
|
|
157
|
+
constructor(_logger, _meter, _name, _help, _labelNames = []){
|
|
160
158
|
this._logger = _logger;
|
|
161
159
|
}
|
|
162
|
-
set(_valueOrLabels, _values) {
|
|
163
|
-
reset() {
|
|
160
|
+
set(_valueOrLabels, _values) {}
|
|
161
|
+
reset() {}
|
|
164
162
|
}
|
|
165
163
|
/**
|
|
166
164
|
* Otel metrics Adapter
|
|
167
165
|
*
|
|
168
166
|
* Maps the PromClient based MetricsRegister from gossipsub and discv5 services to the Otel MetricsRegister
|
|
169
|
-
*/
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
this.logger = logger;
|
|
167
|
+
*/ export class OtelMetricsAdapter extends Registry {
|
|
168
|
+
logger;
|
|
169
|
+
meter;
|
|
170
|
+
constructor(telemetryClient, logger = createLogger('telemetry:otel-metrics-adapter')){
|
|
171
|
+
super(), this.logger = logger;
|
|
174
172
|
this.meter = telemetryClient.getMeter('metrics-adapter');
|
|
175
173
|
}
|
|
176
174
|
gauge(configuration) {
|
|
@@ -183,4 +181,3 @@ export class OtelMetricsAdapter extends Registry {
|
|
|
183
181
|
return new NoopOtelAvgMinMax(this.logger, this.meter, configuration.name, configuration.help, configuration.labelNames);
|
|
184
182
|
}
|
|
185
183
|
}
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbV9vdGVsX2FkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvbV9vdGVsX2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFXdkMsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2QixvQ0FBbUIsQ0FBQTtJQUNuQixvQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsYUFBYSxLQUFiLGFBQWEsUUFHeEI7QUFnREQ7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLE9BQU8sU0FBUztJQU9wQixJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEVBQWM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQ1UsTUFBYyxFQUN0QixLQUFZLEVBQ1osSUFBWSxFQUNaLElBQVksRUFDSixhQUFrQyxFQUFFO1FBSnBDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFJZCxlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQWpCdEMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsa0JBQWEsR0FBd0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMvQyxlQUFVLEdBQXdCLEVBQUUsQ0FBQztRQUVyQyxhQUFRLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBZXRDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixDQUFDLElBQWUsRUFBRTtZQUN4RCxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFD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
|
package/dest/start.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { TelemetryClientConfig } from './config.js';
|
|
2
|
+
import type { TelemetryClient } from './telemetry.js';
|
|
3
3
|
export * from './config.js';
|
|
4
4
|
export declare function initTelemetryClient(config: TelemetryClientConfig): TelemetryClient;
|
|
5
5
|
export declare function getTelemetryClient(): TelemetryClient;
|
package/dest/start.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,cAAc,aAAa,CAAC;AAK5B,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAgBlF;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD"}
|
package/dest/start.js
CHANGED
|
@@ -10,11 +10,10 @@ export function initTelemetryClient(config) {
|
|
|
10
10
|
log.warn('Telemetry client has already been initialized once');
|
|
11
11
|
return telemetry;
|
|
12
12
|
}
|
|
13
|
-
if (config.metricsCollectorUrl
|
|
14
|
-
log.info(`Using OpenTelemetry client
|
|
13
|
+
if (config.metricsCollectorUrl) {
|
|
14
|
+
log.info(`Using OpenTelemetry client with custom collector`);
|
|
15
15
|
telemetry = OpenTelemetryClient.createAndStart(config, log);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
16
|
+
} else {
|
|
18
17
|
log.info('Using NoopTelemetryClient');
|
|
19
18
|
}
|
|
20
19
|
initialised = true;
|
|
@@ -23,4 +22,3 @@ export function initTelemetryClient(config) {
|
|
|
23
22
|
export function getTelemetryClient() {
|
|
24
23
|
return telemetry;
|
|
25
24
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHaEQsY0FBYyxhQUFhLENBQUM7QUFFNUIsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO0FBQ3hCLElBQUksU0FBUyxHQUFvQixJQUFJLG1CQUFtQixFQUFFLENBQUM7QUFFM0QsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE1BQTZCO0lBQy9ELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxRCxHQUFHLENBQUMsSUFBSSxDQUFDLDhCQUE4QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlELENBQUM7U0FBTSxDQUFDO1FBQ04sR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ25CLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCO0lBQ2hDLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMifQ==
|
package/dest/telemetry.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { type AttributeValue, type BatchObservableCallback, type MetricOptions, type Observable, type BatchObservableResult as OtelBatchObservableResult, type Gauge as OtelGauge, type Histogram as OtelHistogram, type ObservableGauge as OtelObservableGauge, type ObservableResult as OtelObservableResult, type ObservableUpDownCounter as OtelObservableUpDownCounter, type UpDownCounter as OtelUpDownCounter, type Span, Tracer } from '@opentelemetry/api';
|
|
2
|
-
import * as Attributes from './attributes.js';
|
|
3
|
-
import * as Metrics from './metrics.js';
|
|
4
|
-
export { Span, SpanStatusCode, ValueType } from '@opentelemetry/api';
|
|
1
|
+
import { type AttributeValue, type BatchObservableCallback, type MetricOptions, type Observable, type BatchObservableResult as OtelBatchObservableResult, type Gauge as OtelGauge, type Histogram as OtelHistogram, type ObservableGauge as OtelObservableGauge, type ObservableResult as OtelObservableResult, type ObservableUpDownCounter as OtelObservableUpDownCounter, type UpDownCounter as OtelUpDownCounter, type Span, type Tracer } from '@opentelemetry/api';
|
|
2
|
+
import type * as Attributes from './attributes.js';
|
|
3
|
+
import type * as Metrics from './metrics.js';
|
|
4
|
+
export { type Span, SpanStatusCode, ValueType } from '@opentelemetry/api';
|
|
5
5
|
type ValuesOf<T> = T extends Record<string, infer U> ? U : never;
|
|
6
6
|
/** Global registry of attributes */
|
|
7
|
-
type
|
|
8
|
-
export {
|
|
7
|
+
type AttributesType = Partial<Record<ValuesOf<typeof Attributes>, AttributeValue>>;
|
|
8
|
+
export type { AttributesType };
|
|
9
9
|
/** Global registry of metrics */
|
|
10
|
-
type
|
|
11
|
-
export {
|
|
12
|
-
export type Gauge = OtelGauge<
|
|
13
|
-
export type Histogram = OtelHistogram<
|
|
14
|
-
export type UpDownCounter = OtelUpDownCounter<
|
|
15
|
-
export type ObservableGauge = OtelObservableGauge<
|
|
16
|
-
export type ObservableUpDownCounter = OtelObservableUpDownCounter<
|
|
17
|
-
export type ObservableResult = OtelObservableResult<
|
|
18
|
-
export type BatchObservableResult = OtelBatchObservableResult<
|
|
19
|
-
export { Tracer };
|
|
10
|
+
type MetricsType = (typeof Metrics)[keyof typeof Metrics];
|
|
11
|
+
export type { MetricsType };
|
|
12
|
+
export type Gauge = OtelGauge<AttributesType>;
|
|
13
|
+
export type Histogram = OtelHistogram<AttributesType>;
|
|
14
|
+
export type UpDownCounter = OtelUpDownCounter<AttributesType>;
|
|
15
|
+
export type ObservableGauge = OtelObservableGauge<AttributesType>;
|
|
16
|
+
export type ObservableUpDownCounter = OtelObservableUpDownCounter<AttributesType>;
|
|
17
|
+
export type ObservableResult = OtelObservableResult<AttributesType>;
|
|
18
|
+
export type BatchObservableResult = OtelBatchObservableResult<AttributesType>;
|
|
19
|
+
export type { Tracer };
|
|
20
20
|
/**
|
|
21
21
|
* A meter that provides instruments for recording metrics.
|
|
22
22
|
*/
|
|
@@ -26,33 +26,33 @@ export interface Meter {
|
|
|
26
26
|
* @param name - The name of the gauge
|
|
27
27
|
* @param options - The options for the gauge
|
|
28
28
|
*/
|
|
29
|
-
createGauge(name:
|
|
29
|
+
createGauge(name: MetricsType, options?: MetricOptions): Gauge;
|
|
30
30
|
/**
|
|
31
31
|
* Creates a new gauge instrument. A gauge is a metric that represents a single numerical value that can arbitrarily go up and down.
|
|
32
32
|
* @param name - The name of the gauge
|
|
33
33
|
* @param options - The options for the gauge
|
|
34
34
|
*/
|
|
35
|
-
createObservableGauge(name:
|
|
36
|
-
addBatchObservableCallback(callback: BatchObservableCallback<
|
|
37
|
-
removeBatchObservableCallback(callback: BatchObservableCallback<
|
|
35
|
+
createObservableGauge(name: MetricsType, options?: MetricOptions): ObservableGauge;
|
|
36
|
+
addBatchObservableCallback(callback: BatchObservableCallback<AttributesType>, observables: Observable<AttributesType>[]): void;
|
|
37
|
+
removeBatchObservableCallback(callback: BatchObservableCallback<AttributesType>, observables: Observable<AttributesType>[]): void;
|
|
38
38
|
/**
|
|
39
39
|
* Creates a new histogram instrument. A histogram is a metric that samples observations (usually things like request durations or response sizes) and counts them in configurable buckets.
|
|
40
40
|
* @param name - The name of the histogram
|
|
41
41
|
* @param options - The options for the histogram
|
|
42
42
|
*/
|
|
43
|
-
createHistogram(name:
|
|
43
|
+
createHistogram(name: MetricsType, options?: MetricOptions): Histogram;
|
|
44
44
|
/**
|
|
45
45
|
* Creates a new counter instrument. A counter can go up or down with a delta from the previous value.
|
|
46
46
|
* @param name - The name of the counter
|
|
47
47
|
* @param options - The options for the counter
|
|
48
48
|
*/
|
|
49
|
-
createUpDownCounter(name:
|
|
49
|
+
createUpDownCounter(name: MetricsType, options?: MetricOptions): UpDownCounter;
|
|
50
50
|
/**
|
|
51
51
|
* Creates a new gauge instrument. A gauge is a metric that represents a single numerical value that can arbitrarily go up and down.
|
|
52
52
|
* @param name - The name of the gauge
|
|
53
53
|
* @param options - The options for the gauge
|
|
54
54
|
*/
|
|
55
|
-
createObservableUpDownCounter(name:
|
|
55
|
+
createObservableUpDownCounter(name: MetricsType, options?: MetricOptions): ObservableUpDownCounter;
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
58
|
* A telemetry client that provides meters for recording metrics.
|
|
@@ -101,7 +101,7 @@ type SpanDecorator<T extends Traceable, F extends (...args: any[]) => any> = (or
|
|
|
101
101
|
* The trackSpan function takes a span's name and some attributes and builds a decorator that wraps a method in a span with the given name and props
|
|
102
102
|
* The decorator can currently only be applied to methods on classes that have a `tracer` property. The compiler will enforce this.
|
|
103
103
|
*/
|
|
104
|
-
export declare function trackSpan<T extends Traceable, F extends (...args: any[]) => any>(spanName: string | ((this: T, ...args: Parameters<F>) => string), attributes?:
|
|
104
|
+
export declare function trackSpan<T extends Traceable, F extends (...args: any[]) => any>(spanName: string | ((this: T, ...args: Parameters<F>) => string), attributes?: AttributesType | ((this: T, ...args: Parameters<F>) => Promise<AttributesType> | AttributesType), extraAttributes?: (this: T, returnValue: Awaited<ReturnType<F>>) => AttributesType): SpanDecorator<T, F>;
|
|
105
105
|
/**
|
|
106
106
|
* Runs an event callback in a span. The span is started immediately and completes once the callback finishes running.
|
|
107
107
|
* The span will have two events added: 'callbackStart' and 'callbackEnd' to mark the start and end of the callback.
|
|
@@ -113,6 +113,6 @@ export declare function trackSpan<T extends Traceable, F extends (...args: any[]
|
|
|
113
113
|
*
|
|
114
114
|
* @returns - A new function that wraps the callback in a span
|
|
115
115
|
*/
|
|
116
|
-
export declare function wrapCallbackInSpan<F extends (...args: any[]) => any>(tracer: Tracer, spanName: string, attributes:
|
|
116
|
+
export declare function wrapCallbackInSpan<F extends (...args: any[]) => any>(tracer: Tracer, spanName: string, attributes: AttributesType, callback: F): F;
|
|
117
117
|
export declare function runInSpan<A extends any[], R>(tracer: Tracer | string, spanName: string, callback: (span: Span, ...args: A) => R): (...args: A) => R;
|
|
118
118
|
//# sourceMappingURL=telemetry.d.ts.map
|
package/dest/telemetry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,qBAAqB,IAAI,yBAAyB,EACvD,KAAK,KAAK,IAAI,SAAS,EACvB,KAAK,SAAS,IAAI,aAAa,EAC/B,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,KAAK,uBAAuB,IAAI,2BAA2B,EAC3D,KAAK,aAAa,IAAI,iBAAiB,EACvC,KAAK,IAAI,EAET,MAAM,
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|
package/dest/telemetry.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { SpanStatusCode
|
|
1
|
+
import { SpanStatusCode } from '@opentelemetry/api';
|
|
2
2
|
import { isPromise } from 'node:util/types';
|
|
3
|
-
import * as Attributes from './attributes.js';
|
|
4
|
-
import * as Metrics from './metrics.js';
|
|
5
3
|
import { getTelemetryClient } from './start.js';
|
|
6
4
|
export { SpanStatusCode, ValueType } from '@opentelemetry/api';
|
|
7
|
-
export { Attributes };
|
|
8
|
-
export { Metrics };
|
|
9
5
|
/**
|
|
10
6
|
* Starts a new span whenever the decorated method is called.
|
|
11
7
|
* @param spanName - The name of the span to create. Can be a string or a function that returns a string.
|
|
@@ -20,10 +16,9 @@ export { Metrics };
|
|
|
20
16
|
*
|
|
21
17
|
* The trackSpan function takes a span's name and some attributes and builds a decorator that wraps a method in a span with the given name and props
|
|
22
18
|
* The decorator can currently only be applied to methods on classes that have a `tracer` property. The compiler will enforce this.
|
|
23
|
-
*/
|
|
24
|
-
export function trackSpan(spanName, attributes, extraAttributes) {
|
|
19
|
+
*/ export function trackSpan(spanName, attributes, extraAttributes) {
|
|
25
20
|
// the return value of trackSpan is a decorator
|
|
26
|
-
return (originalMethod, _context)
|
|
21
|
+
return (originalMethod, _context)=>{
|
|
27
22
|
// the return value of the decorator replaces the original method
|
|
28
23
|
// in this wrapper method we start a span, call the original method, and then end the span
|
|
29
24
|
return async function replacementMethod(...args) {
|
|
@@ -33,22 +28,20 @@ export function trackSpan(spanName, attributes, extraAttributes) {
|
|
|
33
28
|
// "active" means the span will be alive for the duration of the function execution
|
|
34
29
|
// and if any other spans are started during the execution of originalMethod, they will be children of this span
|
|
35
30
|
// behind the scenes this uses AsyncLocalStorage https://nodejs.org/dist/latest-v18.x/docs/api/async_context.html
|
|
36
|
-
return this.tracer.startActiveSpan(name, async (span)
|
|
31
|
+
return this.tracer.startActiveSpan(name, async (span)=>{
|
|
37
32
|
span.setAttributes(currentAttrs ?? {});
|
|
38
33
|
try {
|
|
39
34
|
const res = await originalMethod.call(this, ...args);
|
|
40
35
|
const extraAttrs = extraAttributes?.call(this, res);
|
|
41
36
|
span.setAttributes(extraAttrs ?? {});
|
|
42
37
|
return res;
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
38
|
+
} catch (err) {
|
|
45
39
|
span.setStatus({
|
|
46
40
|
code: SpanStatusCode.ERROR,
|
|
47
|
-
message: String(err)
|
|
41
|
+
message: String(err)
|
|
48
42
|
});
|
|
49
43
|
throw err;
|
|
50
|
-
}
|
|
51
|
-
finally {
|
|
44
|
+
} finally{
|
|
52
45
|
span.end();
|
|
53
46
|
}
|
|
54
47
|
});
|
|
@@ -65,61 +58,55 @@ export function trackSpan(spanName, attributes, extraAttributes) {
|
|
|
65
58
|
* @param callback - The callback to wrap in a span
|
|
66
59
|
*
|
|
67
60
|
* @returns - A new function that wraps the callback in a span
|
|
68
|
-
*/
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
61
|
+
*/ export function wrapCallbackInSpan(tracer, spanName, attributes, callback) {
|
|
62
|
+
const span = tracer.startSpan(spanName, {
|
|
63
|
+
attributes
|
|
64
|
+
});
|
|
65
|
+
return async (...args)=>{
|
|
72
66
|
try {
|
|
73
67
|
span.addEvent('callbackStart');
|
|
74
68
|
const res = await callback(...args);
|
|
75
69
|
return res;
|
|
76
|
-
}
|
|
77
|
-
catch (err) {
|
|
70
|
+
} catch (err) {
|
|
78
71
|
span.setStatus({
|
|
79
72
|
code: SpanStatusCode.ERROR,
|
|
80
|
-
message: String(err)
|
|
73
|
+
message: String(err)
|
|
81
74
|
});
|
|
82
75
|
throw err;
|
|
83
|
-
}
|
|
84
|
-
finally {
|
|
76
|
+
} finally{
|
|
85
77
|
span.addEvent('callbackEnd');
|
|
86
78
|
span.end();
|
|
87
79
|
}
|
|
88
|
-
}
|
|
80
|
+
};
|
|
89
81
|
}
|
|
90
82
|
export function runInSpan(tracer, spanName, callback) {
|
|
91
|
-
return (...args)
|
|
83
|
+
return (...args)=>{
|
|
92
84
|
const actualTracer = typeof tracer === 'string' ? getTelemetryClient().getTracer(tracer) : tracer;
|
|
93
|
-
return actualTracer.startActiveSpan(spanName, (span)
|
|
85
|
+
return actualTracer.startActiveSpan(spanName, (span)=>{
|
|
94
86
|
let deferSpanEnd = false;
|
|
95
87
|
try {
|
|
96
88
|
const res = callback(span, ...args);
|
|
97
89
|
if (isPromise(res)) {
|
|
98
90
|
deferSpanEnd = true;
|
|
99
|
-
return res
|
|
100
|
-
.catch(err => {
|
|
91
|
+
return res.catch((err)=>{
|
|
101
92
|
span.setStatus({
|
|
102
93
|
code: SpanStatusCode.ERROR,
|
|
103
|
-
message: String(err)
|
|
94
|
+
message: String(err)
|
|
104
95
|
});
|
|
105
96
|
throw err;
|
|
106
|
-
})
|
|
107
|
-
.finally(() => {
|
|
97
|
+
}).finally(()=>{
|
|
108
98
|
span.end();
|
|
109
99
|
});
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
100
|
+
} else {
|
|
112
101
|
return res;
|
|
113
102
|
}
|
|
114
|
-
}
|
|
115
|
-
catch (err) {
|
|
103
|
+
} catch (err) {
|
|
116
104
|
span.setStatus({
|
|
117
105
|
code: SpanStatusCode.ERROR,
|
|
118
|
-
message: String(err)
|
|
106
|
+
message: String(err)
|
|
119
107
|
});
|
|
120
108
|
throw err;
|
|
121
|
-
}
|
|
122
|
-
finally {
|
|
109
|
+
} finally{
|
|
123
110
|
if (!deferSpanEnd) {
|
|
124
111
|
span.end();
|
|
125
112
|
}
|
|
@@ -127,4 +114,3 @@ export function runInSpan(tracer, spanName, callback) {
|
|
|
127
114
|
});
|
|
128
115
|
};
|
|
129
116
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlbGVtZXRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBYUwsY0FBYyxHQUVmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE9BQU8sS0FBSyxVQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWhELE9BQU8sRUFBUSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBSXRCLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztBQXdHbkI7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixRQUFnRSxFQUNoRSxVQUFpRyxFQUNqRyxlQUE4RTtJQUU5RSwrQ0FBK0M7SUFDL0MsT0FBTyxDQUFDLGNBQWlCLEVBQUUsUUFBd0MsRUFBRSxFQUFFO1FBQ3JFLGlFQUFpRTtRQUNqRSwwRkFBMEY7UUFDMUYsT0FBTyxLQUFLLFVBQVUsaUJBQWlCLENBQVUsR0FBRyxJQUFtQjtZQUNyRSxNQUFNLElBQUksR0FBRyxPQUFPLFFBQVEsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUN0RixNQUFNLFlBQVksR0FBRyxPQUFPLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBRTFHLCtDQUEr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
|
|
@@ -3,4 +3,3 @@ export const ATTR_JSONRPC_METHOD = 'rpc.method';
|
|
|
3
3
|
export const ATTR_JSONRPC_REQUEST_ID = 'rpc.jsonrpc.request_id';
|
|
4
4
|
export const ATTR_JSONRPC_ERROR_CODE = 'rpc.jsonrpc.error_code';
|
|
5
5
|
export const ATTR_JSONRPC_ERROR_MSG = 'rpc.jsonrpc.error_message';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZW5kb3IvYXR0cmlidXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnRUFBZ0U7QUFDaEUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsWUFBWSxDQUFDO0FBQ2hELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLHdCQUF3QixDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLHdCQUF3QixDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLDJCQUEyQixDQUFDIn0=
|