@aztec/telemetry-client 0.0.0-test.0 → 0.0.1-commit.023c3e5

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.
Files changed (90) hide show
  1. package/dest/attributes.d.ts +33 -9
  2. package/dest/attributes.d.ts.map +1 -1
  3. package/dest/attributes.js +22 -8
  4. package/dest/bench.d.ts +6 -1
  5. package/dest/bench.d.ts.map +1 -1
  6. package/dest/bench.js +31 -14
  7. package/dest/config.d.ts +7 -2
  8. package/dest/config.d.ts.map +1 -1
  9. package/dest/config.js +29 -1
  10. package/dest/index.d.ts +2 -1
  11. package/dest/index.d.ts.map +1 -1
  12. package/dest/index.js +1 -0
  13. package/dest/l1_metrics.d.ts +17 -0
  14. package/dest/l1_metrics.d.ts.map +1 -0
  15. package/dest/l1_metrics.js +54 -0
  16. package/dest/lmdb_metrics.d.ts +5 -3
  17. package/dest/lmdb_metrics.d.ts.map +1 -1
  18. package/dest/lmdb_metrics.js +7 -15
  19. package/dest/metric-utils.d.ts +24 -0
  20. package/dest/metric-utils.d.ts.map +1 -0
  21. package/dest/metric-utils.js +59 -0
  22. package/dest/metrics.d.ts +247 -122
  23. package/dest/metrics.d.ts.map +1 -1
  24. package/dest/metrics.js +1239 -120
  25. package/dest/nodejs_metrics_monitor.d.ts +19 -0
  26. package/dest/nodejs_metrics_monitor.d.ts.map +1 -0
  27. package/dest/nodejs_metrics_monitor.js +115 -0
  28. package/dest/noop.d.ts +9 -4
  29. package/dest/noop.d.ts.map +1 -1
  30. package/dest/noop.js +34 -1
  31. package/dest/otel.d.ts +13 -7
  32. package/dest/otel.d.ts.map +1 -1
  33. package/dest/otel.js +142 -21
  34. package/dest/otel_filter_metric_exporter.d.ts +12 -4
  35. package/dest/otel_filter_metric_exporter.d.ts.map +1 -1
  36. package/dest/otel_filter_metric_exporter.js +38 -4
  37. package/dest/otel_logger_provider.d.ts +1 -1
  38. package/dest/otel_propagation.d.ts +1 -1
  39. package/dest/otel_resource.d.ts +1 -1
  40. package/dest/otel_resource.d.ts.map +1 -1
  41. package/dest/otel_resource.js +43 -2
  42. package/dest/prom_otel_adapter.d.ts +61 -12
  43. package/dest/prom_otel_adapter.d.ts.map +1 -1
  44. package/dest/prom_otel_adapter.js +157 -48
  45. package/dest/start.d.ts +3 -2
  46. package/dest/start.d.ts.map +1 -1
  47. package/dest/start.js +8 -7
  48. package/dest/telemetry.d.ts +63 -34
  49. package/dest/telemetry.d.ts.map +1 -1
  50. package/dest/telemetry.js +47 -24
  51. package/dest/vendor/attributes.d.ts +1 -1
  52. package/dest/vendor/otel-pino-stream.d.ts +1 -2
  53. package/dest/vendor/otel-pino-stream.d.ts.map +1 -1
  54. package/dest/vendor/otel-pino-stream.js +2 -2
  55. package/dest/with_tracer.d.ts +1 -1
  56. package/dest/with_tracer.d.ts.map +1 -1
  57. package/dest/wrappers/fetch.d.ts +2 -2
  58. package/dest/wrappers/fetch.d.ts.map +1 -1
  59. package/dest/wrappers/fetch.js +7 -5
  60. package/dest/wrappers/index.d.ts +1 -1
  61. package/dest/wrappers/json_rpc_server.d.ts +2 -2
  62. package/dest/wrappers/json_rpc_server.d.ts.map +1 -1
  63. package/dest/wrappers/l2_block_stream.d.ts +4 -3
  64. package/dest/wrappers/l2_block_stream.d.ts.map +1 -1
  65. package/dest/wrappers/l2_block_stream.js +385 -11
  66. package/package.json +21 -15
  67. package/src/attributes.ts +42 -11
  68. package/src/bench.ts +37 -15
  69. package/src/config.ts +54 -2
  70. package/src/index.ts +1 -0
  71. package/src/l1_metrics.ts +65 -0
  72. package/src/lmdb_metrics.ts +24 -24
  73. package/src/metric-utils.ts +75 -0
  74. package/src/metrics.ts +1313 -145
  75. package/src/nodejs_metrics_monitor.ts +135 -0
  76. package/src/noop.ts +65 -4
  77. package/src/otel.ts +155 -26
  78. package/src/otel_filter_metric_exporter.ts +47 -5
  79. package/src/otel_resource.ts +57 -2
  80. package/src/prom_otel_adapter.ts +195 -70
  81. package/src/start.ts +12 -8
  82. package/src/telemetry.ts +153 -76
  83. package/src/vendor/otel-pino-stream.ts +1 -4
  84. package/src/wrappers/fetch.ts +24 -31
  85. package/src/wrappers/json_rpc_server.ts +1 -1
  86. package/src/wrappers/l2_block_stream.ts +6 -2
  87. package/dest/event_loop_monitor.d.ts +0 -18
  88. package/dest/event_loop_monitor.d.ts.map +0 -1
  89. package/dest/event_loop_monitor.js +0 -93
  90. package/src/event_loop_monitor.ts +0 -119
