@aztec/telemetry-client 4.0.0-nightly.20260108 → 4.0.0-nightly.20260111
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/bench.d.ts +1 -1
- package/dest/bench.d.ts.map +1 -1
- package/dest/bench.js +18 -14
- package/dest/l1_metrics.d.ts +2 -2
- package/dest/l1_metrics.d.ts.map +1 -1
- package/dest/l1_metrics.js +4 -20
- package/dest/lmdb_metrics.d.ts +2 -2
- package/dest/lmdb_metrics.d.ts.map +1 -1
- package/dest/lmdb_metrics.js +4 -20
- package/dest/metric-utils.d.ts +5 -0
- package/dest/metric-utils.d.ts.map +1 -0
- package/dest/metric-utils.js +7 -0
- package/dest/metrics.d.ts +246 -224
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +1237 -222
- package/dest/nodejs_metrics_monitor.d.ts +3 -5
- package/dest/nodejs_metrics_monitor.d.ts.map +1 -1
- package/dest/nodejs_metrics_monitor.js +14 -41
- package/dest/noop.d.ts +4 -3
- package/dest/noop.d.ts.map +1 -1
- package/dest/noop.js +26 -1
- package/dest/otel.d.ts +3 -3
- package/dest/otel.d.ts.map +1 -1
- package/dest/otel.js +35 -2
- package/dest/prom_otel_adapter.d.ts +1 -1
- package/dest/prom_otel_adapter.d.ts.map +1 -1
- package/dest/prom_otel_adapter.js +15 -7
- package/dest/telemetry.d.ts +18 -21
- package/dest/telemetry.d.ts.map +1 -1
- package/dest/telemetry.js +1 -0
- package/package.json +3 -3
- package/src/bench.ts +19 -15
- package/src/l1_metrics.ts +5 -20
- package/src/lmdb_metrics.ts +5 -26
- package/src/metric-utils.ts +12 -0
- package/src/metrics.ts +1289 -250
- package/src/nodejs_metrics_monitor.ts +16 -52
- package/src/noop.ts +53 -10
- package/src/otel.ts +56 -5
- package/src/prom_otel_adapter.ts +12 -18
- package/src/telemetry.ts +18 -20
|
@@ -3,17 +3,9 @@ import { type EventLoopUtilization, type IntervalHistogram, monitorEventLoopDela
|
|
|
3
3
|
|
|
4
4
|
import * as Attributes from './attributes.js';
|
|
5
5
|
import * as Metrics from './metrics.js';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
type ObservableGauge,
|
|
10
|
-
type UpDownCounter,
|
|
11
|
-
ValueType,
|
|
12
|
-
} from './telemetry.js';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Detector for custom Aztec attributes
|
|
16
|
-
*/
|
|
6
|
+
import type { BatchObservableResult, Meter, ObservableGauge, UpDownCounter } from './telemetry.js';
|
|
7
|
+
|
|
8
|
+
/** Monitors Node.js runtime metrics */
|
|
17
9
|
export class NodejsMetricsMonitor {
|
|
18
10
|
private eventLoopDelayGauges: {
|
|
19
11
|
min: ObservableGauge;
|
|
@@ -38,53 +30,25 @@ export class NodejsMetricsMonitor {
|
|
|
38
30
|
private eventLoopDelay: IntervalHistogram;
|
|
39
31
|
|
|
40
32
|
constructor(private meter: Meter) {
|
|
41
|
-
const nsObsGauge = (name: (typeof Metrics)[keyof typeof Metrics], description: string) =>
|
|
42
|
-
meter.createObservableGauge(name, {
|
|
43
|
-
unit: 'ns',
|
|
44
|
-
valueType: ValueType.INT,
|
|
45
|
-
description,
|
|
46
|
-
});
|
|
47
|
-
|
|
48
33
|
this.eventLoopDelayGauges = {
|
|
49
|
-
min:
|
|
50
|
-
mean:
|
|
51
|
-
max:
|
|
52
|
-
stddev:
|
|
53
|
-
p50:
|
|
54
|
-
p90:
|
|
55
|
-
p99:
|
|
34
|
+
min: meter.createObservableGauge(Metrics.NODEJS_EVENT_LOOP_DELAY_MIN),
|
|
35
|
+
mean: meter.createObservableGauge(Metrics.NODEJS_EVENT_LOOP_DELAY_MEAN),
|
|
36
|
+
max: meter.createObservableGauge(Metrics.NODEJS_EVENT_LOOP_DELAY_MAX),
|
|
37
|
+
stddev: meter.createObservableGauge(Metrics.NODEJS_EVENT_LOOP_DELAY_STDDEV),
|
|
38
|
+
p50: meter.createObservableGauge(Metrics.NODEJS_EVENT_LOOP_DELAY_P50),
|
|
39
|
+
p90: meter.createObservableGauge(Metrics.NODEJS_EVENT_LOOP_DELAY_P90),
|
|
40
|
+
p99: meter.createObservableGauge(Metrics.NODEJS_EVENT_LOOP_DELAY_P99),
|
|
56
41
|
};
|
|
57
42
|
|
|
58
|
-
this.eventLoopUilization = meter.createObservableGauge(Metrics.NODEJS_EVENT_LOOP_UTILIZATION
|
|
59
|
-
|
|
60
|
-
description: 'How busy is the event loop',
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
this.eventLoopTime = meter.createUpDownCounter(Metrics.NODEJS_EVENT_LOOP_TIME, {
|
|
64
|
-
unit: 'ms',
|
|
65
|
-
valueType: ValueType.INT,
|
|
66
|
-
description: 'How much time the event loop has spent in a given state',
|
|
67
|
-
});
|
|
68
|
-
|
|
43
|
+
this.eventLoopUilization = meter.createObservableGauge(Metrics.NODEJS_EVENT_LOOP_UTILIZATION);
|
|
44
|
+
this.eventLoopTime = meter.createUpDownCounter(Metrics.NODEJS_EVENT_LOOP_TIME);
|
|
69
45
|
this.eventLoopDelay = monitorEventLoopDelay();
|
|
70
46
|
|
|
71
47
|
this.memoryGauges = {
|
|
72
|
-
heapUsed: meter.createObservableGauge(Metrics.NODEJS_MEMORY_HEAP_USAGE,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
heapTotal: meter.createObservableGauge(Metrics.NODEJS_MEMORY_HEAP_TOTAL, {
|
|
77
|
-
unit: 'By',
|
|
78
|
-
description: 'The max size the V8 heap can grow to',
|
|
79
|
-
}),
|
|
80
|
-
arrayBuffers: meter.createObservableGauge(Metrics.NODEJS_MEMORY_BUFFER_USAGE, {
|
|
81
|
-
unit: 'By',
|
|
82
|
-
description: 'Memory allocated for buffers (includes native memory used)',
|
|
83
|
-
}),
|
|
84
|
-
external: meter.createObservableGauge(Metrics.NODEJS_MEMORY_NATIVE_USAGE, {
|
|
85
|
-
unit: 'By',
|
|
86
|
-
description: 'Memory allocated for native C++ objects',
|
|
87
|
-
}),
|
|
48
|
+
heapUsed: meter.createObservableGauge(Metrics.NODEJS_MEMORY_HEAP_USAGE),
|
|
49
|
+
heapTotal: meter.createObservableGauge(Metrics.NODEJS_MEMORY_HEAP_TOTAL),
|
|
50
|
+
arrayBuffers: meter.createObservableGauge(Metrics.NODEJS_MEMORY_BUFFER_USAGE),
|
|
51
|
+
external: meter.createObservableGauge(Metrics.NODEJS_MEMORY_NATIVE_USAGE),
|
|
88
52
|
};
|
|
89
53
|
}
|
|
90
54
|
|
package/src/noop.ts
CHANGED
|
@@ -1,20 +1,63 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type Context,
|
|
3
|
-
type Meter,
|
|
4
|
-
type Span,
|
|
5
|
-
type SpanContext,
|
|
6
|
-
type Tracer,
|
|
7
|
-
createNoopMeter,
|
|
8
|
-
} from '@opentelemetry/api';
|
|
1
|
+
import { type Context, type Span, type SpanContext, type Tracer, createNoopMeter } from '@opentelemetry/api';
|
|
9
2
|
|
|
10
|
-
import type {
|
|
3
|
+
import type { MetricDefinition } from './metrics.js';
|
|
4
|
+
import type {
|
|
5
|
+
Gauge,
|
|
6
|
+
Histogram,
|
|
7
|
+
Meter,
|
|
8
|
+
ObservableGauge,
|
|
9
|
+
ObservableUpDownCounter,
|
|
10
|
+
TelemetryClient,
|
|
11
|
+
UpDownCounter,
|
|
12
|
+
} from './telemetry.js';
|
|
13
|
+
|
|
14
|
+
/** A no-op meter that implements our custom Meter interface */
|
|
15
|
+
class NoopMeter implements Meter {
|
|
16
|
+
private otelMeter = createNoopMeter();
|
|
17
|
+
|
|
18
|
+
createGauge(_metric: MetricDefinition): Gauge {
|
|
19
|
+
return this.otelMeter.createGauge('');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
createObservableGauge(_metric: MetricDefinition): ObservableGauge {
|
|
23
|
+
return this.otelMeter.createObservableGauge('');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
createHistogram(_metric: MetricDefinition, _extraOptions?: Parameters<Meter['createHistogram']>[1]): Histogram {
|
|
27
|
+
return this.otelMeter.createHistogram('');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
createUpDownCounter(_metric: MetricDefinition): UpDownCounter {
|
|
31
|
+
return this.otelMeter.createUpDownCounter('');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
createObservableUpDownCounter(_metric: MetricDefinition): ObservableUpDownCounter {
|
|
35
|
+
return this.otelMeter.createObservableUpDownCounter('');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
addBatchObservableCallback(
|
|
39
|
+
callback: Parameters<Meter['addBatchObservableCallback']>[0],
|
|
40
|
+
observables: Parameters<Meter['addBatchObservableCallback']>[1],
|
|
41
|
+
): void {
|
|
42
|
+
this.otelMeter.addBatchObservableCallback(callback, observables);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
removeBatchObservableCallback(
|
|
46
|
+
callback: Parameters<Meter['removeBatchObservableCallback']>[0],
|
|
47
|
+
observables: Parameters<Meter['removeBatchObservableCallback']>[1],
|
|
48
|
+
): void {
|
|
49
|
+
this.otelMeter.removeBatchObservableCallback(callback, observables);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
11
52
|
|
|
12
53
|
export class NoopTelemetryClient implements TelemetryClient {
|
|
54
|
+
private meter = new NoopMeter();
|
|
55
|
+
|
|
13
56
|
setExportedPublicTelemetry(_prefixes: string[]): void {}
|
|
14
57
|
setPublicTelemetryCollectFrom(_roles: string[]): void {}
|
|
15
58
|
|
|
16
59
|
getMeter(): Meter {
|
|
17
|
-
return
|
|
60
|
+
return this.meter;
|
|
18
61
|
}
|
|
19
62
|
|
|
20
63
|
getTracer(): Tracer {
|
package/src/otel.ts
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
type Context,
|
|
5
5
|
DiagConsoleLogger,
|
|
6
6
|
DiagLogLevel,
|
|
7
|
-
type Meter,
|
|
7
|
+
type Meter as OtelMeter,
|
|
8
8
|
ROOT_CONTEXT,
|
|
9
9
|
type Tracer,
|
|
10
10
|
type TracerProvider,
|
|
@@ -32,18 +32,67 @@ import { BatchSpanProcessor, NodeTracerProvider } from '@opentelemetry/sdk-trace
|
|
|
32
32
|
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
|
|
33
33
|
|
|
34
34
|
import type { TelemetryClientConfig } from './config.js';
|
|
35
|
+
import { toMetricOptions } from './metric-utils.js';
|
|
36
|
+
import type { MetricDefinition } from './metrics.js';
|
|
35
37
|
import { NodejsMetricsMonitor } from './nodejs_metrics_monitor.js';
|
|
36
38
|
import { OtelFilterMetricExporter, PublicOtelFilterMetricExporter } from './otel_filter_metric_exporter.js';
|
|
37
39
|
import { registerOtelLoggerProvider } from './otel_logger_provider.js';
|
|
38
40
|
import { getOtelResource } from './otel_resource.js';
|
|
39
|
-
import type {
|
|
41
|
+
import type {
|
|
42
|
+
Gauge,
|
|
43
|
+
Histogram,
|
|
44
|
+
Meter,
|
|
45
|
+
ObservableGauge,
|
|
46
|
+
ObservableUpDownCounter,
|
|
47
|
+
TelemetryClient,
|
|
48
|
+
UpDownCounter,
|
|
49
|
+
} from './telemetry.js';
|
|
50
|
+
|
|
51
|
+
/** Wraps an OpenTelemetry Meter to implement our custom Meter interface */
|
|
52
|
+
class WrappedMeter implements Meter {
|
|
53
|
+
constructor(private otelMeter: OtelMeter) {}
|
|
54
|
+
|
|
55
|
+
createGauge(metric: MetricDefinition): Gauge {
|
|
56
|
+
return this.otelMeter.createGauge(metric.name, toMetricOptions(metric));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
createObservableGauge(metric: MetricDefinition): ObservableGauge {
|
|
60
|
+
return this.otelMeter.createObservableGauge(metric.name, toMetricOptions(metric));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
createHistogram(metric: MetricDefinition, extraOptions?: Parameters<Meter['createHistogram']>[1]): Histogram {
|
|
64
|
+
return this.otelMeter.createHistogram(metric.name, { ...toMetricOptions(metric), ...extraOptions });
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
createUpDownCounter(metric: MetricDefinition): UpDownCounter {
|
|
68
|
+
return this.otelMeter.createUpDownCounter(metric.name, toMetricOptions(metric));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
createObservableUpDownCounter(metric: MetricDefinition): ObservableUpDownCounter {
|
|
72
|
+
return this.otelMeter.createObservableUpDownCounter(metric.name, toMetricOptions(metric));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
addBatchObservableCallback(
|
|
76
|
+
callback: Parameters<Meter['addBatchObservableCallback']>[0],
|
|
77
|
+
observables: Parameters<Meter['addBatchObservableCallback']>[1],
|
|
78
|
+
): void {
|
|
79
|
+
this.otelMeter.addBatchObservableCallback(callback, observables);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
removeBatchObservableCallback(
|
|
83
|
+
callback: Parameters<Meter['removeBatchObservableCallback']>[0],
|
|
84
|
+
observables: Parameters<Meter['removeBatchObservableCallback']>[1],
|
|
85
|
+
): void {
|
|
86
|
+
this.otelMeter.removeBatchObservableCallback(callback, observables);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
40
89
|
|
|
41
90
|
export type OpenTelemetryClientFactory = (resource: IResource, log: Logger) => OpenTelemetryClient;
|
|
42
91
|
|
|
43
92
|
export class OpenTelemetryClient implements TelemetryClient {
|
|
44
93
|
hostMetrics: HostMetrics | undefined;
|
|
45
94
|
nodejsMetricsMonitor: NodejsMetricsMonitor | undefined;
|
|
46
|
-
private meters: Map<string,
|
|
95
|
+
private meters: Map<string, WrappedMeter> = new Map<string, WrappedMeter>();
|
|
47
96
|
private tracers: Map<string, Tracer> = new Map<string, Tracer>();
|
|
48
97
|
|
|
49
98
|
protected constructor(
|
|
@@ -66,7 +115,8 @@ export class OpenTelemetryClient implements TelemetryClient {
|
|
|
66
115
|
getMeter(name: string): Meter {
|
|
67
116
|
let meter = this.meters.get(name);
|
|
68
117
|
if (!meter) {
|
|
69
|
-
|
|
118
|
+
const otelMeter = this.meterProvider.getMeter(name, this.resource.attributes[ATTR_SERVICE_VERSION] as string);
|
|
119
|
+
meter = new WrappedMeter(otelMeter);
|
|
70
120
|
this.meters.set(name, meter);
|
|
71
121
|
}
|
|
72
122
|
return meter;
|
|
@@ -104,9 +154,10 @@ export class OpenTelemetryClient implements TelemetryClient {
|
|
|
104
154
|
meterProvider: this.meterProvider,
|
|
105
155
|
});
|
|
106
156
|
|
|
107
|
-
|
|
157
|
+
const nodejsMeter = new WrappedMeter(
|
|
108
158
|
this.meterProvider.getMeter(this.resource.attributes[ATTR_SERVICE_NAME] as string),
|
|
109
159
|
);
|
|
160
|
+
this.nodejsMetricsMonitor = new NodejsMetricsMonitor(nodejsMeter);
|
|
110
161
|
|
|
111
162
|
this.hostMetrics.start();
|
|
112
163
|
this.nodejsMetricsMonitor.start();
|
package/src/prom_otel_adapter.ts
CHANGED
|
@@ -3,7 +3,8 @@ import { Timer } from '@aztec/foundation/timer';
|
|
|
3
3
|
|
|
4
4
|
import { Registry } from 'prom-client';
|
|
5
5
|
|
|
6
|
-
import type {
|
|
6
|
+
import type { MetricDefinition } from './metrics.js';
|
|
7
|
+
import type { Histogram, Meter, ObservableGauge, TelemetryClient } from './telemetry.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Types matching the gossipsub and libp2p services
|
|
@@ -94,9 +95,8 @@ export class OtelGauge<Labels extends LabelsGeneric = NoLabels> implements IGaug
|
|
|
94
95
|
help: string,
|
|
95
96
|
private labelNames: Array<keyof Labels> = [],
|
|
96
97
|
) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
});
|
|
98
|
+
const metricDef: MetricDefinition = { name, description: help };
|
|
99
|
+
this.gauge = meter.createObservableGauge(metricDef);
|
|
100
100
|
|
|
101
101
|
// Only observe in the callback when collect() is called
|
|
102
102
|
this.gauge.addCallback(this.handleObservation.bind(this));
|
|
@@ -214,8 +214,8 @@ export class OtelHistogram<Labels extends LabelsGeneric = NoLabels> implements I
|
|
|
214
214
|
buckets: number[] = [],
|
|
215
215
|
private labelNames: Array<keyof Labels> = [],
|
|
216
216
|
) {
|
|
217
|
-
|
|
218
|
-
|
|
217
|
+
const metricDef: MetricDefinition = { name, description: help };
|
|
218
|
+
this.histogram = meter.createHistogram(metricDef, {
|
|
219
219
|
advice: buckets.length ? { explicitBucketBoundaries: buckets } : undefined,
|
|
220
220
|
});
|
|
221
221
|
}
|
|
@@ -289,15 +289,9 @@ export class OtelAvgMinMax<Labels extends LabelsGeneric = NoLabels> implements I
|
|
|
289
289
|
) {
|
|
290
290
|
// Create three separate gauges for avg, min, and max
|
|
291
291
|
this.gauges = {
|
|
292
|
-
avg: meter.createObservableGauge(`${name}_avg`
|
|
293
|
-
|
|
294
|
-
}),
|
|
295
|
-
min: meter.createObservableGauge(`${name}_min` as MetricsType, {
|
|
296
|
-
description: `${help} (minimum)`,
|
|
297
|
-
}),
|
|
298
|
-
max: meter.createObservableGauge(`${name}_max` as MetricsType, {
|
|
299
|
-
description: `${help} (maximum)`,
|
|
300
|
-
}),
|
|
292
|
+
avg: meter.createObservableGauge({ name: `${name}_avg`, description: `${help} (average)` }),
|
|
293
|
+
min: meter.createObservableGauge({ name: `${name}_min`, description: `${help} (minimum)` }),
|
|
294
|
+
max: meter.createObservableGauge({ name: `${name}_max`, description: `${help} (maximum)` }),
|
|
301
295
|
};
|
|
302
296
|
|
|
303
297
|
// Register callbacks for each gauge
|
|
@@ -429,7 +423,7 @@ export class OtelMetricsAdapter extends Registry implements MetricsRegister {
|
|
|
429
423
|
return new OtelGauge<Labels>(
|
|
430
424
|
this.logger,
|
|
431
425
|
this.meter,
|
|
432
|
-
configuration.name
|
|
426
|
+
configuration.name,
|
|
433
427
|
configuration.help,
|
|
434
428
|
configuration.labelNames,
|
|
435
429
|
);
|
|
@@ -439,7 +433,7 @@ export class OtelMetricsAdapter extends Registry implements MetricsRegister {
|
|
|
439
433
|
return new OtelHistogram<Labels>(
|
|
440
434
|
this.logger,
|
|
441
435
|
this.meter,
|
|
442
|
-
configuration.name
|
|
436
|
+
configuration.name,
|
|
443
437
|
configuration.help,
|
|
444
438
|
configuration.buckets,
|
|
445
439
|
configuration.labelNames,
|
|
@@ -450,7 +444,7 @@ export class OtelMetricsAdapter extends Registry implements MetricsRegister {
|
|
|
450
444
|
return new OtelAvgMinMax<Labels>(
|
|
451
445
|
this.logger,
|
|
452
446
|
this.meter,
|
|
453
|
-
configuration.name
|
|
447
|
+
configuration.name,
|
|
454
448
|
configuration.help,
|
|
455
449
|
configuration.labelNames,
|
|
456
450
|
);
|
package/src/telemetry.ts
CHANGED
|
@@ -17,9 +17,11 @@ import {
|
|
|
17
17
|
} from '@opentelemetry/api';
|
|
18
18
|
|
|
19
19
|
import type * as Attributes from './attributes.js';
|
|
20
|
-
import type
|
|
20
|
+
import type { MetricDefinition } from './metrics.js';
|
|
21
21
|
import { getTelemetryClient } from './start.js';
|
|
22
22
|
|
|
23
|
+
export { toMetricOptions } from './metric-utils.js';
|
|
24
|
+
|
|
23
25
|
export { type Span, SpanStatusCode, ValueType, type Context } from '@opentelemetry/api';
|
|
24
26
|
|
|
25
27
|
type ValuesOf<T> = T extends Record<string, infer U> ? U : never;
|
|
@@ -57,8 +59,8 @@ export type AttributesType = Partial<Record<AttributeNames, AttributeValue>>;
|
|
|
57
59
|
/** Subset of attributes allowed to be added to metrics */
|
|
58
60
|
export type MetricAttributesType = Partial<Record<Exclude<AttributeNames, BannedMetricAttributeNames>, AttributeValue>>;
|
|
59
61
|
|
|
60
|
-
/**
|
|
61
|
-
export type
|
|
62
|
+
/** Re-export MetricDefinition for convenience */
|
|
63
|
+
export type { MetricDefinition } from './metrics.js';
|
|
62
64
|
|
|
63
65
|
export type Gauge = OtelGauge<MetricAttributesType>;
|
|
64
66
|
export type Histogram = OtelHistogram<MetricAttributesType>;
|
|
@@ -77,17 +79,15 @@ export type { Tracer };
|
|
|
77
79
|
export interface Meter {
|
|
78
80
|
/**
|
|
79
81
|
* Creates a new gauge instrument. A gauge is a metric that represents a single numerical value that can arbitrarily go up and down.
|
|
80
|
-
* @param
|
|
81
|
-
* @param options - The options for the gauge
|
|
82
|
+
* @param metric - The metric definition
|
|
82
83
|
*/
|
|
83
|
-
createGauge(
|
|
84
|
+
createGauge(metric: MetricDefinition): Gauge;
|
|
84
85
|
|
|
85
86
|
/**
|
|
86
|
-
* Creates a new gauge instrument. A gauge is a metric that represents a single numerical value that can arbitrarily go up and down.
|
|
87
|
-
* @param
|
|
88
|
-
* @param options - The options for the gauge
|
|
87
|
+
* Creates a new observable gauge instrument. A gauge is a metric that represents a single numerical value that can arbitrarily go up and down.
|
|
88
|
+
* @param metric - The metric definition
|
|
89
89
|
*/
|
|
90
|
-
createObservableGauge(
|
|
90
|
+
createObservableGauge(metric: MetricDefinition): ObservableGauge;
|
|
91
91
|
|
|
92
92
|
addBatchObservableCallback(
|
|
93
93
|
callback: BatchObservableCallback<AttributesType>,
|
|
@@ -101,24 +101,22 @@ export interface Meter {
|
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
103
|
* 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.
|
|
104
|
-
* @param
|
|
105
|
-
* @param
|
|
104
|
+
* @param metric - The metric definition
|
|
105
|
+
* @param extraOptions - Optional extra options (e.g., advice for bucket boundaries)
|
|
106
106
|
*/
|
|
107
|
-
createHistogram(
|
|
107
|
+
createHistogram(metric: MetricDefinition, extraOptions?: Partial<MetricOptions>): Histogram;
|
|
108
108
|
|
|
109
109
|
/**
|
|
110
110
|
* Creates a new counter instrument. A counter can go up or down with a delta from the previous value.
|
|
111
|
-
* @param
|
|
112
|
-
* @param options - The options for the counter
|
|
111
|
+
* @param metric - The metric definition
|
|
113
112
|
*/
|
|
114
|
-
createUpDownCounter(
|
|
113
|
+
createUpDownCounter(metric: MetricDefinition): UpDownCounter;
|
|
115
114
|
|
|
116
115
|
/**
|
|
117
|
-
* Creates a new
|
|
118
|
-
* @param
|
|
119
|
-
* @param options - The options for the gauge
|
|
116
|
+
* Creates a new observable up/down counter instrument.
|
|
117
|
+
* @param metric - The metric definition
|
|
120
118
|
*/
|
|
121
|
-
createObservableUpDownCounter(
|
|
119
|
+
createObservableUpDownCounter(metric: MetricDefinition): ObservableUpDownCounter;
|
|
122
120
|
}
|
|
123
121
|
|
|
124
122
|
/**
|