@aztec/telemetry-client 0.82.2-alpha-testnet.4 → 0.82.3

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.
@@ -86,6 +86,7 @@ export declare const SIMULATOR_PHASE = "aztec.simulator.phase";
86
86
  export declare const TARGET_ADDRESS = "aztec.address.target";
87
87
  export declare const SENDER_ADDRESS = "aztec.address.sender";
88
88
  export declare const MANA_USED = "aztec.mana.used";
89
+ export declare const TOTAL_INSTRUCTIONS = "aztec.total_instructions";
89
90
  /** Whether a sync process is the initial run, which is usually slower than iterative ones. */
90
91
  export declare const INITIAL_SYNC = "aztec.initial_sync";
91
92
  /** Identifier for the tables in a world state DB */
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,mCAAmC;AACnC,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,wCAAwC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,qBAAqB,wCAAwC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAEjE,wBAAwB;AACxB,eAAO,MAAM,aAAa,wBAAwB,CAAC;AACnD,uBAAuB;AACvB,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,sBAAsB;AACtB,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,gCAAgC;AAChC,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,2DAA2D;AAC3D,eAAO,MAAM,yBAAyB,oCAAoC,CAAC;AAC3E,sDAAsD;AACtD,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,qBAAqB;AACrB,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,iDAAiD;AACjD,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,8BAA8B;AAC9B,eAAO,MAAM,cAAc,yBAAyB,CAAC;AACrD,uBAAuB;AACvB,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,kBAAkB;AAClB,eAAO,MAAM,OAAO,kBAAkB,CAAC;AACvC,8EAA8E;AAC9E,eAAO,MAAM,EAAE,aAAa,CAAC;AAC7B,+BAA+B;AAC/B,eAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,mCAAmC;AACnC,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,kCAAkC;AAClC,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,iEAAiE;AACjE,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAC3C,mCAAmC;AACnC,eAAO,MAAM,aAAa,wBAAwB,CAAC;AACnD,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAC7D,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,yBAAyB;AACzB,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAErD,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,4EAA4E;AAC5E,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,eAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AACnE,eAAO,MAAM,iCAAiC,4CAA4C,CAAC;AAC3F,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAE3C,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,cAAc,yBAAyB,CAAC;AACrD,eAAO,MAAM,cAAc,yBAAyB,CAAC;AACrD,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAE3C,8FAA8F;AAC9F,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAEjD,oDAAoD;AACpD,eAAO,MAAM,eAAe,8BAA8B,CAAC;AAE3D,iEAAiE;AACjE,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAE5C,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE,eAAO,MAAM,uBAAuB,2BAA2B,CAAC"}
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,mCAAmC;AACnC,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,wCAAwC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,qBAAqB,wCAAwC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAEjE,wBAAwB;AACxB,eAAO,MAAM,aAAa,wBAAwB,CAAC;AACnD,uBAAuB;AACvB,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,sBAAsB;AACtB,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,gCAAgC;AAChC,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,2DAA2D;AAC3D,eAAO,MAAM,yBAAyB,oCAAoC,CAAC;AAC3E,sDAAsD;AACtD,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,qBAAqB;AACrB,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,iDAAiD;AACjD,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,8BAA8B;AAC9B,eAAO,MAAM,cAAc,yBAAyB,CAAC;AACrD,uBAAuB;AACvB,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,kBAAkB;AAClB,eAAO,MAAM,OAAO,kBAAkB,CAAC;AACvC,8EAA8E;AAC9E,eAAO,MAAM,EAAE,aAAa,CAAC;AAC7B,+BAA+B;AAC/B,eAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,mCAAmC;AACnC,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,kCAAkC;AAClC,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,iEAAiE;AACjE,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAC3C,mCAAmC;AACnC,eAAO,MAAM,aAAa,wBAAwB,CAAC;AACnD,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAC7D,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,yBAAyB;AACzB,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAErD,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,4EAA4E;AAC5E,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,eAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AACnE,eAAO,MAAM,iCAAiC,4CAA4C,CAAC;AAC3F,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAE3C,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,cAAc,yBAAyB,CAAC;AACrD,eAAO,MAAM,cAAc,yBAAyB,CAAC;AACrD,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAC3C,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,8FAA8F;AAC9F,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAEjD,oDAAoD;AACpD,eAAO,MAAM,eAAe,8BAA8B,CAAC;AAE3D,iEAAiE;AACjE,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAE5C,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE,eAAO,MAAM,uBAAuB,2BAA2B,CAAC"}
@@ -58,6 +58,7 @@ export const SIMULATOR_PHASE = 'aztec.simulator.phase';
58
58
  export const TARGET_ADDRESS = 'aztec.address.target';
59
59
  export const SENDER_ADDRESS = 'aztec.address.sender';
60
60
  export const MANA_USED = 'aztec.mana.used';
61
+ export const TOTAL_INSTRUCTIONS = 'aztec.total_instructions';
61
62
  /** Whether a sync process is the initial run, which is usually slower than iterative ones. */ export const INITIAL_SYNC = 'aztec.initial_sync';
62
63
  /** Identifier for the tables in a world state DB */ export const WS_DB_DATA_TYPE = 'aztec.world_state.db_type';
63
64
  /** Identifier for component database (e.g. archiver, tx pool) */ export const DB_DATA_TYPE = 'aztec.db_type';