@@ -1,12 +1,53 @@
1
- import { detectResourcesSync, envDetectorSync, osDetectorSync, processDetectorSync, serviceInstanceIdDetectorSync } from '@opentelemetry/resources';
1
+ import { Resource, detectResourcesSync, envDetectorSync, osDetectorSync, serviceInstanceIdDetectorSync } from '@opentelemetry/resources';
2
+ import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
3
+ import { readFileSync } from 'fs';
4
+ import { dirname, resolve } from 'path';
5
+ import { fileURLToPath } from 'url';
6
+ import { AZTEC_NODE_ROLE, AZTEC_REGISTRY_ADDRESS, AZTEC_ROLLUP_ADDRESS, AZTEC_ROLLUP_VERSION } from './attributes.js';
7
+ /** Reads the Aztec client version from the release manifest. */ function getAztecVersion() {
8
+ try {
9
+ const releasePleasePath = resolve(dirname(fileURLToPath(import.meta.url)), '../../../.release-please-manifest.json');
10
+ return JSON.parse(readFileSync(releasePleasePath, 'utf-8'))['.'];
11
+ } catch {
12
+ return undefined;
13
+ }
14
+ }
2
15
  export function getOtelResource() {
3
16
  const resource = detectResourcesSync({
4
17
  detectors: [
18
+ aztecNetworkDetectorSync,
5
19
  osDetectorSync,
6
20
  envDetectorSync,
7
- processDetectorSync,
21
+ // this detector is disabled because:
22
+ // 1. our software runs in a docker container, a lot of the attributes detected would be identical across different machines (e.g. all run node v22, executing the same script, running PID 1, etc)
23
+ // 2. it catures process.argv which could contain sensitive values in plain text (e.g. validator private keys)
24
+ // processDetectorSync,
8
25
  serviceInstanceIdDetectorSync
9
26
  ]
10
27
  });
11
28
  return resource;
12
29
  }
30
+ const aztecNetworkDetectorSync = {
31
+ detect () {
32
+ let role;
33
+ if (process.argv.includes('--sequencer')) {
34
+ role = 'sequencer';
35
+ } else if (process.argv.includes('--prover-node')) {
36
+ role = 'prover-node';
37
+ } else if (process.argv.includes('--node')) {
38
+ role = 'node';
39
+ } else if (process.argv.includes('--p2p-bootstrap')) {
40
+ role = 'bootnode';
41
+ }
42
+ const aztecAttributes = {
43
+ // this gets overwritten by OTEL_RESOURCE_ATTRIBUTES (if set)
44
+ [ATTR_SERVICE_NAME]: role ? `aztec-${role}` : undefined,
45
+ [ATTR_SERVICE_VERSION]: getAztecVersion(),
46
+ [AZTEC_NODE_ROLE]: role,
47
+ [AZTEC_ROLLUP_VERSION]: process.env.ROLLUP_VERSION ?? 'canonical',
48
+ [AZTEC_ROLLUP_ADDRESS]: process.env.ROLLUP_CONTRACT_ADDRESS,
49
+ [AZTEC_REGISTRY_ADDRESS]: process.env.REGISTRY_CONTRACT_ADDRESS
50
+ };
51
+ return new Resource(aztecAttributes);
52
+ }
53
+ };
@@ -1,4 +1,4 @@
1
- import { type Logger } from '@aztec/foundation/log';
1
+ import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
2
2
  import { Registry } from 'prom-client';
