@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
package/dest/otel.js
CHANGED
|
@@ -1,20 +1,26 @@
|
|
|
1
1
|
import { addLogDataHandler } from '@aztec/foundation/log';
|
|
2
|
-
import {
|
|
3
|
-
import { TraceExporter as GoogleCloudTraceExporter } from '@google-cloud/opentelemetry-cloud-trace-exporter';
|
|
4
|
-
import { DiagConsoleLogger, DiagLogLevel, context, diag, isSpanContextValid, trace, } from '@opentelemetry/api';
|
|
2
|
+
import { DiagConsoleLogger, DiagLogLevel, context, diag, isSpanContextValid, trace } from '@opentelemetry/api';
|
|
5
3
|
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';
|
|
6
4
|
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
7
5
|
import { HostMetrics } from '@opentelemetry/host-metrics';
|
|
8
|
-
import { ExplicitBucketHistogramAggregation, InstrumentType, MeterProvider, PeriodicExportingMetricReader, View
|
|
6
|
+
import { ExplicitBucketHistogramAggregation, InstrumentType, MeterProvider, PeriodicExportingMetricReader, View } from '@opentelemetry/sdk-metrics';
|
|
9
7
|
import { BatchSpanProcessor, NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
|
|
10
8
|
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
|
|
11
9
|
import { EventLoopMonitor } from './event_loop_monitor.js';
|
|
12
|
-
import { linearBuckets } from './histogram_utils.js';
|
|
13
10
|
import { OtelFilterMetricExporter } from './otel_filter_metric_exporter.js';
|
|
14
11
|
import { registerOtelLoggerProvider } from './otel_logger_provider.js';
|
|
15
12
|
import { getOtelResource } from './otel_resource.js';
|
|
16
13
|
export class OpenTelemetryClient {
|
|
17
|
-
|
|
14
|
+
resource;
|
|
15
|
+
meterProvider;
|
|
16
|
+
traceProvider;
|
|
17
|
+
loggerProvider;
|
|
18
|
+
log;
|
|
19
|
+
hostMetrics;
|
|
20
|
+
eventLoopMonitor;
|
|
21
|
+
meters;
|
|
22
|
+
tracers;
|
|
23
|
+
constructor(resource, meterProvider, traceProvider, loggerProvider, log){
|
|
18
24
|
this.resource = resource;
|
|
19
25
|
this.meterProvider = meterProvider;
|
|
20
26
|
this.traceProvider = traceProvider;
|
|
@@ -44,29 +50,20 @@ export class OpenTelemetryClient {
|
|
|
44
50
|
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.INFO);
|
|
45
51
|
// Add a callback to the logger to set context data from current trace
|
|
46
52
|
// Adapted from open-telemetry/opentelemetry-js-contrib PinoInstrumentation._getMixinFunction
|
|
47
|
-
addLogDataHandler((data)
|
|
53
|
+
addLogDataHandler((data)=>{
|
|
48
54
|
const spanContext = trace.getSpan(context.active())?.spanContext();
|
|
49
|
-
return spanContext && isSpanContextValid(spanContext)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
: data;
|
|
55
|
+
return spanContext && isSpanContextValid(spanContext) ? {
|
|
56
|
+
...data,
|
|
57
|
+
['trace_id']: spanContext.traceId,
|
|
58
|
+
['span_id']: spanContext.spanId,
|
|
59
|
+
['trace_flags']: `0${spanContext.traceFlags.toString(16)}`
|
|
60
|
+
} : data;
|
|
57
61
|
});
|
|
58
62
|
this.hostMetrics = new HostMetrics({
|
|
59
63
|
name: this.resource.attributes[ATTR_SERVICE_NAME],
|
|
60
|
-
meterProvider: this.meterProvider
|
|
64
|
+
meterProvider: this.meterProvider
|
|
61
65
|
});
|
|
62
66
|
this.eventLoopMonitor = new EventLoopMonitor(this.meterProvider.getMeter(this.resource.attributes[ATTR_SERVICE_NAME]));
|
|
63
|
-
// See these two links for more information on providing target information:
|
|
64
|
-
// https://opentelemetry.io/docs/specs/otel/compatibility/prometheus_and_openmetrics/#resource-attributes
|
|
65
|
-
// https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#supporting-target-metadata-in-both-push-based-and-pull-based-systems
|
|
66
|
-
this.targetInfo = this.meterProvider.getMeter('target').createGauge('target_info', {
|
|
67
|
-
description: 'Target metadata',
|
|
68
|
-
});
|
|
69
|
-
this.targetInfo.record(1, this.resource.attributes);
|
|
70
67
|
this.hostMetrics.start();
|
|
71
68
|
this.eventLoopMonitor.start();
|
|
72
69
|
}
|
|
@@ -77,12 +74,12 @@ export class OpenTelemetryClient {
|
|
|
77
74
|
await Promise.all([
|
|
78
75
|
this.meterProvider.forceFlush(),
|
|
79
76
|
this.loggerProvider?.forceFlush(),
|
|
80
|
-
this.traceProvider instanceof NodeTracerProvider ? this.traceProvider.forceFlush() : Promise.resolve()
|
|
77
|
+
this.traceProvider instanceof NodeTracerProvider ? this.traceProvider.forceFlush() : Promise.resolve()
|
|
81
78
|
]);
|
|
82
79
|
}
|
|
83
80
|
async stop() {
|
|
84
81
|
this.eventLoopMonitor?.stop();
|
|
85
|
-
const flushAndShutdown = async (provider)
|
|
82
|
+
const flushAndShutdown = async (provider)=>{
|
|
86
83
|
if (!provider) {
|
|
87
84
|
return;
|
|
88
85
|
}
|
|
@@ -92,112 +89,219 @@ export class OpenTelemetryClient {
|
|
|
92
89
|
await Promise.all([
|
|
93
90
|
flushAndShutdown(this.meterProvider),
|
|
94
91
|
flushAndShutdown(this.loggerProvider),
|
|
95
|
-
this.traceProvider instanceof NodeTracerProvider ? flushAndShutdown(this.traceProvider) : Promise.resolve()
|
|
92
|
+
this.traceProvider instanceof NodeTracerProvider ? flushAndShutdown(this.traceProvider) : Promise.resolve()
|
|
96
93
|
]);
|
|
97
94
|
}
|
|
98
95
|
static createMeterProvider(resource, options) {
|
|
99
96
|
return new MeterProvider({
|
|
100
97
|
resource,
|
|
101
|
-
readers: options.exporter
|
|
102
|
-
|
|
103
|
-
|
|
98
|
+
readers: options.exporter ? [
|
|
99
|
+
new PeriodicExportingMetricReader(options)
|
|
100
|
+
] : [],
|
|
104
101
|
views: [
|
|
105
102
|
// Every histogram matching the selector (type + unit) gets these custom buckets assigned
|
|
103
|
+
new View({
|
|
104
|
+
instrumentType: InstrumentType.HISTOGRAM,
|
|
105
|
+
instrumentUnit: 's',
|
|
106
|
+
aggregation: new ExplicitBucketHistogramAggregation([
|
|
107
|
+
1,
|
|
108
|
+
2,
|
|
109
|
+
4,
|
|
110
|
+
6,
|
|
111
|
+
10,
|
|
112
|
+
15,
|
|
113
|
+
30,
|
|
114
|
+
60,
|
|
115
|
+
90,
|
|
116
|
+
120,
|
|
117
|
+
180,
|
|
118
|
+
240,
|
|
119
|
+
300,
|
|
120
|
+
480,
|
|
121
|
+
600
|
|
122
|
+
], true)
|
|
123
|
+
}),
|
|
106
124
|
new View({
|
|
107
125
|
instrumentType: InstrumentType.HISTOGRAM,
|
|
108
126
|
instrumentUnit: 'ms',
|
|
109
|
-
aggregation: new ExplicitBucketHistogramAggregation(
|
|
110
|
-
// 181 buckets between 5ms and 1hr
|
|
127
|
+
aggregation: new ExplicitBucketHistogramAggregation(// 10ms to 1 minute
|
|
111
128
|
[
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
129
|
+
10,
|
|
130
|
+
20,
|
|
131
|
+
35,
|
|
132
|
+
50,
|
|
133
|
+
75,
|
|
134
|
+
100,
|
|
135
|
+
250,
|
|
136
|
+
500,
|
|
137
|
+
750,
|
|
138
|
+
1_000,
|
|
139
|
+
2_500,
|
|
140
|
+
5_000,
|
|
141
|
+
7_500,
|
|
142
|
+
10_000,
|
|
143
|
+
15_000,
|
|
144
|
+
30_000,
|
|
145
|
+
60_000
|
|
146
|
+
], true)
|
|
122
147
|
}),
|
|
123
148
|
new View({
|
|
124
149
|
instrumentType: InstrumentType.HISTOGRAM,
|
|
125
150
|
instrumentUnit: 'us',
|
|
126
|
-
aggregation: new ExplicitBucketHistogramAggregation(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
151
|
+
aggregation: new ExplicitBucketHistogramAggregation(// 1us to 1s
|
|
152
|
+
[
|
|
153
|
+
5,
|
|
154
|
+
10,
|
|
155
|
+
25,
|
|
156
|
+
50,
|
|
157
|
+
75,
|
|
158
|
+
100,
|
|
159
|
+
250,
|
|
160
|
+
500,
|
|
161
|
+
750,
|
|
162
|
+
1_000,
|
|
163
|
+
2_500,
|
|
164
|
+
5_000,
|
|
165
|
+
7_500,
|
|
166
|
+
10_000,
|
|
167
|
+
25_000,
|
|
168
|
+
50_000,
|
|
169
|
+
100_000,
|
|
170
|
+
250_000,
|
|
171
|
+
500_000,
|
|
172
|
+
1_000_000
|
|
173
|
+
], true)
|
|
134
174
|
}),
|
|
135
175
|
new View({
|
|
136
176
|
instrumentType: InstrumentType.HISTOGRAM,
|
|
137
177
|
instrumentUnit: 'By',
|
|
138
|
-
aggregation: new ExplicitBucketHistogramAggregation(
|
|
139
|
-
// 143 buckets between 32 bytes and 2MB
|
|
178
|
+
aggregation: new ExplicitBucketHistogramAggregation(// from 32 bytes to 2MB
|
|
140
179
|
[
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
180
|
+
32,
|
|
181
|
+
64,
|
|
182
|
+
128,
|
|
183
|
+
256,
|
|
184
|
+
512,
|
|
185
|
+
1024,
|
|
186
|
+
2048,
|
|
187
|
+
4096,
|
|
188
|
+
8192,
|
|
189
|
+
16384,
|
|
190
|
+
32768,
|
|
191
|
+
65536,
|
|
192
|
+
131072,
|
|
193
|
+
262144,
|
|
194
|
+
524288,
|
|
195
|
+
1048576,
|
|
196
|
+
1572864,
|
|
197
|
+
2097152
|
|
198
|
+
], true)
|
|
147
199
|
}),
|
|
148
200
|
new View({
|
|
149
201
|
instrumentType: InstrumentType.HISTOGRAM,
|
|
150
202
|
instrumentUnit: 'gas/s',
|
|
151
|
-
aggregation: new ExplicitBucketHistogramAggregation([
|
|
203
|
+
aggregation: new ExplicitBucketHistogramAggregation([
|
|
204
|
+
1_000,
|
|
205
|
+
5_000,
|
|
206
|
+
10_000,
|
|
207
|
+
25_000,
|
|
208
|
+
50_000,
|
|
209
|
+
100_000,
|
|
210
|
+
250_000,
|
|
211
|
+
500_000,
|
|
212
|
+
750_000,
|
|
213
|
+
1_000_000,
|
|
214
|
+
2_000_000,
|
|
215
|
+
4_000_000,
|
|
216
|
+
8_000_000,
|
|
217
|
+
10_000_000,
|
|
218
|
+
15_000_000,
|
|
219
|
+
30_000_000
|
|
220
|
+
], true)
|
|
152
221
|
}),
|
|
153
222
|
new View({
|
|
154
223
|
instrumentType: InstrumentType.HISTOGRAM,
|
|
155
224
|
instrumentUnit: 'mana/s',
|
|
156
|
-
aggregation: new ExplicitBucketHistogramAggregation([
|
|
225
|
+
aggregation: new ExplicitBucketHistogramAggregation([
|
|
226
|
+
1_000,
|
|
227
|
+
5_000,
|
|
228
|
+
10_000,
|
|
229
|
+
25_000,
|
|
230
|
+
50_000,
|
|
231
|
+
100_000,
|
|
232
|
+
250_000,
|
|
233
|
+
500_000,
|
|
234
|
+
750_000,
|
|
235
|
+
1_000_000,
|
|
236
|
+
2_000_000,
|
|
237
|
+
4_000_000,
|
|
238
|
+
8_000_000,
|
|
239
|
+
10_000_000,
|
|
240
|
+
15_000_000,
|
|
241
|
+
30_000_000
|
|
242
|
+
], true)
|
|
157
243
|
}),
|
|
158
244
|
new View({
|
|
159
245
|
instrumentType: InstrumentType.HISTOGRAM,
|
|
160
246
|
instrumentUnit: 'gas/block',
|
|
161
|
-
aggregation: new ExplicitBucketHistogramAggregation([
|
|
247
|
+
aggregation: new ExplicitBucketHistogramAggregation([
|
|
248
|
+
1_000,
|
|
249
|
+
5_000,
|
|
250
|
+
10_000,
|
|
251
|
+
25_000,
|
|
252
|
+
50_000,
|
|
253
|
+
100_000,
|
|
254
|
+
250_000,
|
|
255
|
+
500_000,
|
|
256
|
+
750_000,
|
|
257
|
+
1_000_000,
|
|
258
|
+
2_000_000,
|
|
259
|
+
4_000_000,
|
|
260
|
+
8_000_000,
|
|
261
|
+
10_000_000,
|
|
262
|
+
15_000_000,
|
|
263
|
+
30_000_000
|
|
264
|
+
], true)
|
|
162
265
|
}),
|
|
163
266
|
new View({
|
|
164
267
|
instrumentType: InstrumentType.HISTOGRAM,
|
|
165
268
|
instrumentUnit: 'gas/tx',
|
|
166
|
-
aggregation: new ExplicitBucketHistogramAggregation([
|
|
167
|
-
|
|
168
|
-
|
|
269
|
+
aggregation: new ExplicitBucketHistogramAggregation([
|
|
270
|
+
25_000,
|
|
271
|
+
50_000,
|
|
272
|
+
100_000,
|
|
273
|
+
250_000,
|
|
274
|
+
500_000,
|
|
275
|
+
750_000,
|
|
276
|
+
1_000_000,
|
|
277
|
+
2_000_000,
|
|
278
|
+
4_000_000,
|
|
279
|
+
8_000_000,
|
|
280
|
+
10_000_000,
|
|
281
|
+
15_000_000,
|
|
282
|
+
30_000_000
|
|
283
|
+
], true)
|
|
284
|
+
})
|
|
285
|
+
]
|
|
169
286
|
});
|
|
170
287
|
}
|
|
171
|
-
static getGcloudClientFactory(config) {
|
|
172
|
-
return (resource, log) => {
|
|
173
|
-
const tracerProvider = new NodeTracerProvider({
|
|
174
|
-
resource,
|
|
175
|
-
spanProcessors: [new BatchSpanProcessor(new GoogleCloudTraceExporter({ resourceFilter: /.*/ }))],
|
|
176
|
-
});
|
|
177
|
-
tracerProvider.register();
|
|
178
|
-
const meterProvider = OpenTelemetryClient.createMeterProvider(resource, {
|
|
179
|
-
exporter: new OtelFilterMetricExporter(new GoogleCloudMetricExporter(), config.otelExcludeMetrics ?? []),
|
|
180
|
-
exportTimeoutMillis: config.otelExportTimeoutMs,
|
|
181
|
-
exportIntervalMillis: config.otelCollectIntervalMs,
|
|
182
|
-
});
|
|
183
|
-
return new OpenTelemetryClient(resource, meterProvider, tracerProvider, undefined, log);
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
288
|
static getCustomClientFactory(config) {
|
|
187
|
-
return (resource, log)
|
|
289
|
+
return (resource, log)=>{
|
|
188
290
|
const tracerProvider = new NodeTracerProvider({
|
|
189
291
|
resource,
|
|
190
|
-
spanProcessors: config.tracesCollectorUrl
|
|
191
|
-
|
|
192
|
-
|
|
292
|
+
spanProcessors: config.tracesCollectorUrl ? [
|
|
293
|
+
new BatchSpanProcessor(new OTLPTraceExporter({
|
|
294
|
+
url: config.tracesCollectorUrl.href
|
|
295
|
+
}))
|
|
296
|
+
] : []
|
|
193
297
|
});
|
|
194
298
|
tracerProvider.register();
|
|
195
299
|
const meterProvider = OpenTelemetryClient.createMeterProvider(resource, {
|
|
196
|
-
exporter: config.metricsCollectorUrl
|
|
197
|
-
|
|
198
|
-
|
|
300
|
+
exporter: config.metricsCollectorUrl ? new OtelFilterMetricExporter(new OTLPMetricExporter({
|
|
301
|
+
url: config.metricsCollectorUrl.href
|
|
302
|
+
}), config.otelExcludeMetrics ?? []) : undefined,
|
|
199
303
|
exportTimeoutMillis: config.otelExportTimeoutMs,
|
|
200
|
-
exportIntervalMillis: config.otelCollectIntervalMs
|
|
304
|
+
exportIntervalMillis: config.otelCollectIntervalMs
|
|
201
305
|
});
|
|
202
306
|
const loggerProvider = registerOtelLoggerProvider(resource, config.logsCollectorUrl);
|
|
203
307
|
return new OpenTelemetryClient(resource, meterProvider, tracerProvider, loggerProvider, log);
|
|
@@ -205,12 +309,9 @@ export class OpenTelemetryClient {
|
|
|
205
309
|
}
|
|
206
310
|
static createAndStart(config, log) {
|
|
207
311
|
const resource = getOtelResource();
|
|
208
|
-
const factory = config
|
|
209
|
-
? OpenTelemetryClient.getGcloudClientFactory(config)
|
|
210
|
-
: OpenTelemetryClient.getCustomClientFactory(config);
|
|
312
|
+
const factory = OpenTelemetryClient.getCustomClientFactory(config);
|
|
211
313
|
const service = factory(resource, log);
|
|
212
314
|
service.start();
|
|
213
315
|
return service;
|
|
214
316
|
}
|
|
215
317
|
}
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vdGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkIsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRixPQUFPLEVBQUUsY0FBYyxJQUFJLHlCQUF5QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEgsT0FBTyxFQUFFLGFBQWEsSUFBSSx3QkFBd0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdHLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsWUFBWSxFQUlaLE9BQU8sRUFDUCxJQUFJLEVBQ0osa0JBQWtCLEVBQ2xCLEtBQUssR0FDTixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUcxRCxPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLGNBQWMsRUFDZCxhQUFhLEVBQ2IsNkJBQTZCLEVBRTdCLElBQUksR0FDTCxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRzlGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JB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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { ExportResult } from '@opentelemetry/core';
|
|
2
|
+
import type { PushMetricExporter, ResourceMetrics } from '@opentelemetry/sdk-metrics';
|
|
3
3
|
export declare class OtelFilterMetricExporter implements PushMetricExporter {
|
|
4
4
|
private readonly exporter;
|
|
5
5
|
private readonly excludeMetricPrefixes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel_filter_metric_exporter.d.ts","sourceRoot":"","sources":["../src/otel_filter_metric_exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAsB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAApE,QAAQ,EAAE,kBAAkB,EAAmB,qBAAqB,EAAE,MAAM,EAAE;IASpG,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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export class OtelFilterMetricExporter {
|
|
2
|
-
|
|
2
|
+
exporter;
|
|
3
|
+
excludeMetricPrefixes;
|
|
4
|
+
constructor(exporter, excludeMetricPrefixes){
|
|
3
5
|
this.exporter = exporter;
|
|
4
6
|
this.excludeMetricPrefixes = excludeMetricPrefixes;
|
|
5
7
|
if (exporter.selectAggregation) {
|
|
@@ -12,14 +14,15 @@ export class OtelFilterMetricExporter {
|
|
|
12
14
|
export(metrics, resultCallback) {
|
|
13
15
|
const filteredMetrics = {
|
|
14
16
|
resource: metrics.resource,
|
|
15
|
-
scopeMetrics: metrics.scopeMetrics
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
scopeMetrics: metrics.scopeMetrics.map(({ scope, metrics })=>({
|
|
18
|
+
scope,
|
|
19
|
+
metrics: this.filterMetrics(metrics)
|
|
20
|
+
})).filter(({ metrics })=>metrics.length > 0)
|
|
18
21
|
};
|
|
19
22
|
this.exporter.export(filteredMetrics, resultCallback);
|
|
20
23
|
}
|
|
21
24
|
filterMetrics(metrics) {
|
|
22
|
-
return metrics.filter(metric
|
|
25
|
+
return metrics.filter((metric)=>!this.excludeMetricPrefixes.some((prefix)=>metric.descriptor.name.startsWith(prefix)));
|
|
23
26
|
}
|
|
24
27
|
forceFlush() {
|
|
25
28
|
return this.exporter.forceFlush();
|
|
@@ -28,4 +31,3 @@ export class OtelFilterMetricExporter {
|
|
|
28
31
|
return this.exporter.shutdown();
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RlbF9maWx0ZXJfbWV0cmljX2V4cG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL290ZWxfZmlsdGVyX21ldHJpY19leHBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQTZCLFFBQTRCLEVBQW1CLHFCQUErQjtRQUE5RSxhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUFtQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQVU7UUFDekcsSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM5QixJQUEyQixDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDekMsSUFBMkIsQ0FBQyw0QkFBNEIsR0FBRyxRQUFRLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ILENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQXdCLEVBQUUsY0FBOEM7UUFDcEYsTUFBTSxlQUFlLEdBQW9CO1lBQ3ZDLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtZQUMxQixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7aUJBQy9CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDOUUsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDL0MsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU8sYUFBYSxDQUFDLE9BQXFCO1FBQ3pDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDaEcsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDRiJ9
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { IResource } from '@opentelemetry/resources';
|
|
2
2
|
import { LoggerProvider } from '@opentelemetry/sdk-logs';
|
|
3
3
|
export declare function registerOtelLoggerProvider(resource: IResource, otelLogsUrl?: URL): LoggerProvider;
|
|
4
4
|
//# sourceMappingURL=otel_logger_provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel_logger_provider.d.ts","sourceRoot":"","sources":["../src/otel_logger_provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"otel_logger_provider.d.ts","sourceRoot":"","sources":["../src/otel_logger_provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAA2B,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAElF,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,GAAG,kBAwBhF"}
|
|
@@ -3,24 +3,23 @@ import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
|
|
|
3
3
|
import { CompressionAlgorithm } from '@opentelemetry/otlp-exporter-base';
|
|
4
4
|
import { BatchLogRecordProcessor, LoggerProvider } from '@opentelemetry/sdk-logs';
|
|
5
5
|
export function registerOtelLoggerProvider(resource, otelLogsUrl) {
|
|
6
|
-
const loggerProvider = new LoggerProvider({
|
|
6
|
+
const loggerProvider = new LoggerProvider({
|
|
7
|
+
resource
|
|
8
|
+
});
|
|
7
9
|
if (!otelLogsUrl) {
|
|
8
10
|
// If no URL provided, return it disconnected.
|
|
9
11
|
return loggerProvider;
|
|
10
12
|
}
|
|
11
13
|
const logExporter = new OTLPLogExporter({
|
|
12
14
|
compression: CompressionAlgorithm.GZIP,
|
|
13
|
-
url: otelLogsUrl.href
|
|
15
|
+
url: otelLogsUrl.href
|
|
14
16
|
});
|
|
15
17
|
// Add a processor to the logger provider
|
|
16
18
|
loggerProvider.addLogRecordProcessor(new BatchLogRecordProcessor(logExporter, {
|
|
17
19
|
/** The maximum batch size of every export. It must be smaller or equal to
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
/** The maximum queue size. After the size is reached log records are dropped. */
|
|
21
|
-
maxQueueSize: 4096,
|
|
20
|
+
* maxQueueSize. */ maxExportBatchSize: 1024,
|
|
21
|
+
/** The maximum queue size. After the size is reached log records are dropped. */ maxQueueSize: 4096
|
|
22
22
|
}));
|
|
23
23
|
otelLogs.setGlobalLoggerProvider(loggerProvider);
|
|
24
24
|
return loggerProvider;
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RlbF9sb2dnZXJfcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvb3RlbF9sb2dnZXJfcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxGLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxRQUFtQixFQUFFLFdBQWlCO0lBQy9FLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsOENBQThDO1FBQzlDLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQztRQUN0QyxXQUFXLEVBQUUsb0JBQW9CLENBQUMsSUFBSTtRQUN0QyxHQUFHLEVBQUUsV0FBVyxDQUFDLElBQUk7S0FDdEIsQ0FBQyxDQUFDO0lBQ0gseUNBQXlDO0lBQ3pDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FDbEMsSUFBSSx1QkFBdUIsQ0FBQyxXQUFXLEVBQUU7UUFDdkM7MkJBQ21CO1FBQ25CLGtCQUFrQixFQUFFLElBQUk7UUFDeEIsaUZBQWlGO1FBQ2pGLFlBQVksRUFBRSxJQUFJO0tBQ25CLENBQUMsQ0FDSCxDQUFDO0lBRUYsUUFBUSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRWpELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUMifQ==
|
package/dest/otel_propagation.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { ROOT_CONTEXT, SpanKind, SpanStatusCode, propagation } from '@opentelemetry/api';
|
|
2
2
|
import { getTelemetryClient } from './start.js';
|
|
3
|
-
import { ATTR_JSONRPC_ERROR_CODE, ATTR_JSONRPC_ERROR_MSG, ATTR_JSONRPC_METHOD, ATTR_JSONRPC_REQUEST_ID
|
|
3
|
+
import { ATTR_JSONRPC_ERROR_CODE, ATTR_JSONRPC_ERROR_MSG, ATTR_JSONRPC_METHOD, ATTR_JSONRPC_REQUEST_ID } from './vendor/attributes.js';
|
|
4
4
|
export function getOtelJsonRpcPropagationMiddleware(scope = 'JsonRpcServer') {
|
|
5
5
|
return function otelJsonRpcPropagation(ctx, next) {
|
|
6
6
|
const tracer = getTelemetryClient().getTracer(scope);
|
|
7
7
|
const context = propagation.extract(ROOT_CONTEXT, ctx.request.headers);
|
|
8
8
|
const method = ctx.request.body?.method;
|
|
9
|
-
return tracer.startActiveSpan(`JsonRpcServer.${method ?? 'unknown'}`, {
|
|
9
|
+
return tracer.startActiveSpan(`JsonRpcServer.${method ?? 'unknown'}`, {
|
|
10
|
+
kind: SpanKind.SERVER
|
|
11
|
+
}, context, async (span)=>{
|
|
10
12
|
if (ctx.id) {
|
|
11
13
|
span.setAttribute(ATTR_JSONRPC_REQUEST_ID, ctx.id);
|
|
12
14
|
}
|
|
@@ -18,21 +20,25 @@ export function getOtelJsonRpcPropagationMiddleware(scope = 'JsonRpcServer') {
|
|
|
18
20
|
const err = ctx.body.error?.message;
|
|
19
21
|
const code = ctx.body.error?.code;
|
|
20
22
|
if (err) {
|
|
21
|
-
span.setStatus({
|
|
23
|
+
span.setStatus({
|
|
24
|
+
code: SpanStatusCode.ERROR,
|
|
25
|
+
message: err
|
|
26
|
+
});
|
|
22
27
|
span.setAttribute(ATTR_JSONRPC_ERROR_CODE, code);
|
|
23
28
|
span.setAttribute(ATTR_JSONRPC_ERROR_MSG, err);
|
|
29
|
+
} else {
|
|
30
|
+
span.setStatus({
|
|
31
|
+
code: SpanStatusCode.OK
|
|
32
|
+
});
|
|
24
33
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
finally {
|
|
34
|
+
} catch (err) {
|
|
35
|
+
span.setStatus({
|
|
36
|
+
code: SpanStatusCode.ERROR,
|
|
37
|
+
message: String(err)
|
|
38
|
+
});
|
|
39
|
+
} finally{
|
|
33
40
|
span.end();
|
|
34
41
|
}
|
|
35
42
|
});
|
|
36
43
|
};
|
|
37
44
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RlbF9wcm9wYWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vdGVsX3Byb3BhZ2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQWEsUUFBUSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdwRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLHVCQUF1QixHQUN4QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE1BQU0sVUFBVSxtQ0FBbUMsQ0FDakQsS0FBSyxHQUFHLGVBQWU7SUFFdkIsT0FBTyxTQUFTLHNCQUFzQixDQUFDLEdBQWdCLEVBQUUsSUFBeUI7UUFDaEYsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RSxNQUFNLE1BQU0sR0FBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQVksRUFBRSxNQUFNLENBQUM7UUFDakQsT0FBTyxNQUFNLENBQUMsZUFBZSxDQUMzQixpQkFBaUIsTUFBTSxJQUFJLFNBQVMsRUFBRSxFQUN0QyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQ3pCLE9BQU8sRUFDUCxLQUFLLEVBQUUsSUFBVSxFQUFpQixFQUFFO1lBQ2xDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELENBQUM7WUFDRCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUVELElBQUksQ0FBQztnQkFDSCxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUNiLE1BQU0sR0FBRyxHQUFJLEdBQUcsQ0FBQyxJQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztnQkFDN0MsTUFBTSxJQUFJLEdBQUksR0FBRyxDQUFDLElBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO2dCQUMzQyxJQUFJLEdBQUcsRUFBRSxDQUFDO29CQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDakQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzlDLENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkUsQ0FBQztvQkFBUyxDQUFDO2dCQUNULElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNiLENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel_resource.d.ts","sourceRoot":"","sources":["../src/otel_resource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"otel_resource.d.ts","sourceRoot":"","sources":["../src/otel_resource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,eAAe,IAAI,SAAS,CAM3C"}
|
package/dest/otel_resource.js
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { detectResourcesSync, envDetectorSync, osDetectorSync, processDetectorSync, serviceInstanceIdDetectorSync, } from '@opentelemetry/resources';
|
|
3
|
-
import { aztecDetector } from './aztec_resource_detector.js';
|
|
1
|
+
import { detectResourcesSync, envDetectorSync, osDetectorSync, processDetectorSync, serviceInstanceIdDetectorSync } from '@opentelemetry/resources';
|
|
4
2
|
export function getOtelResource() {
|
|
5
3
|
const resource = detectResourcesSync({
|
|
6
4
|
detectors: [
|
|
7
5
|
osDetectorSync,
|
|
8
6
|
envDetectorSync,
|
|
9
7
|
processDetectorSync,
|
|
10
|
-
serviceInstanceIdDetectorSync
|
|
11
|
-
|
|
12
|
-
new GcpDetectorSync(),
|
|
13
|
-
],
|
|
8
|
+
serviceInstanceIdDetectorSync
|
|
9
|
+
]
|
|
14
10
|
});
|
|
15
11
|
return resource;
|
|
16
12
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RlbF9yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vdGVsX3Jlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLDZCQUE2QixHQUM5QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxNQUFNLFVBQVUsZUFBZTtJQUM3QixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQztRQUNuQyxTQUFTLEVBQUU7WUFDVCxjQUFjO1lBQ2QsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQiw2QkFBNkI7WUFDN0IsYUFBYTtZQUNiLElBQUksZUFBZSxFQUFFO1NBQ3RCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyJ9
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Logger } from '@aztec/foundation/log';
|
|
2
2
|
import { Registry } from 'prom-client';
|
|
3
|
-
import {
|
|
3
|
+
import type { Meter, TelemetryClient } from './telemetry.js';
|
|
4
4
|
/**
|
|
5
5
|
* Types matching the gossipsub and libp2p services
|
|
6
6
|
*/
|
|
@@ -48,7 +48,7 @@ export interface MetricsRegister {
|
|
|
48
48
|
histogram<Labels extends LabelsGeneric = NoLabels>(config: HistogramConfig<Labels>): IHistogram<Labels>;
|
|
49
49
|
avgMinMax<Labels extends LabelsGeneric = NoLabels>(config: AvgMinMaxConfig<Labels>): IAvgMinMax<Labels>;
|
|
50
50
|
}
|
|
51
|
-
/**Otel
|
|
51
|
+
/**Otel MetricsType Adapters
|
|
52
52
|
*
|
|
53
53
|
* Some dependencies we use export metrics directly in a Prometheus format
|
|
54
54
|
* This adapter is used to convert those metrics to a format that we can use with OpenTelemetry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prom_otel_adapter.d.ts","sourceRoot":"","sources":["../src/prom_otel_adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"prom_otel_adapter.d.ts","sourceRoot":"","sources":["../src/prom_otel_adapter.ts"],"names":[],"mappings":"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"}
|