@@ -10,7 +10,7 @@ export declare class LmdbMetrics {
10
10
  private dbMapSize;
11
11
  private dbUsedSize;
12
12
  private dbNumItems;
13
- constructor(meter: Meter, attributes?: Partial<Record<"aztec.network_name" | "aztec.circuit.protocol_circuit_name" | "aztec.circuit.protocol_circuit_type" | "aztec.circuit.app_circuit_name" | "aztec.circuit.app_circuit_type" | "aztec.block.archive" | "aztec.block.number" | "aztec.slot.number" | "aztec.block.parent" | "aztec.block.candidate_txs_count" | "aztec.block.txs_count" | "aztec.block.size" | "aztec.epoch.size" | "aztec.block.proposer" | "aztec.epoch.number" | "aztec.tx.hash" | "aztec.ok" | "aztec.status" | "aztec.error_type" | "aztec.l1.tx_type" | "aztec.l1.sender" | "aztec.tx.phase_name" | "aztec.p2p.goodbye.reason" | "aztec.proving.job_type" | "aztec.proving.job_id" | "aztec.merkle_tree.name" | "aztec.rollup.prover_id" | "aztec.proof.timed_out" | "aztec.p2p.id" | "aztec.p2p.req_resp.protocol" | "aztec.p2p.req_resp.batch_requests_count" | "aztec.pool.name" | "aztec.sequencer.state" | "aztec.simulator.phase" | "aztec.address.target" | "aztec.address.sender" | "aztec.mana.used" | "aztec.initial_sync" | "aztec.world_state.db_type" | "aztec.db_type" | "aztec.revertibility" | "aztec.gas_dimension" | "aztec.world_state_request" | "nodejs.eventloop.state", import("@opentelemetry/api").AttributeValue>> | undefined, getStats?: LmdbStatsCallback | undefined);
13
+ constructor(meter: Meter, attributes?: Partial<Record<"aztec.network_name" | "aztec.circuit.protocol_circuit_name" | "aztec.circuit.protocol_circuit_type" | "aztec.circuit.app_circuit_name" | "aztec.circuit.app_circuit_type" | "aztec.block.archive" | "aztec.block.number" | "aztec.slot.number" | "aztec.block.parent" | "aztec.block.candidate_txs_count" | "aztec.block.txs_count" | "aztec.block.size" | "aztec.epoch.size" | "aztec.block.proposer" | "aztec.epoch.number" | "aztec.tx.hash" | "aztec.ok" | "aztec.status" | "aztec.error_type" | "aztec.l1.tx_type" | "aztec.l1.sender" | "aztec.tx.phase_name" | "aztec.p2p.goodbye.reason" | "aztec.proving.job_type" | "aztec.proving.job_id" | "aztec.merkle_tree.name" | "aztec.rollup.prover_id" | "aztec.proof.timed_out" | "aztec.p2p.id" | "aztec.p2p.req_resp.protocol" | "aztec.p2p.req_resp.batch_requests_count" | "aztec.pool.name" | "aztec.sequencer.state" | "aztec.simulator.phase" | "aztec.address.target" | "aztec.address.sender" | "aztec.mana.used" | "aztec.total_instructions" | "aztec.initial_sync" | "aztec.world_state.db_type" | "aztec.db_type" | "aztec.revertibility" | "aztec.gas_dimension" | "aztec.world_state_request" | "nodejs.eventloop.state", import("@opentelemetry/api").AttributeValue>> | undefined, getStats?: LmdbStatsCallback | undefined);
14
14
  private recordDBMetrics;
15
15
  }
16
16
  //# sourceMappingURL=lmdb_metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lmdb_metrics.d.ts","sourceRoot":"","sources":["../src/lmdb_metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,KAAK,EAGX,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE7G,qBAAa,WAAW;IAKI,OAAO,CAAC,UAAU,CAAC;IAAkB,OAAO,CAAC,QAAQ,CAAC;IAJhF,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAkB;gBAExB,KAAK,EAAE,KAAK,EAAU,UAAU,CAAC,4qCAAgB,EAAU,QAAQ,CAAC,+BAAmB;IAmBnG,OAAO,CAAC,eAAe,CAQrB;CACH"}