3
3
  import type { Meter, TelemetryClient } from './telemetry.js';
4
4
  /**
@@ -97,18 +97,67 @@ export declare class OtelGauge<Labels extends LabelsGeneric = NoLabels> implemen
97
97
  * Resets the gauge to initial state
98
98
  */
99
99
  reset(): void;
100
+ }
101
+ /**
102
+ * Implementation of a Histogram collector
103
+ */
104
+ export declare class OtelHistogram<Labels extends LabelsGeneric = NoLabels> implements IHistogram<Labels> {
105
+ private logger;
106
+ private labelNames;
107
+ private histogram;
108
+ constructor(logger: Logger, meter: Meter, name: string, help: string, buckets?: number[], labelNames?: Array<keyof Labels>);
109
+ /**
110
+ * Starts a timer and returns a function that when called will record the time elapsed
111
+ * @param labels - Optional labels for the observation
112
+ */
113
+ startTimer(labels?: Labels): () => void;
114
+ /**
115
+ * Observes a value
116
+ * @param value - Value to observe
117
+ */
118
+ observe(value: number): void;
119
+ /**
120
+ * Observes a value with labels
121
+ * @param labels - Labels object
122
+ * @param value - Value to observe
123
+ */
124
+ observe(labels: Labels, value: number): void;
125
+ reset(): void;
126
+ }
127
+ /**
128
+ * Implementation of an AvgMinMax collector
129
+ */
130
+ export declare class OtelAvgMinMax<Labels extends LabelsGeneric = NoLabels> implements IAvgMinMax<Labels> {
131
+ private logger;
132
+ private labelNames;
133
+ private gauges;
134
+ private currentValues;
135
+ private labeledValues;
136
+ constructor(logger: Logger, meter: Meter, name: string, help: string, labelNames?: Array<keyof Labels>);
100
137
  /**
101
- * Validates that provided labels match the expected schema
102
- * @param labels - Labels object to validate
103
- * @throws Error if invalid labels are provided
138
+ * Sets the values for calculating avg, min, max
139
+ * @param values - Array of values
104
140
  */
105
- private validateLabels;
141
+ set(values: number[]): void;
106
142
  /**
107
- * Safely parses label string back to object
108
- * @param labelStr - Stringified labels object
109
- * @returns Labels object or null if parsing fails
143
+ * Sets the values for calculating avg, min, max with labels
144
+ * @param labels - Labels object
145
+ * @param values - Array of values
110
146
  */
111
- private parseLabelsSafely;
147
+ set(labels: Labels, values: number[]): void;
148
+ /**
149
+ * Resets all stored values
150
+ */
151
+ reset(): void;
152
+ /**
153
+ * General function to observe an aggregation
154
+ * @param result - Observer result
155
+ * @param aggregateFn - Function that calculates the aggregation
156
+ */
157
+ private observeAggregation;
158
+ private observeAvg;
159
+ private observeMin;
160
+ private observeMax;
112
161
  }
113
162
  /**
114
163
  * Otel metrics Adapter
@@ -116,12 +165,12 @@ export declare class OtelGauge<Labels extends LabelsGeneric = NoLabels> implemen
116
165
  * Maps the PromClient based MetricsRegister from gossipsub and discv5 services to the Otel MetricsRegister
117
166
  */
118
167
  export declare class OtelMetricsAdapter extends Registry implements MetricsRegister {
119
- private logger;
120
168
  private readonly meter;
121
- constructor(telemetryClient: TelemetryClient, logger?: Logger);
169
+ private logger;
170
+ constructor(telemetryClient: TelemetryClient, bindings?: LoggerBindings);
122
171
  gauge<Labels extends LabelsGeneric = NoLabels>(configuration: GaugeConfig<Labels>): IGauge<Labels>;
123
172
  histogram<Labels extends LabelsGeneric = NoLabels>(configuration: HistogramConfig<Labels>): IHistogram<Labels>;
124
173
  avgMinMax<Labels extends LabelsGeneric = NoLabels>(configuration: AvgMinMaxConfig<Labels>): IAvgMinMax<Labels>;
125
174
  }
126
175
  export {};
127
- //# sourceMappingURL=prom_otel_adapter.d.ts.map
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbV9vdGVsX2FkYXB0ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tX290ZWxfYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHdkYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd2QyxPQUFPLEtBQUssRUFBYSxLQUFLLEVBQW1CLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpGOztHQUVHO0FBQ0gsS0FBSyxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQ3ZCLE1BQU0sTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQ2hDLE1BQU0sTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUV4RCxvQkFBWSxhQUFhO0lBQ3ZCLE9BQU8sWUFBWTtJQUNuQixPQUFPLFlBQVk7Q0FDcEI7QUFFRCxLQUFLLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3RDLEtBQUssYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQ3JELEtBQUssU0FBUyxDQUFDLE1BQU0sU0FBUyxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzdFLFVBQVUsU0FBUyxDQUFDLE1BQU0sU0FBUyxhQUFhO0lBQzlDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7Q0FDaEM7QUFFRCxVQUFVLE1BQU0sQ0FBQyxNQUFNLFNBQVMsYUFBYSxHQUFHLFFBQVE7SUFDdEQsR0FBRyxFQUFFLFFBQVEsU0FBUyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEtBQUssSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEtBQUssSUFBSSxDQUFDO0lBQ25HLEdBQUcsRUFBRSxRQUFRLFNBQVMsTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxDQUFDO0lBRWpHLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNqQixVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7Q0FDaEQ7QUFFRCxVQUFVLFVBQVUsQ0FBQyxNQUFNLFNBQVMsYUFBYSxHQUFHLFFBQVE7SUFDMUQsVUFBVSxJQUFJLE1BQU0sSUFBSSxDQUFDO0lBRXpCLE9BQU8sRUFBRSxRQUFRLFNBQVMsTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxDQUFDO0lBRXJHLEtBQUssSUFBSSxJQUFJLENBQUM7Q0FDZjtBQUVELFVBQVUsVUFBVSxDQUFDLE1BQU0sU0FBUyxhQUFhLEdBQUcsUUFBUTtJQUMxRCxHQUFHLEVBQUUsUUFBUSxTQUFTLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUM7Q0FDeEc7QUFFRCxNQUFNLE1BQU0sV0FBVyxDQUFDLE1BQU0sU0FBUyxhQUFhLElBQUk7SUFDdEQsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLElBQUksRUFBRSxNQUFNLENBQUM7Q0FDZCxHQUFHLENBQUMsUUFBUSxTQUFTLE1BQU0sR0FDeEI7SUFBRSxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUE7Q0FBRSxHQUN0QjtJQUFFLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0NBQUUsQ0FBQyxDQUFDO0FBRXRFLE1BQU0sTUFBTSxlQUFlLENBQUMsTUFBTSxTQUFTLGFBQWEsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUc7SUFDaEYsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sTUFBTSxlQUFlLENBQUMsTUFBTSxTQUFTLGFBQWEsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFaEYsTUFBTSxXQUFXLGVBQWU7SUFDOUIsS0FBSyxDQUFDLE1BQU0sU0FBUyxhQUFhLEdBQUcsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVGLFNBQVMsQ0FBQyxNQUFNLFNBQVMsYUFBYSxHQUFHLFFBQVEsRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4RyxTQUFTLENBQUMsTUFBTSxTQUFTLGFBQWEsR0FBRyxRQUFRLEVBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDekc7QUFFRDs7Ozs7Ozs7R0FRRztBQUVILHFCQUFhLFNBQVMsQ0FBQyxNQUFNLFNBQVMsYUFBYSxHQUFHLFFBQVEsQ0FBRSxZQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFlckYsT0FBTyxDQUFDLE1BQU07SUFJZCxPQUFPLENBQUMsVUFBVTtJQWxCcEIsT0FBTyxDQUFDLEtBQUssQ0FBa0I7SUFDL0IsT0FBTyxDQUFDLFlBQVksQ0FBYTtJQUNqQyxPQUFPLENBQUMsYUFBYSxDQUFrQztJQUN2RCxPQUFPLENBQUMsVUFBVSxDQUEyQjtJQUU3QyxPQUFPLENBQUMsUUFBUSxDQUF3QjtJQUN4QyxJQUFJLE9BQU8sSUFBSSxNQUFNLElBQUksQ0FFeEI7SUFDRCxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxJQUFJLEVBRXpCO0lBRUQsWUFDVSxNQUFNLEVBQUUsTUFBTSxFQUN0QixLQUFLLEVBQUUsS0FBSyxFQUNaLElBQUksRUFBRSxNQUFNLEVBQ1osSUFBSSxFQUFFLE1BQU0sRUFDSixVQUFVLEdBQUUsS0FBSyxDQUFDLE1BQU0sTUFBTSxDQUFNLEVBTzdDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUU3QztJQUVELGlCQUFpQixDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsSUFBSSxDQXFCbkM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDMUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQWtCMUM7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN6QixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQVl6Qzs7O09BR0c7SUFDSCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FVekI7SUFFRDs7T0FFRztJQUNILEtBQUssSUFBSSxJQUFJLENBR1o7Q0FDRjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsYUFBYSxDQUFDLE1BQU0sU0FBUyxhQUFhLEdBQUcsUUFBUSxDQUFFLFlBQVcsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUk3RixPQUFPLENBQUMsTUFBTTtJQUtkLE9BQU8sQ0FBQyxVQUFVO0lBUnBCLE9BQU8sQ0FBQyxTQUFTLENBQVk7SUFFN0IsWUFDVSxNQUFNLEVBQUUsTUFBTSxFQUN0QixLQUFLLEVBQUUsS0FBSyxFQUNaLElBQUksRUFBRSxNQUFNLEVBQ1osSUFBSSxFQUFFLE1BQU0sRUFDWixPQUFPLEdBQUUsTUFBTSxFQUFPLEVBQ2QsVUFBVSxHQUFFLEtBQUssQ0FBQyxNQUFNLE1BQU0sQ0FBTSxFQU03QztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBZXRDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQzdCOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQVU3QyxLQUFLLElBQUksSUFBSSxDQUdaO0NBQ0Y7QUFFRDs7R0FFRztBQUNILHFCQUFhLGFBQWEsQ0FBQyxNQUFNLFNBQVMsYUFBYSxHQUFHLFFBQVEsQ0FBRSxZQUFXLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFXN0YsT0FBTyxDQUFDLE1BQU07SUFJZCxPQUFPLENBQUMsVUFBVTtJQWRwQixPQUFPLENBQUMsTUFBTSxDQUlaO0lBRUYsT0FBTyxDQUFDLGFBQWEsQ0FBZ0I7SUFDckMsT0FBTyxDQUFDLGFBQWEsQ0FBb0M7SUFFekQsWUFDVSxNQUFNLEVBQUUsTUFBTSxFQUN0QixLQUFLLEVBQUUsS0FBSyxFQUNaLElBQUksRUFBRSxNQUFNLEVBQ1osSUFBSSxFQUFFLE1BQU0sRUFDSixVQUFVLEdBQUUsS0FBSyxDQUFDLE1BQU0sTUFBTSxDQUFNLEVBYTdDO0lBRUQ7OztPQUdHO0lBQ0gsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDNUI7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFZNUM7O09BRUc7SUFDSCxLQUFLLElBQUksSUFBSSxDQUdaO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxrQkFBa0I7SUFpQjFCLE9BQU8sQ0FBQyxVQUFVO0lBSWxCLE9BQU8sQ0FBQyxVQUFVO0lBSWxCLE9BQU8sQ0FBQyxVQUFVO0NBR25CO0FBd0NEOzs7O0dBSUc7QUFDSCxxQkFBYSxrQkFBbUIsU0FBUSxRQUFTLFlBQVcsZUFBZTtJQUN6RSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBUTtJQUM5QixPQUFPLENBQUMsTUFBTSxDQUFTO0lBRXZCLFlBQVksZUFBZSxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsRUFBRSxjQUFjLEVBSXRFO0lBRUQsS0FBSyxDQUFDLE1BQU0sU0FBUyxhQUFhLEdBQUcsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQVFqRztJQUVELFNBQVMsQ0FBQyxNQUFNLFNBQVMsYUFBYSxHQUFHLFFBQVEsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FTN0c7SUFFRCxTQUFTLENBQUMsTUFBTSxTQUFTLGFBQWEsR0FBRyxRQUFRLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBUTdHO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"prom_otel_adapter.d.ts","sourceRoot":"","sources":["../src/prom_otel_adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prom_otel_adapter.d.ts","sourceRoot":"","sources":["../src/prom_otel_adapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
+ import { Timer } from '@aztec/foundation/timer';
2
3
  import { Registry } from 'prom-client';
3
4
  export var MessageSource = /*#__PURE__*/ function(MessageSource) {
4
5
  MessageSource["forward"] = "forward";
@@ -34,9 +35,11 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
34
35
  this.labeledValues = new Map();
35
36
  this.collectFns = [];
36
37
  this._collect = ()=>{};
37
- this.gauge = meter.createObservableGauge(name, {
38
+ const metricDef = {
39
+ name,
38
40
  description: help
39
- });
41
+ };
42
+ this.gauge = meter.createObservableGauge(metricDef);
40
43
  // Only observe in the callback when collect() is called
41
44
  this.gauge.addCallback(this.handleObservation.bind(this));
42
45
  }
@@ -59,7 +62,7 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
59
62
  return;
60
63
  }
61
64
  for (const [labelStr, value] of this.labeledValues.entries()){
62
- const labels = this.parseLabelsSafely(labelStr);
65
+ const labels = parseLabelsSafely(labelStr, this.logger);
63
66
  if (labels) {
64
67
  result.observe(value, labels);
65
68
  }
@@ -71,7 +74,7 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
71
74
  return;
72
75
  }
73
76
  if (labelsOrValue) {
74
- this.validateLabels(labelsOrValue);
77
+ validateLabels(labelsOrValue, this.labelNames, 'Gauge');
75
78
  const labelKey = JSON.stringify(labelsOrValue);
76
79
  const currentValue = this.labeledValues.get(labelKey) ?? 0;
77
80
  this.labeledValues.set(labelKey, currentValue + (value ?? 1));
@@ -84,7 +87,7 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
84
87
  this.currentValue = labelsOrValue;
85
88
  return;
86
89
  }
87
- this.validateLabels(labelsOrValue);
90
+ validateLabels(labelsOrValue, this.labelNames, 'Gauge');
88
91
  const labelKey = JSON.stringify(labelsOrValue);
89
92
  this.labeledValues.set(labelKey, value);
90
93
  }