1
+ {"version":3,"file":"lmdb_metrics.d.ts","sourceRoot":"","sources":["../src/lmdb_metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,KAAK,EAGX,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE7G,qBAAa,WAAW;IAKI,OAAO,CAAC,UAAU,CAAC;IAAkB,OAAO,CAAC,QAAQ,CAAC;IAJhF,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAkB;gBAExB,KAAK,EAAE,KAAK,EAAU,UAAU,CAAC,ysCAAgB,EAAU,QAAQ,CAAC,+BAAmB;IAmBnG,OAAO,CAAC,eAAe,CAQrB;CACH"}
package/dest/metrics.d.ts CHANGED
@@ -59,6 +59,7 @@ export declare const L1_PUBLISHER_BLOB_INCLUSION_BLOCKS = "aztec.l1_publisher.bl
59
59
  export declare const L1_PUBLISHER_BLOB_TX_SUCCESS = "aztec.l1_publisher.blob_tx_success";
60
60
  export declare const L1_PUBLISHER_BLOB_TX_FAILURE = "aztec.l1_publisher.blob_tx_failure";
61
61
  export declare const L1_PUBLISHER_BALANCE = "aztec.l1_publisher.balance";
62
+ export declare const L1_PUBLISHER_TX_TOTAL_FEE = "aztec.l1_publisher.tx_total_fee";
62
63
  export declare const L1_BLOCK_HEIGHT = "aztec.l1.block_height";
63
64
  export declare const L1_BALANCE_ETH = "aztec.l1.balance";
64
65
  export declare const L1_GAS_PRICE_WEI = "aztec.l1.gas_price";
@@ -81,11 +82,15 @@ export declare const PUBLIC_PROCESSOR_TOTAL_GAS = "aztec.public_processor.total_
81
82
  export declare const PUBLIC_PROCESSOR_TOTAL_GAS_HISTOGRAM = "aztec.public_processor.total_gas_histogram";
82
83
  export declare const PUBLIC_PROCESSOR_GAS_RATE = "aztec.public_processor.gas_rate";
83
84
  export declare const PUBLIC_PROCESSOR_TREE_INSERTION = "aztec.public_processor.tree_insertion";
85
+ export declare const PUBLIC_EXECUTOR_PREFIX = "aztec.public_executor.";
84
86
  export declare const PUBLIC_EXECUTOR_SIMULATION_COUNT = "aztec.public_executor.simulation_count";
85
87
  export declare const PUBLIC_EXECUTOR_SIMULATION_DURATION = "aztec.public_executor.simulation_duration";
86
88
  export declare const PUBLIC_EXECUTOR_SIMULATION_MANA_PER_SECOND = "aztec.public_executor.simulation_mana_per_second";
87
- export declare const PUBLIC_EXECUTION_SIMULATION_BYTECODE_SIZE = "aztec.public_executor.simulation_bytecode_size";
88
- export declare const PUBLIC_EXECUTION_PRIVATE_EFFECTS_INSERTION = "aztec.public_executor.private_effects_insertion";
89
+ export declare const PUBLIC_EXECUTOR_SIMULATION_MANA_USED = "aztec.public_executor.simulation_mana_used";
90
+ export declare const PUBLIC_EXECUTOR_SIMULATION_TOTAL_INSTRUCTIONS = "aztec.public_executor.simulation_total_instructions";
91
+ export declare const PUBLIC_EXECUTOR_TX_HASHING = "aztec.public_executor.tx_hashing";
92
+ export declare const PUBLIC_EXECUTOR_PRIVATE_EFFECTS_INSERTION = "aztec.public_executor.private_effects_insertion";
93
+ export declare const PUBLIC_EXECUTOR_SIMULATION_BYTECODE_SIZE = "aztec.public_executor.simulation_bytecode_size";
89
94
  export declare const PROVING_ORCHESTRATOR_BASE_ROLLUP_INPUTS_DURATION = "aztec.proving_orchestrator.base_rollup.inputs_duration";
90
95
  export declare const PROVING_QUEUE_JOB_SIZE = "aztec.proving_queue.job_size";
91
96
  export declare const PROVING_QUEUE_SIZE = "aztec.proving_queue.size";
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
package/dest/metrics.js CHANGED
@@ -57,6 +57,7 @@ export const L1_PUBLISHER_BLOB_INCLUSION_BLOCKS = 'aztec.l1_publisher.blob_inclu
57
57
  export const L1_PUBLISHER_BLOB_TX_SUCCESS = 'aztec.l1_publisher.blob_tx_success';
58
58
  export const L1_PUBLISHER_BLOB_TX_FAILURE = 'aztec.l1_publisher.blob_tx_failure';
59
59
  export const L1_PUBLISHER_BALANCE = 'aztec.l1_publisher.balance';
60
+ export const L1_PUBLISHER_TX_TOTAL_FEE = 'aztec.l1_publisher.tx_total_fee';
60
61
  export const L1_BLOCK_HEIGHT = 'aztec.l1.block_height';
61
62
  export const L1_BALANCE_ETH = 'aztec.l1.balance';
62
63
  export const L1_GAS_PRICE_WEI = 'aztec.l1.gas_price';
@@ -79,11 +80,15 @@ export const PUBLIC_PROCESSOR_TOTAL_GAS = 'aztec.public_processor.total_gas';
79
80
  export const PUBLIC_PROCESSOR_TOTAL_GAS_HISTOGRAM = 'aztec.public_processor.total_gas_histogram';
80
81
  export const PUBLIC_PROCESSOR_GAS_RATE = 'aztec.public_processor.gas_rate';
81
82
  export const PUBLIC_PROCESSOR_TREE_INSERTION = 'aztec.public_processor.tree_insertion';
83
+ export const PUBLIC_EXECUTOR_PREFIX = 'aztec.public_executor.';
82
84
  export const PUBLIC_EXECUTOR_SIMULATION_COUNT = 'aztec.public_executor.simulation_count';
83
85
  export const PUBLIC_EXECUTOR_SIMULATION_DURATION = 'aztec.public_executor.simulation_duration';
84
86
  export const PUBLIC_EXECUTOR_SIMULATION_MANA_PER_SECOND = 'aztec.public_executor.simulation_mana_per_second';
85
- export const PUBLIC_EXECUTION_SIMULATION_BYTECODE_SIZE = 'aztec.public_executor.simulation_bytecode_size';
86
- export const PUBLIC_EXECUTION_PRIVATE_EFFECTS_INSERTION = 'aztec.public_executor.private_effects_insertion';
87
+ export const PUBLIC_EXECUTOR_SIMULATION_MANA_USED = 'aztec.public_executor.simulation_mana_used';
88
+ export const PUBLIC_EXECUTOR_SIMULATION_TOTAL_INSTRUCTIONS = 'aztec.public_executor.simulation_total_instructions';
89
+ export const PUBLIC_EXECUTOR_TX_HASHING = 'aztec.public_executor.tx_hashing';
90
+ export const PUBLIC_EXECUTOR_PRIVATE_EFFECTS_INSERTION = 'aztec.public_executor.private_effects_insertion';
91
+ export const PUBLIC_EXECUTOR_SIMULATION_BYTECODE_SIZE = 'aztec.public_executor.simulation_bytecode_size';
87
92
  export const PROVING_ORCHESTRATOR_BASE_ROLLUP_INPUTS_DURATION = 'aztec.proving_orchestrator.base_rollup.inputs_duration';
88
93
  export const PROVING_QUEUE_JOB_SIZE = 'aztec.proving_queue.job_size';
89
94
  export const PROVING_QUEUE_SIZE = 'aztec.proving_queue.size';
@@ -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>);
137
+ /**
138
+ * Sets the values for calculating avg, min, max
139
+ * @param values - Array of values
140
+ */
141
+ set(values: number[]): void;
100
142
  /**
101
- * Validates that provided labels match the expected schema
102
- * @param labels - Labels object to validate
103
- * @throws Error if invalid labels are provided
143
+ * Sets the values for calculating avg, min, max with labels
144
+ * @param labels - Labels object
145
+ * @param values - Array of values
104
146
  */