@@ -93,7 +96,7 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
93
96
  * @param labels - Optional labels object
94
97
  */ dec(labels) {
95
98
  if (labels) {
96
- this.validateLabels(labels);
99
+ validateLabels(labels, this.labelNames, 'Gauge');
97
100
  const labelKey = JSON.stringify(labels);
98
101
  const currentValue = this.labeledValues.get(labelKey) ?? 0;
99
102
  this.labeledValues.set(labelKey, currentValue - 1);
@@ -107,77 +110,183 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
107
110
  this.currentValue = 0;
108
111
  this.labeledValues.clear();
109
112
  }
113
+ }
114
+ /**
115
+ * Implementation of a Histogram collector
116
+ */ export class OtelHistogram {
117
+ logger;
118
+ labelNames;
119
+ histogram;
120
+ constructor(logger, meter, name, help, buckets = [], labelNames = []){
121
+ this.logger = logger;
122
+ this.labelNames = labelNames;
123
+ const metricDef = {
124
+ name,
125
+ description: help
126
+ };
127
+ this.histogram = meter.createHistogram(metricDef, {
128
+ advice: buckets.length ? {
129
+ explicitBucketBoundaries: buckets
130
+ } : undefined
131
+ });
132
+ }
110
133
  /**
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) {
115
- if (this.labelNames.length === 0) {
116
- throw new Error('Gauge was initialized without labels support');
134
+ * Starts a timer and returns a function that when called will record the time elapsed
135
+ * @param labels - Optional labels for the observation
136
+ */ startTimer(labels) {
137
+ if (labels) {
138
+ validateLabels(labels, this.labelNames, 'Histogram');
117
139
  }
118
- for (const key of Object.keys(labels)){
119
- if (!this.labelNames.includes(key)) {
120
- throw new Error(`Invalid label key: ${key}`);
140
+ const timer = new Timer();
141
+ return ()=>{
142
+ // Use timer.s() here to get the duration in seconds since this is only currently used by gossipsub_heartbeat_duration_seconds
143
+ const duration = timer.s();
144
+ if (labels) {
145
+ this.observe(labels, duration);
146
+ } else {
147
+ this.observe(duration);
121
148
  }
122
- }
149
+ };
123
150
  }
124
- /**
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) {
129
- try {
130
- return JSON.parse(labelStr);
131
- } catch {
132
- this.logger.error(`Failed to parse label string: ${labelStr}`);
133
- return null;
151
+ observe(labelsOrValue, value) {
152
+ if (typeof labelsOrValue === 'number') {
153
+ this.histogram.record(labelsOrValue);
154
+ } else {
155
+ validateLabels(labelsOrValue, this.labelNames, 'Histogram');
156
+ this.histogram.record(value, labelsOrValue);
134
157
  }
135
158
  }
159
+ reset() {
160
+ // OpenTelemetry histograms cannot be reset, but we implement the interface
161
+ this.logger.silent('OpenTelemetry histograms cannot be fully reset');
162
+ }
136
163
  }
137
164
  /**
138
- * Noop implementation of a Historgram collec
139
- */ class NoopOtelHistogram {
165
+ * Implementation of an AvgMinMax collector
166
+ */ export class OtelAvgMinMax {
140
167
  logger;
141
- constructor(logger, _meter, _name, _help, _buckets = [], _labelNames = []){
168
+ labelNames;
169
+ gauges;
170
+ currentValues;
171
+ labeledValues;
172
+ constructor(logger, meter, name, help, labelNames = []){
142
173
  this.logger = logger;
174
+ this.labelNames = labelNames;
175
+ this.currentValues = [];
176
+ this.labeledValues = new Map();
177
+ // Create three separate gauges for avg, min, and max
178
+ this.gauges = {
179
+ avg: meter.createObservableGauge({
180
+ name: `${name}_avg`,
181
+ description: `${help} (average)`
182
+ }),
183
+ min: meter.createObservableGauge({
184
+ name: `${name}_min`,
185
+ description: `${help} (minimum)`
186
+ }),
187
+ max: meter.createObservableGauge({
188
+ name: `${name}_max`,
189
+ description: `${help} (maximum)`
190
+ })
191
+ };
192
+ // Register callbacks for each gauge
193
+ this.gauges.avg.addCallback(this.observeAvg.bind(this));
194
+ this.gauges.min.addCallback(this.observeMin.bind(this));
195
+ this.gauges.max.addCallback(this.observeMax.bind(this));
143
196
  }
144
- observe(_valueOrLabels, _value) {}
145
- startTimer(_labels) {
146
- return ()=>0;
197
+ set(labelsOrValues, values) {
198
+ if (Array.isArray(labelsOrValues)) {
199
+ this.currentValues = labelsOrValues;
200
+ return;
201
+ } else {
202
+ validateLabels(labelsOrValues, this.labelNames, 'AvgMinMax');
203
+ const labelKey = JSON.stringify(labelsOrValues);
204
+ this.labeledValues.set(labelKey, values || []);
205
+ }
147
206
  }
148
- reset() {
149
- // OpenTelemetry histograms cannot be reset, but we implement the interface
150
- this.logger.warn('OpenTelemetry histograms cannot be reset');
207
+ /**
208
+ * Resets all stored values
209
+ */ reset() {
210
+ this.currentValues = [];
211
+ this.labeledValues.clear();
212
+ }
213
+ /**
214
+ * General function to observe an aggregation
215
+ * @param result - Observer result
216
+ * @param aggregateFn - Function that calculates the aggregation
217
+ */ observeAggregation(result, aggregateFn) {
218
+ // Observe unlabeled values
219
+ if (this.currentValues.length > 0) {
220
+ result.observe(aggregateFn(this.currentValues));
221
+ }
222
+ // Observe labeled values
223
+ for (const [labelStr, values] of this.labeledValues.entries()){
224
+ if (values.length > 0) {
225
+ const labels = parseLabelsSafely(labelStr, this.logger);
226
+ if (labels) {
227
+ result.observe(aggregateFn(values), labels);
228
+ }
229
+ }
230
+ }
231
+ }
232
+ observeAvg(result) {
233
+ this.observeAggregation(result, (arr)=>arr.reduce((sum, val)=>sum + val, 0) / arr.length);
234
+ }
235
+ observeMin(result) {
236
+ this.observeAggregation(result, (arr)=>Math.min.apply(null, arr));
237
+ }
238
+ observeMax(result) {
239
+ this.observeAggregation(result, (arr)=>Math.max.apply(null, arr));
151
240
  }
152
241
  }
153
242
  /**
154
- * Noop implementation of an AvgMinMax collector
155
- */ class NoopOtelAvgMinMax {
156
- _logger;
157
- constructor(_logger, _meter, _name, _help, _labelNames = []){
158
- this._logger = _logger;
159
- }
160
- set(_valueOrLabels, _values) {}
161
- reset() {}
243
+ * Validates that provided labels match the expected schema
244
+ * @param labels - Labels object to validate
245
+ * @param labelNames - Array of allowed label names
246
+ * @param metricType - Type of metric for error message ('Gauge', 'Histogram', 'AvgMinMax')
247
+ * @throws Error if invalid labels are provided
248
+ */ function validateLabels(labels, labelNames, metricType) {
249
+ if (labelNames.length === 0) {
250
+ throw new Error(`${metricType} was initialized without labels support`);
251
+ }
252
+ for (const key of Object.keys(labels)){
253
+ if (!labelNames.includes(key)) {
254
+ throw new Error(`Invalid label key: ${key}`);
255
+ }
256
+ }
257
+ }
258
+ /**
259
+ * Safely parses label string back to object
260
+ * @param labelStr - Stringified labels object
261
+ * @param logger - Logger instance for error reporting
262
+ * @returns Labels object or null if parsing fails
263
+ */ function parseLabelsSafely(labelStr, logger) {
264
+ try {
265
+ return JSON.parse(labelStr);
266
+ } catch {
267
+ logger.error(`Failed to parse label string: ${labelStr}`);
268
+ return null;
269
+ }
162
270
  }
163
271
  /**
164
272
  * Otel metrics Adapter
165
273
  *
166
274
  * Maps the PromClient based MetricsRegister from gossipsub and discv5 services to the Otel MetricsRegister
167
275
  */ export class OtelMetricsAdapter extends Registry {
168
- logger;
169
276
  meter;
170
- constructor(telemetryClient, logger = createLogger('telemetry:otel-metrics-adapter')){
171
- super(), this.logger = logger;
277
+ logger;
278
+ constructor(telemetryClient, bindings){
279
+ super();
280
+ this.logger = createLogger('telemetry:otel-metrics-adapter', bindings);
172
281
  this.meter = telemetryClient.getMeter('metrics-adapter');
173
282
  }
174
283
  gauge(configuration) {
175
284
  return new OtelGauge(this.logger, this.meter, configuration.name, configuration.help, configuration.labelNames);
176
285
  }
177
286
  histogram(configuration) {
178
- return new NoopOtelHistogram(this.logger, this.meter, configuration.name, configuration.help, configuration.buckets, configuration.labelNames);
287
+ return new OtelHistogram(this.logger, this.meter, configuration.name, configuration.help, configuration.buckets, configuration.labelNames);
179
288
  }
180
289
  avgMinMax(configuration) {
181
- return new NoopOtelAvgMinMax(this.logger, this.meter, configuration.name, configuration.help, configuration.labelNames);
290
+ return new OtelAvgMinMax(this.logger, this.meter, configuration.name, configuration.help, configuration.labelNames);
182
291
  }
183
292
  }
package/dest/start.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ import { type LoggerBindings } from '@aztec/foundation/log';
1
2
  import type { TelemetryClientConfig } from './config.js';
2
3
  import type { TelemetryClient } from './telemetry.js';
3
4
  export * from './config.js';
4
- export declare function initTelemetryClient(config: TelemetryClientConfig): TelemetryClient;
5
+ export declare function initTelemetryClient(config: TelemetryClientConfig, bindings?: LoggerBindings): Promise<TelemetryClient>;
5
6
  export declare function getTelemetryClient(): TelemetryClient;
6
- //# sourceMappingURL=start.d.ts.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFMUUsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsY0FBYyxhQUFhLENBQUM7QUFLNUIsd0JBQXNCLG1CQUFtQixDQUN2QyxNQUFNLEVBQUUscUJBQXFCLEVBQzdCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsR0FDeEIsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQWtCMUI7QUFFRCx3QkFBZ0Isa0JBQWtCLElBQUksZUFBZSxDQUVwRCJ9
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAE1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,cAAc,aAAa,CAAC;AAK5B,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,eAAe,CAAC,CAkB1B;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD"}
package/dest/start.js CHANGED
@@ -1,22 +1,23 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import { NoopTelemetryClient } from './noop.js';
3
- import { OpenTelemetryClient } from './otel.js';
4
3
  export * from './config.js';
5
- let initialised = false;
4
+ let initialized = false;
6
5
  let telemetry = new NoopTelemetryClient();
7
- export function initTelemetryClient(config) {
8
- const log = createLogger('telemetry:client');
9
- if (initialised) {
6
+ export async function initTelemetryClient(config, bindings) {
7
+ const log = createLogger('telemetry:client', bindings);
8
+ if (initialized) {
10
9
  log.warn('Telemetry client has already been initialized once');
11
10
  return telemetry;
12
11
  }
13
- if (config.metricsCollectorUrl) {
12
+ if (config.metricsCollectorUrl || config.publicMetricsCollectorUrl) {
14
13
  log.info(`Using OpenTelemetry client with custom collector`);
14
+ // Lazy load OpenTelemetry to avoid loading heavy deps at startup
15
+ const { OpenTelemetryClient } = await import('./otel.js');
15
16
  telemetry = OpenTelemetryClient.createAndStart(config, log);
16
17
  } else {
17
18
  log.info('Using NoopTelemetryClient');
18
19
  }
19
- initialised = true;
20
+ initialized = true;
20
21
  return telemetry;
21
22
  }
22
23
  export function getTelemetryClient() {