105
- private validateLabels;
147
+ set(labels: Labels, values: number[]): void;
148
+ /**
149
+ * Resets all stored values
150
+ */
151
+ reset(): void;
106
152
  /**
107
- * Safely parses label string back to object
108
- * @param labelStr - Stringified labels object
109
- * @returns Labels object or null if parsing fails
153
+ * General function to observe an aggregation
154
+ * @param result - Observer result
155
+ * @param aggregateFn - Function that calculates the aggregation
110
156
  */
111
- private parseLabelsSafely;
157
+ private observeAggregation;
158
+ private observeAvg;
159
+ private observeMin;
160
+ private observeMax;
112
161
  }
113
162
  /**
114
163
  * Otel metrics Adapter
@@ -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";
@@ -59,7 +60,7 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
59
60
  return;
60
61
  }
61
62
  for (const [labelStr, value] of this.labeledValues.entries()){
62
- const labels = this.parseLabelsSafely(labelStr);
63
+ const labels = parseLabelsSafely(labelStr, this.logger);
63
64
  if (labels) {
64
65
  result.observe(value, labels);
65
66
  }
@@ -71,7 +72,7 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
71
72
  return;
72
73
  }
73
74
  if (labelsOrValue) {
74
- this.validateLabels(labelsOrValue);
75
+ validateLabels(labelsOrValue, this.labelNames, 'Gauge');
75
76
  const labelKey = JSON.stringify(labelsOrValue);
76
77
  const currentValue = this.labeledValues.get(labelKey) ?? 0;
77
78
  this.labeledValues.set(labelKey, currentValue + (value ?? 1));
@@ -84,7 +85,7 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
84
85
  this.currentValue = labelsOrValue;
85
86
  return;
86
87
  }
87
- this.validateLabels(labelsOrValue);
88
+ validateLabels(labelsOrValue, this.labelNames, 'Gauge');
88
89
  const labelKey = JSON.stringify(labelsOrValue);
89
90
  this.labeledValues.set(labelKey, value);
90
91
  }
@@ -93,7 +94,7 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
93
94
  * @param labels - Optional labels object
94
95
  */ dec(labels) {
95
96
  if (labels) {
96
- this.validateLabels(labels);
97
+ validateLabels(labels, this.labelNames, 'Gauge');
97
98
  const labelKey = JSON.stringify(labels);
98
99
  const currentValue = this.labeledValues.get(labelKey) ?? 0;
99
100
  this.labeledValues.set(labelKey, currentValue - 1);
@@ -107,58 +108,157 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
107
108
  this.currentValue = 0;
108
109
  this.labeledValues.clear();
109
110
  }
111
+ }
112
+ /**
113
+ * Implementation of a Histogram collector
114
+ */ export class OtelHistogram {
115
+ logger;
116
+ labelNames;
117
+ histogram;
118
+ constructor(logger, meter, name, help, buckets = [], labelNames = []){
119
+ this.logger = logger;
120
+ this.labelNames = labelNames;
121
+ this.histogram = meter.createHistogram(name, {
122
+ description: help,
123
+ advice: buckets.length ? {
124
+ explicitBucketBoundaries: buckets
125
+ } : undefined
126
+ });
127
+ }
110
128
  /**
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');
129
+ * Starts a timer and returns a function that when called will record the time elapsed
130
+ * @param labels - Optional labels for the observation
131
+ */ startTimer(labels) {
132
+ if (labels) {
133
+ validateLabels(labels, this.labelNames, 'Histogram');
117
134
  }
118
- for (const key of Object.keys(labels)){
119
- if (!this.labelNames.includes(key)) {
120
- throw new Error(`Invalid label key: ${key}`);
135
+ const timer = new Timer();
136
+ return ()=>{
137
+ // Use timer.s() here to get the duration in seconds since this is only currently used by gossipsub_heartbeat_duration_seconds
138
+ const duration = timer.s();
139
+ if (labels) {
140
+ this.observe(labels, duration);
141
+ } else {
142
+ this.observe(duration);
121
143
  }
122
- }
144
+ };
123
145
  }
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;
146
+ observe(labelsOrValue, value) {
147
+ if (typeof labelsOrValue === 'number') {
148
+ this.histogram.record(labelsOrValue);
149
+ } else {
150
+ validateLabels(labelsOrValue, this.labelNames, 'Histogram');
151
+ this.histogram.record(value, labelsOrValue);
134
152
  }
135
153
  }
154
+ reset() {
155
+ // OpenTelemetry histograms cannot be reset, but we implement the interface
156
+ this.logger.silent('OpenTelemetry histograms cannot be fully reset');
157
+ }
136
158
  }
137
159
  /**
138
- * Noop implementation of a Historgram collec
139
- */ class NoopOtelHistogram {
160
+ * Implementation of an AvgMinMax collector
161
+ */ export class OtelAvgMinMax {
140
162
  logger;
141
- constructor(logger, _meter, _name, _help, _buckets = [], _labelNames = []){
163
+ labelNames;
164
+ gauges;
165
+ currentValues;
166
+ labeledValues;
167
+ constructor(logger, meter, name, help, labelNames = []){
142
168
  this.logger = logger;
169
+ this.labelNames = labelNames;
170
+ this.currentValues = [];
171
+ this.labeledValues = new Map();
172
+ // Create three separate gauges for avg, min, and max
173
+ this.gauges = {
174
+ avg: meter.createObservableGauge(`${name}_avg`, {
175
+ description: `${help} (average)`
176
+ }),
177
+ min: meter.createObservableGauge(`${name}_min`, {
178
+ description: `${help} (minimum)`
179
+ }),
180
+ max: meter.createObservableGauge(`${name}_max`, {
181
+ description: `${help} (maximum)`
182
+ })
183
+ };
184
+ // Register callbacks for each gauge
185
+ this.gauges.avg.addCallback(this.observeAvg.bind(this));
186
+ this.gauges.min.addCallback(this.observeMin.bind(this));
187
+ this.gauges.max.addCallback(this.observeMax.bind(this));
143
188
  }
144
- observe(_valueOrLabels, _value) {}
145
- startTimer(_labels) {
146
- return ()=>0;
189
+ set(labelsOrValues, values) {
190
+ if (Array.isArray(labelsOrValues)) {
191
+ this.currentValues = labelsOrValues;
192
+ return;
193
+ } else {
194
+ validateLabels(labelsOrValues, this.labelNames, 'AvgMinMax');
195
+ const labelKey = JSON.stringify(labelsOrValues);
196
+ this.labeledValues.set(labelKey, values || []);
197
+ }
147
198
  }
148
- reset() {
149
- // OpenTelemetry histograms cannot be reset, but we implement the interface
150
- this.logger.silent('OpenTelemetry histograms cannot be reset');
199
+ /**
200
+ * Resets all stored values
201
+ */ reset() {
202
+ this.currentValues = [];
203
+ this.labeledValues.clear();
204
+ }
205
+ /**
206
+ * General function to observe an aggregation
207
+ * @param result - Observer result
208
+ * @param aggregateFn - Function that calculates the aggregation
209
+ */ observeAggregation(result, aggregateFn) {
210
+ // Observe unlabeled values
211
+ if (this.currentValues.length > 0) {
212
+ result.observe(aggregateFn(this.currentValues));
213
+ }
214
+ // Observe labeled values
215
+ for (const [labelStr, values] of this.labeledValues.entries()){
216
+ if (values.length > 0) {
217
+ const labels = parseLabelsSafely(labelStr, this.logger);
218
+ if (labels) {
219
+ result.observe(aggregateFn(values), labels);
220
+ }
221
+ }
222
+ }
223
+ }
224
+ observeAvg(result) {
225
+ this.observeAggregation(result, (arr)=>arr.reduce((sum, val)=>sum + val, 0) / arr.length);
226
+ }
227
+ observeMin(result) {
228
+ this.observeAggregation(result, (arr)=>Math.min.apply(null, arr));
229
+ }
230
+ observeMax(result) {
231
+ this.observeAggregation(result, (arr)=>Math.max.apply(null, arr));
232
+ }
233
+ }
234
+ /**
235
+ * Validates that provided labels match the expected schema
236
+ * @param labels - Labels object to validate
237
+ * @param labelNames - Array of allowed label names
238
+ * @param metricType - Type of metric for error message ('Gauge', 'Histogram', 'AvgMinMax')
239
+ * @throws Error if invalid labels are provided
240
+ */ function validateLabels(labels, labelNames, metricType) {
241
+ if (labelNames.length === 0) {
242
+ throw new Error(`${metricType} was initialized without labels support`);
243
+ }
244
+ for (const key of Object.keys(labels)){
245
+ if (!labelNames.includes(key)) {
246
+ throw new Error(`Invalid label key: ${key}`);
247
+ }
151
248
  }
152
249
  }
153
250
  /**
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() {}
251
+ * Safely parses label string back to object
252
+ * @param labelStr - Stringified labels object
253
+ * @param logger - Logger instance for error reporting
254
+ * @returns Labels object or null if parsing fails
255
+ */ function parseLabelsSafely(labelStr, logger) {
256
+ try {
257
+ return JSON.parse(labelStr);
258
+ } catch {
259
+ logger.error(`Failed to parse label string: ${labelStr}`);
260
+ return null;
261
+ }
162
262
  }
163
263
  /**
164
264
  * Otel metrics Adapter
@@ -175,9 +275,9 @@ export var MessageSource = /*#__PURE__*/ function(MessageSource) {
175
275
  return new OtelGauge(this.logger, this.meter, configuration.name, configuration.help, configuration.labelNames);
176
276
  }
177
277
  histogram(configuration) {
178
- return new NoopOtelHistogram(this.logger, this.meter, configuration.name, configuration.help, configuration.buckets, configuration.labelNames);
278
+ return new OtelHistogram(this.logger, this.meter, configuration.name, configuration.help, configuration.buckets, configuration.labelNames);
179
279
  }
180
280
  avgMinMax(configuration) {
181
- return new NoopOtelAvgMinMax(this.logger, this.meter, configuration.name, configuration.help, configuration.labelNames);
281
+ return new OtelAvgMinMax(this.logger, this.meter, configuration.name, configuration.help, configuration.labelNames);
182
282
  }
183
283
  }
package/package.json CHANGED
@@ -26,8 +26,8 @@
26
26
  "!*.test.*"
27
27
  ],
28
28
  "dependencies": {
29
- "@aztec/foundation": "0.82.2-alpha-testnet.4",
30
- "@aztec/stdlib": "0.82.2-alpha-testnet.4",
29
+ "@aztec/foundation": "0.82.3",
30
+ "@aztec/stdlib": "0.82.3",
31
31
  "@opentelemetry/api": "^1.9.0",
32
32
  "@opentelemetry/api-logs": "^0.55.0",
33
33
  "@opentelemetry/core": "^1.28.0",
@@ -86,5 +86,5 @@
86
86
  "../../foundation/src/jest/setup.mjs"
87
87
  ]
88
88
  },
89
- "version": "0.82.2-alpha-testnet.4"
89
+ "version": "0.82.3"
90
90
  }
package/src/attributes.ts CHANGED
@@ -96,6 +96,7 @@ export const SIMULATOR_PHASE = 'aztec.simulator.phase';
96
96
  export const TARGET_ADDRESS = 'aztec.address.target';
97
97
  export const SENDER_ADDRESS = 'aztec.address.sender';
98
98
  export const MANA_USED = 'aztec.mana.used';
99
+ export const TOTAL_INSTRUCTIONS = 'aztec.total_instructions';
99
100
 
100
101
  /** Whether a sync process is the initial run, which is usually slower than iterative ones. */
101
102
  export const INITIAL_SYNC = 'aztec.initial_sync';
package/src/metrics.ts CHANGED
@@ -70,6 +70,7 @@ export const L1_PUBLISHER_BLOB_INCLUSION_BLOCKS = 'aztec.l1_publisher.blob_inclu
70
70
  export const L1_PUBLISHER_BLOB_TX_SUCCESS = 'aztec.l1_publisher.blob_tx_success';
71
71
  export const L1_PUBLISHER_BLOB_TX_FAILURE = 'aztec.l1_publisher.blob_tx_failure';
72
72
  export const L1_PUBLISHER_BALANCE = 'aztec.l1_publisher.balance';
73
+ export const L1_PUBLISHER_TX_TOTAL_FEE = 'aztec.l1_publisher.tx_total_fee';
73
74
 
74
75
  export const L1_BLOCK_HEIGHT = 'aztec.l1.block_height';
75
76
  export const L1_BALANCE_ETH = 'aztec.l1.balance';
@@ -97,11 +98,15 @@ export const PUBLIC_PROCESSOR_TOTAL_GAS_HISTOGRAM = 'aztec.public_processor.tota
97
98
  export const PUBLIC_PROCESSOR_GAS_RATE = 'aztec.public_processor.gas_rate';
98
99
  export const PUBLIC_PROCESSOR_TREE_INSERTION = 'aztec.public_processor.tree_insertion';
99
100
 
101
+ export const PUBLIC_EXECUTOR_PREFIX = 'aztec.public_executor.';
100
102
  export const PUBLIC_EXECUTOR_SIMULATION_COUNT = 'aztec.public_executor.simulation_count';
101
103
  export const PUBLIC_EXECUTOR_SIMULATION_DURATION = 'aztec.public_executor.simulation_duration';
102
104
  export const PUBLIC_EXECUTOR_SIMULATION_MANA_PER_SECOND = 'aztec.public_executor.simulation_mana_per_second';
103
- export const PUBLIC_EXECUTION_SIMULATION_BYTECODE_SIZE = 'aztec.public_executor.simulation_bytecode_size';
104
- export const PUBLIC_EXECUTION_PRIVATE_EFFECTS_INSERTION = 'aztec.public_executor.private_effects_insertion';
105
+ export const PUBLIC_EXECUTOR_SIMULATION_MANA_USED = 'aztec.public_executor.simulation_mana_used';
106
+ export const PUBLIC_EXECUTOR_SIMULATION_TOTAL_INSTRUCTIONS = 'aztec.public_executor.simulation_total_instructions';
107
+ export const PUBLIC_EXECUTOR_TX_HASHING = 'aztec.public_executor.tx_hashing';
108
+ export const PUBLIC_EXECUTOR_PRIVATE_EFFECTS_INSERTION = 'aztec.public_executor.private_effects_insertion';
109
+ export const PUBLIC_EXECUTOR_SIMULATION_BYTECODE_SIZE = 'aztec.public_executor.simulation_bytecode_size';
105
110
 
106
111
  export const PROVING_ORCHESTRATOR_BASE_ROLLUP_INPUTS_DURATION =
107
112
  'aztec.proving_orchestrator.base_rollup.inputs_duration';
@@ -1,8 +1,9 @@
1
1
  import { type Logger, createLogger } from '@aztec/foundation/log';
2
+ import { Timer } from '@aztec/foundation/timer';
2
3
 
3
4
  import { Registry } from 'prom-client';
4
5
 
5
- import type { Meter, MetricsType, ObservableGauge, TelemetryClient } from './telemetry.js';
6
+ import type { Histogram, Meter, MetricsType, ObservableGauge, TelemetryClient } from './telemetry.js';
6
7
 
7
8
  /**
8
9
  * Types matching the gossipsub and libp2p services
@@ -125,7 +126,7 @@ export class OtelGauge<Labels extends LabelsGeneric = NoLabels> implements IGaug
125
126
  }
126
127
 
127
128
  for (const [labelStr, value] of this.labeledValues.entries()) {
128
- const labels = this.parseLabelsSafely(labelStr);
129
+ const labels = parseLabelsSafely(labelStr, this.logger);
129
130
  if (labels) {
130
131
  result.observe(value, labels);
131
132
  }
@@ -146,7 +147,7 @@ export class OtelGauge<Labels extends LabelsGeneric = NoLabels> implements IGaug
146
147
  }
147
148
 
148
149
  if (labelsOrValue) {
149
- this.validateLabels(labelsOrValue);
150
+ validateLabels(labelsOrValue, this.labelNames, 'Gauge');
150
151
  const labelKey = JSON.stringify(labelsOrValue);
151
152
  const currentValue = this.labeledValues.get(labelKey) ?? 0;
152
153
  this.labeledValues.set(labelKey, currentValue + (value ?? 1));
@@ -169,7 +170,7 @@ export class OtelGauge<Labels extends LabelsGeneric = NoLabels> implements IGaug
169
170
  return;
170
171
  }
171
172
 
172
- this.validateLabels(labelsOrValue);
173
+ validateLabels(labelsOrValue, this.labelNames, 'Gauge');
173
174
  const labelKey = JSON.stringify(labelsOrValue);
174
175
  this.labeledValues.set(labelKey, value!);
175
176
  }
@@ -180,7 +181,7 @@ export class OtelGauge<Labels extends LabelsGeneric = NoLabels> implements IGaug
180
181
  */
181
182
  dec(labels?: Labels): void {
182
183
  if (labels) {
183
- this.validateLabels(labels);
184
+ validateLabels(labels, this.labelNames, 'Gauge');
184
185
  const labelKey = JSON.stringify(labels);
185
186
  const currentValue = this.labeledValues.get(labelKey) ?? 0;
186
187
  this.labeledValues.set(labelKey, currentValue - 1);
@@ -197,84 +198,215 @@ export class OtelGauge<Labels extends LabelsGeneric = NoLabels> implements IGaug
197
198
  this.currentValue = 0;
198
199
  this.labeledValues.clear();
199
200
  }
201
+ }
202
+
203
+ /**
204
+ * Implementation of a Histogram collector
205
+ */
206
+ export class OtelHistogram<Labels extends LabelsGeneric = NoLabels> implements IHistogram<Labels> {
207
+ private histogram: Histogram;
208
+
209
+ constructor(
210
+ private logger: Logger,
211
+ meter: Meter,
212
+ name: string,
213
+ help: string,
214
+ buckets: number[] = [],
215
+ private labelNames: Array<keyof Labels> = [],
216
+ ) {
217
+ this.histogram = meter.createHistogram(name as MetricsType, {
218
+ description: help,
219
+ advice: buckets.length ? { explicitBucketBoundaries: buckets } : undefined,
220
+ });
221
+ }
200
222
 
201
223
  /**
202
- * Validates that provided labels match the expected schema
203
- * @param labels - Labels object to validate
204
- * @throws Error if invalid labels are provided
224
+ * Starts a timer and returns a function that when called will record the time elapsed
225
+ * @param labels - Optional labels for the observation
205
226
  */
206
- private validateLabels(labels: Labels): void {
207
- if (this.labelNames.length === 0) {
208
- throw new Error('Gauge was initialized without labels support');
227
+ startTimer(labels?: Labels): () => void {
228
+ if (labels) {
229
+ validateLabels(labels, this.labelNames, 'Histogram');
209
230
  }
210
231
 
211
- for (const key of Object.keys(labels)) {
212
- if (!this.labelNames.includes(key as keyof Labels)) {
213
- throw new Error(`Invalid label key: ${key}`);
232
+ const timer = new Timer();
233
+ return () => {
234
+ // Use timer.s() here to get the duration in seconds since this is only currently used by gossipsub_heartbeat_duration_seconds
235
+ const duration = timer.s();
236
+ if (labels) {
237
+ this.observe(labels, duration);
238
+ } else {
239
+ this.observe(duration);
214
240
  }
215
- }
241
+ };
216
242
  }
217
243
 
218
244
  /**
219
- * Safely parses label string back to object
220
- * @param labelStr - Stringified labels object
221
- * @returns Labels object or null if parsing fails
245
+ * Observes a value
246
+ * @param value - Value to observe
247
+ */
248
+ observe(value: number): void;
249
+ /**
250
+ * Observes a value with labels
251
+ * @param labels - Labels object
252
+ * @param value - Value to observe
222
253
  */
223
- private parseLabelsSafely(labelStr: string): Labels | null {
224
- try {
225
- return JSON.parse(labelStr) as Labels;
226
- } catch {
227
- this.logger.error(`Failed to parse label string: ${labelStr}`);
228
- return null;
254
+ observe(labels: Labels, value: number): void;
255
+ observe(labelsOrValue: Labels | number, value?: number): void {
256
+ if (typeof labelsOrValue === 'number') {
257
+ this.histogram.record(labelsOrValue);
258
+ } else {
259
+ validateLabels(labelsOrValue, this.labelNames, 'Histogram');
260
+ this.histogram.record(value!, labelsOrValue);
229
261
  }
230
262
  }
263
+
264
+ reset(): void {
265
+ // OpenTelemetry histograms cannot be reset, but we implement the interface
266
+ this.logger.silent('OpenTelemetry histograms cannot be fully reset');
267
+ }
231
268
  }
232
269
 
233
270
  /**
234
- * Noop implementation of a Historgram collec
271
+ * Implementation of an AvgMinMax collector
235
272
  */
236
- class NoopOtelHistogram<Labels extends LabelsGeneric = NoLabels> implements IHistogram<Labels> {
273
+ export class OtelAvgMinMax<Labels extends LabelsGeneric = NoLabels> implements IAvgMinMax<Labels> {
274
+ private gauges: {
275
+ avg: ObservableGauge;
276
+ min: ObservableGauge;
277
+ max: ObservableGauge;
278
+ };
279
+
280
+ private currentValues: number[] = [];
281
+ private labeledValues: Map<string, number[]> = new Map();
282
+
237
283
  constructor(
238
284
  private logger: Logger,
239
- _meter: Meter,
240
- _name: string, // MetricsType must be registered in the aztec labels registry
241
- _help: string,
242
- _buckets: number[] = [],
243
- _labelNames: Array<keyof Labels> = [],
244
- ) {}
245
-
246
- // Overload signatures
247
- observe(_value: number): void;
248
- observe(_labels: Labels, _value: number): void;
249
- observe(_valueOrLabels: number | Labels, _value?: number): void {}
250
-
251
- startTimer(_labels?: Labels): (_labels?: Labels) => number {
252
- return () => 0;
285
+ meter: Meter,
286
+ name: string,
287
+ help: string,
288
+ private labelNames: Array<keyof Labels> = [],
289
+ ) {
290
+ // Create three separate gauges for avg, min, and max
291
+ this.gauges = {
292
+ avg: meter.createObservableGauge(`${name}_avg` as MetricsType, {
293
+ description: `${help} (average)`,
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
+ }),
301
+ };
302
+
303
+ // Register callbacks for each gauge
304
+ this.gauges.avg.addCallback(this.observeAvg.bind(this));
305
+ this.gauges.min.addCallback(this.observeMin.bind(this));
306
+ this.gauges.max.addCallback(this.observeMax.bind(this));
253
307
  }
254
308
 
309
+ /**
310
+ * Sets the values for calculating avg, min, max
311
+ * @param values - Array of values
312
+ */
313
+ set(values: number[]): void;
314
+ /**
315
+ * Sets the values for calculating avg, min, max with labels
316
+ * @param labels - Labels object
317
+ * @param values - Array of values
318
+ */
319
+ set(labels: Labels, values: number[]): void;
320
+ set(labelsOrValues: number[] | Labels, values?: number[]): void {
321
+ if (Array.isArray(labelsOrValues)) {
322
+ this.currentValues = labelsOrValues;
323
+ return;
324
+ } else {
325
+ validateLabels(labelsOrValues, this.labelNames, 'AvgMinMax');
326
+ const labelKey = JSON.stringify(labelsOrValues);
327
+ this.labeledValues.set(labelKey, values || []);
328
+ }
329
+ }
330
+
331
+ /**
332
+ * Resets all stored values
333
+ */
255
334
  reset(): void {
256
- // OpenTelemetry histograms cannot be reset, but we implement the interface
257
- this.logger.silent('OpenTelemetry histograms cannot be reset');
335
+ this.currentValues = [];
336
+ this.labeledValues.clear();
337
+ }
338
+
339
+ /**
340
+ * General function to observe an aggregation
341
+ * @param result - Observer result
342
+ * @param aggregateFn - Function that calculates the aggregation
343
+ */
344
+ private observeAggregation(result: any, aggregateFn: (arr: number[]) => number): void {
345
+ // Observe unlabeled values
346
+ if (this.currentValues.length > 0) {
347
+ result.observe(aggregateFn(this.currentValues));
348
+ }
349
+
350
+ // Observe labeled values
351
+ for (const [labelStr, values] of this.labeledValues.entries()) {
352
+ if (values.length > 0) {
353
+ const labels = parseLabelsSafely(labelStr, this.logger);
354
+ if (labels) {
355
+ result.observe(aggregateFn(values), labels);
356
+ }
357
+ }
358
+ }
359
+ }
360
+
361
+ private observeAvg(result: any): void {
362
+ this.observeAggregation(result, arr => arr.reduce((sum, val) => sum + val, 0) / arr.length);
363
+ }
364
+
365
+ private observeMin(result: any): void {
366
+ this.observeAggregation(result, arr => Math.min.apply(null, arr));
367
+ }
368
+
369
+ private observeMax(result: any): void {
370
+ this.observeAggregation(result, arr => Math.max.apply(null, arr));
258
371
  }
259
372
  }
260
373
 
261
374
  /**
262
- * Noop implementation of an AvgMinMax collector
375
+ * Validates that provided labels match the expected schema
376
+ * @param labels - Labels object to validate
377
+ * @param labelNames - Array of allowed label names
378
+ * @param metricType - Type of metric for error message ('Gauge', 'Histogram', 'AvgMinMax')
379
+ * @throws Error if invalid labels are provided
263
380
  */
264
- class NoopOtelAvgMinMax<Labels extends LabelsGeneric = NoLabels> implements IAvgMinMax<Labels> {
265
- constructor(
266
- private _logger: Logger,
267
- _meter: Meter,
268
- _name: string, // MetricsType must be registered in the aztec labels registry
269
- _help: string,
270
- _labelNames: Array<keyof Labels> = [],
271
- ) {}
272
-
273
- set(_values: number[]): void;
274
- set(_labels: Labels, _values: number[]): void;
275
- set(_valueOrLabels: number[] | Labels, _values?: number[]): void {}
276
-
277
- reset(): void {}
381
+ function validateLabels<Labels extends LabelsGeneric>(
382
+ labels: Labels,
383
+ labelNames: Array<keyof Labels>,
384
+ metricType: string,
385
+ ): void {
386
+ if (labelNames.length === 0) {
387
+ throw new Error(`${metricType} was initialized without labels support`);
388
+ }
389
+
390
+ for (const key of Object.keys(labels)) {
391
+ if (!labelNames.includes(key as keyof Labels)) {
392
+ throw new Error(`Invalid label key: ${key}`);
393
+ }
394
+ }
395
+ }
396
+
397
+ /**
398
+ * Safely parses label string back to object
399
+ * @param labelStr - Stringified labels object
400
+ * @param logger - Logger instance for error reporting
401
+ * @returns Labels object or null if parsing fails
402
+ */
403
+ function parseLabelsSafely<Labels extends LabelsGeneric>(labelStr: string, logger: Logger): Labels | null {
404
+ try {
405
+ return JSON.parse(labelStr) as Labels;
406
+ } catch {
407
+ logger.error(`Failed to parse label string: ${labelStr}`);
408
+ return null;
409
+ }
278
410
  }
279
411
 
280
412
  /**
@@ -304,7 +436,7 @@ export class OtelMetricsAdapter extends Registry implements MetricsRegister {
304
436
  }
305
437
 
306
438
  histogram<Labels extends LabelsGeneric = NoLabels>(configuration: HistogramConfig<Labels>): IHistogram<Labels> {
307
- return new NoopOtelHistogram<Labels>(
439
+ return new OtelHistogram<Labels>(
308
440
  this.logger,
309
441
  this.meter,
310
442
  configuration.name as MetricsType,
@@ -315,7 +447,7 @@ export class OtelMetricsAdapter extends Registry implements MetricsRegister {
315
447
  }
316
448
 
317
449
  avgMinMax<Labels extends LabelsGeneric = NoLabels>(configuration: AvgMinMaxConfig<Labels>): IAvgMinMax<Labels> {
318
- return new NoopOtelAvgMinMax<Labels>(
450
+ return new OtelAvgMinMax<Labels>(
319
451
  this.logger,
320
452
  this.meter,
321
453
  configuration.name as MetricsType,