@aztec-labs/telemetry-client 6.0.0-nightly.20260829
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/attributes.d.ts +143 -0
- package/dest/attributes.d.ts.map +1 -0
- package/dest/attributes.js +91 -0
- package/dest/bench.d.ts +34 -0
- package/dest/bench.d.ts.map +1 -0
- package/dest/bench.js +115 -0
- package/dest/config.d.ts +21 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/config.js +85 -0
- package/dest/index.d.ts +12 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +11 -0
- package/dest/json_rpc_server_metrics.d.ts +27 -0
- package/dest/json_rpc_server_metrics.d.ts.map +1 -0
- package/dest/json_rpc_server_metrics.js +154 -0
- package/dest/l1_metrics.d.ts +17 -0
- package/dest/l1_metrics.d.ts.map +1 -0
- package/dest/l1_metrics.js +54 -0
- package/dest/lmdb_metrics.d.ts +18 -0
- package/dest/lmdb_metrics.d.ts.map +1 -0
- package/dest/lmdb_metrics.js +34 -0
- package/dest/metric-utils.d.ts +24 -0
- package/dest/metric-utils.d.ts.map +1 -0
- package/dest/metric-utils.js +59 -0
- package/dest/metrics.d.ts +338 -0
- package/dest/metrics.d.ts.map +1 -0
- package/dest/metrics.js +1702 -0
- package/dest/monitored_batch_span_processor.d.ts +33 -0
- package/dest/monitored_batch_span_processor.d.ts.map +1 -0
- package/dest/monitored_batch_span_processor.js +111 -0
- package/dest/nodejs_metrics_monitor.d.ts +19 -0
- package/dest/nodejs_metrics_monitor.d.ts.map +1 -0
- package/dest/nodejs_metrics_monitor.js +115 -0
- package/dest/noop.d.ts +19 -0
- package/dest/noop.d.ts.map +1 -0
- package/dest/noop.js +104 -0
- package/dest/otel.d.ts +43 -0
- package/dest/otel.d.ts.map +1 -0
- package/dest/otel.js +537 -0
- package/dest/otel_filter_metric_exporter.d.ts +20 -0
- package/dest/otel_filter_metric_exporter.d.ts.map +1 -0
- package/dest/otel_filter_metric_exporter.js +67 -0
- package/dest/otel_logger_provider.d.ts +4 -0
- package/dest/otel_logger_provider.d.ts.map +1 -0
- package/dest/otel_logger_provider.js +25 -0
- package/dest/otel_propagation.d.ts +6 -0
- package/dest/otel_propagation.d.ts.map +1 -0
- package/dest/otel_propagation.js +102 -0
- package/dest/otel_resource.d.ts +3 -0
- package/dest/otel_resource.d.ts.map +1 -0
- package/dest/otel_resource.js +53 -0
- package/dest/prom_otel_adapter.d.ts +176 -0
- package/dest/prom_otel_adapter.d.ts.map +1 -0
- package/dest/prom_otel_adapter.js +292 -0
- package/dest/start.d.ts +7 -0
- package/dest/start.d.ts.map +1 -0
- package/dest/start.js +25 -0
- package/dest/telemetry.d.ts +149 -0
- package/dest/telemetry.d.ts.map +1 -0
- package/dest/telemetry.js +139 -0
- package/dest/vendor/attributes.d.ts +6 -0
- package/dest/vendor/attributes.d.ts.map +1 -0
- package/dest/vendor/attributes.js +6 -0
- package/dest/vendor/otel-pino-stream.d.ts +40 -0
- package/dest/vendor/otel-pino-stream.d.ts.map +1 -0
- package/dest/vendor/otel-pino-stream.js +229 -0
- package/dest/with_tracer.d.ts +33 -0
- package/dest/with_tracer.d.ts.map +1 -0
- package/dest/with_tracer.js +32 -0
- package/dest/wrappers/fetch.d.ts +16 -0
- package/dest/wrappers/fetch.d.ts.map +1 -0
- package/dest/wrappers/fetch.js +42 -0
- package/dest/wrappers/index.d.ts +3 -0
- package/dest/wrappers/index.d.ts.map +1 -0
- package/dest/wrappers/index.js +2 -0
- package/dest/wrappers/json_rpc_server.d.ts +4 -0
- package/dest/wrappers/json_rpc_server.d.ts.map +1 -0
- package/dest/wrappers/json_rpc_server.js +16 -0
- package/package.json +95 -0
- package/src/attributes.ts +174 -0
- package/src/bench.ts +168 -0
- package/src/config.ts +135 -0
- package/src/index.ts +11 -0
- package/src/json_rpc_server_metrics.ts +150 -0
- package/src/l1_metrics.ts +64 -0
- package/src/lmdb_metrics.ts +45 -0
- package/src/metric-utils.ts +75 -0
- package/src/metrics.ts +1802 -0
- package/src/monitored_batch_span_processor.ts +147 -0
- package/src/nodejs_metrics_monitor.ts +135 -0
- package/src/noop.ts +152 -0
- package/src/otel.ts +482 -0
- package/src/otel_filter_metric_exporter.ts +80 -0
- package/src/otel_logger_provider.ts +31 -0
- package/src/otel_propagation.ts +107 -0
- package/src/otel_resource.ts +71 -0
- package/src/prom_otel_adapter.ts +450 -0
- package/src/start.ts +42 -0
- package/src/telemetry.ts +348 -0
- package/src/vendor/attributes.ts +6 -0
- package/src/vendor/otel-pino-stream.ts +279 -0
- package/src/with_tracer.ts +35 -0
- package/src/wrappers/fetch.ts +50 -0
- package/src/wrappers/index.ts +2 -0
- package/src/wrappers/json_rpc_server.ts +26 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @overview This file contains the custom attributes used in telemetry events.
|
|
3
|
+
* Attribute names exist in a global namespace, alongside metric names. Use this file to ensure that attribute names are unique.
|
|
4
|
+
*
|
|
5
|
+
* To define a new attribute follow these steps:
|
|
6
|
+
* 1. Make sure it's not a semantic attribute that's already been defined by {@link @opentelemetry/semantic-conventions | OpenTelemetry} (e.g. `service.name`)
|
|
7
|
+
* 2. Come up with a unique name for it so that it doesn't clash with other attributes or metrics.
|
|
8
|
+
* 3. Prefix the attribute name with `aztec` to make it clear that it's a custom attribute.
|
|
9
|
+
* 4. Add a description of what the attribute represents and examples of what it might contain.
|
|
10
|
+
* 5. Start using it.
|
|
11
|
+
*
|
|
12
|
+
* @note Attributes and metric names exist in a hierarchy of namespaces. If a name has been used as a namespace, then it can not be used as a name for an attribute or metric.
|
|
13
|
+
* @example If `aztec.circuit.name` has been defined as an attribute then `aztec.circuit` alone can not be re-used for a metric or attribute because it is already a namespace.
|
|
14
|
+
* @see {@link https://opentelemetry.io/docs/specs/semconv/general/attribute-naming/}
|
|
15
|
+
*/
|
|
16
|
+
/** The host of an HTTP request */
|
|
17
|
+
export declare const HTTP_REQUEST_HOST = "http.header.request.host";
|
|
18
|
+
export declare const HTTP_RESPONSE_STATUS_CODE = "http.response.status_code";
|
|
19
|
+
export declare const JSON_RPC_REJECTION_REASON = "aztec.json_rpc.rejection_reason";
|
|
20
|
+
/** The Aztec network identifier */
|
|
21
|
+
export declare const NETWORK_NAME = "aztec.network_name";
|
|
22
|
+
export declare const AZTEC_NODE_ROLE = "aztec.node_role";
|
|
23
|
+
export declare const AZTEC_ROLLUP_VERSION = "aztec.rollup_version";
|
|
24
|
+
export declare const AZTEC_ROLLUP_ADDRESS = "aztec.rollup_address";
|
|
25
|
+
export declare const AZTEC_REGISTRY_ADDRESS = "aztec.registry_address";
|
|
26
|
+
/**
|
|
27
|
+
* The name of the protocol circuit being run (e.g. public-kernel-setup or base-rollup)
|
|
28
|
+
* @see {@link @aztec-labs/stdlib/stats:CircuitName}
|
|
29
|
+
*/
|
|
30
|
+
export declare const PROTOCOL_CIRCUIT_NAME = "aztec.circuit.protocol_circuit_name";
|
|
31
|
+
/**
|
|
32
|
+
* For an app circuit, the contract:function being run (e.g. Token:transfer)
|
|
33
|
+
*/
|
|
34
|
+
export declare const APP_CIRCUIT_NAME = "aztec.circuit.app_circuit_name";
|
|
35
|
+
/** The block archive */
|
|
36
|
+
export declare const BLOCK_ARCHIVE = "aztec.block.archive";
|
|
37
|
+
/** The block number */
|
|
38
|
+
export declare const BLOCK_NUMBER = "aztec.block.number";
|
|
39
|
+
/** The L2 block hash */
|
|
40
|
+
export declare const BLOCK_HASH = "aztec.block.hash";
|
|
41
|
+
/** The slot number */
|
|
42
|
+
export declare const SLOT_NUMBER = "aztec.slot.number";
|
|
43
|
+
/** Whether an event happened before or after a slot boundary. */
|
|
44
|
+
export declare const SLOT_BOUNDARY_SIDE = "aztec.slot_boundary_side";
|
|
45
|
+
/** The checkpoint number */
|
|
46
|
+
export declare const CHECKPOINT_NUMBER = "aztec.checkpoint.number";
|
|
47
|
+
/** The parent's block number */
|
|
48
|
+
export declare const BLOCK_PARENT = "aztec.block.parent";
|
|
49
|
+
/** How many txs are being processed to build this block */
|
|
50
|
+
export declare const BLOCK_CANDIDATE_TXS_COUNT = "aztec.block.candidate_txs_count";
|
|
51
|
+
/** How many actual txs were included in this block */
|
|
52
|
+
export declare const BLOCK_TXS_COUNT = "aztec.block.txs_count";
|
|
53
|
+
/** The block size */
|
|
54
|
+
export declare const BLOCK_SIZE = "aztec.block.size";
|
|
55
|
+
/** How many blocks are included in this epoch */
|
|
56
|
+
export declare const EPOCH_SIZE = "aztec.epoch.size";
|
|
57
|
+
/** The proposer of a block */
|
|
58
|
+
export declare const BLOCK_PROPOSER = "aztec.block.proposer";
|
|
59
|
+
/** The epoch number */
|
|
60
|
+
export declare const EPOCH_NUMBER = "aztec.epoch.number";
|
|
61
|
+
/** Kind of an EpochSession: 'full' or 'partial'. */
|
|
62
|
+
export declare const EPOCH_SESSION_KIND = "aztec.epoch_session.kind";
|
|
63
|
+
/** The tx hash */
|
|
64
|
+
export declare const TX_HASH = "aztec.tx.hash";
|
|
65
|
+
/** Generic attribute representing whether the action was successful or not */
|
|
66
|
+
export declare const OK = "aztec.ok";
|
|
67
|
+
/** Generic status attribute */
|
|
68
|
+
export declare const STATUS = "aztec.status";
|
|
69
|
+
/** Generic error type attribute */
|
|
70
|
+
export declare const ERROR_TYPE = "aztec.error_type";
|
|
71
|
+
/** The cause of an archiver prune (unproven / uncheckpointed / l1_conflict / orphan / l1_mismatch) */
|
|
72
|
+
export declare const PRUNE_TYPE = "aztec.archiver.prune_type";
|
|
73
|
+
/** The type of the transaction */
|
|
74
|
+
export declare const L1_TX_TYPE = "aztec.l1.tx_type";
|
|
75
|
+
/** The L1 address of the entity that sent a transaction to L1 */
|
|
76
|
+
export declare const L1_SENDER = "aztec.l1.sender";
|
|
77
|
+
/** The L1 address receiving rewards */
|
|
78
|
+
export declare const COINBASE = "aztec.coinbase";
|
|
79
|
+
/** The phase of the transaction */
|
|
80
|
+
export declare const TX_PHASE_NAME = "aztec.tx.phase_name";
|
|
81
|
+
/** The reason for disconnecting a peer */
|
|
82
|
+
export declare const P2P_GOODBYE_REASON = "aztec.p2p.goodbye.reason";
|
|
83
|
+
/** The proving job type */
|
|
84
|
+
export declare const PROVING_JOB_TYPE = "aztec.proving.job_type";
|
|
85
|
+
/** The proving job id */
|
|
86
|
+
export declare const PROVING_JOB_ID = "aztec.proving.job_id";
|
|
87
|
+
/** Merkle tree name */
|
|
88
|
+
export declare const MERKLE_TREE_NAME = "aztec.merkle_tree.name";
|
|
89
|
+
/** The prover-id in a root rollup proof. */
|
|
90
|
+
export declare const ROLLUP_PROVER_ID = "aztec.rollup.prover_id";
|
|
91
|
+
/** Whether the proof submission was timed out (delayed more than 20 min) */
|
|
92
|
+
export declare const PROOF_TIMED_OUT = "aztec.proof.timed_out";
|
|
93
|
+
/** Status of the validator (eg proposer, in-committee, none) */
|
|
94
|
+
export declare const VALIDATOR_STATUS = "aztec.validator_status";
|
|
95
|
+
export declare const P2P_ID = "aztec.p2p.id";
|
|
96
|
+
export declare const P2P_REQ_RESP_PROTOCOL = "aztec.p2p.req_resp.protocol";
|
|
97
|
+
/** The state of a peer (Healthy, Disconnect, Banned) */
|
|
98
|
+
export declare const P2P_PEER_SCORE_STATE = "aztec.p2p.peer_score_state";
|
|
99
|
+
export declare const POOL_NAME = "aztec.pool.name";
|
|
100
|
+
export declare const PEER_ID = "aztec.p2p.peer_id";
|
|
101
|
+
export declare const SEQUENCER_STATE = "aztec.sequencer.state";
|
|
102
|
+
export declare const SIMULATOR_PHASE = "aztec.simulator.phase";
|
|
103
|
+
export declare const TARGET_ADDRESS = "aztec.address.target";
|
|
104
|
+
export declare const SENDER_ADDRESS = "aztec.address.sender";
|
|
105
|
+
export declare const MANA_USED = "aztec.mana.used";
|
|
106
|
+
export declare const TOTAL_INSTRUCTIONS = "aztec.total_instructions";
|
|
107
|
+
/** Whether a sync process is the initial run, which is usually slower than iterative ones. */
|
|
108
|
+
export declare const INITIAL_SYNC = "aztec.initial_sync";
|
|
109
|
+
/** Identifier for the tables in a world state DB */
|
|
110
|
+
export declare const WS_DB_DATA_TYPE = "aztec.world_state.db_type";
|
|
111
|
+
/** Identifier for component database (e.g. archiver, tx pool) */
|
|
112
|
+
export declare const DB_DATA_TYPE = "aztec.db_type";
|
|
113
|
+
export declare const REVERTIBILITY = "aztec.revertibility";
|
|
114
|
+
export declare const GAS_DIMENSION = "aztec.gas_dimension";
|
|
115
|
+
export declare const WORLD_STATE_REQUEST_TYPE = "aztec.world_state_request";
|
|
116
|
+
export declare const NODEJS_EVENT_LOOP_STATE = "nodejs.eventloop.state";
|
|
117
|
+
export declare const TOPIC_NAME = "aztec.gossip.topic_name";
|
|
118
|
+
/** Stage of gossiped tx validation (deserialize, fast_validation_setup, fast_validation, pool_precheck, proof_verify, pool_add) */
|
|
119
|
+
export declare const TX_VALIDATION_STAGE = "aztec.p2p.tx_validation_stage";
|
|
120
|
+
/** Operation type enqueued on the mempool serial queue */
|
|
121
|
+
export declare const MEMPOOL_OPERATION = "aztec.mempool.operation";
|
|
122
|
+
/** The reason a transaction was evicted from the tx pool */
|
|
123
|
+
export declare const TX_POOL_EVICTION_REASON = "aztec.mempool.eviction_reason";
|
|
124
|
+
export declare const TX_COLLECTION_METHOD = "aztec.tx_collection.method";
|
|
125
|
+
/** Scope of L1 transaction (sequencer, prover, or other) */
|
|
126
|
+
export declare const L1_TX_SCOPE = "aztec.l1_tx.scope";
|
|
127
|
+
/** Generic error type attribute */
|
|
128
|
+
export declare const IS_COMMITTEE_MEMBER = "aztec.is_committee_member";
|
|
129
|
+
/** Fisherman fee analysis strategy identifier */
|
|
130
|
+
export declare const FISHERMAN_FEE_STRATEGY_ID = "aztec.fisherman.strategy_id";
|
|
131
|
+
/** Whether the analyzed block reached 100% blob capacity */
|
|
132
|
+
export declare const BLOCK_FULL = "aztec.block_full";
|
|
133
|
+
/** The L1 transaction target for block proposal */
|
|
134
|
+
export declare const L1_BLOCK_PROPOSAL_TX_TARGET = "aztec.l1.block_proposal_tx_target";
|
|
135
|
+
/** Whether tracing methods were used to extract block proposal data */
|
|
136
|
+
export declare const L1_BLOCK_PROPOSAL_USED_TRACE = "aztec.l1.block_proposal_used_trace";
|
|
137
|
+
/** HA signer duty type (e.g., BLOCK_PROPOSAL, CHECKPOINT_ATTESTATION) */
|
|
138
|
+
export declare const HA_DUTY_TYPE = "aztec.ha_signer.duty_type";
|
|
139
|
+
/** HA signer node identifier */
|
|
140
|
+
export declare const HA_NODE_ID = "aztec.ha_signer.node_id";
|
|
141
|
+
/** The address of an attester (validator) participating in consensus */
|
|
142
|
+
export declare const ATTESTER_ADDRESS = "aztec.attester.address";
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F0dHJpYnV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxrQ0FBa0M7QUFDbEMsZUFBTyxNQUFNLGlCQUFpQiw2QkFBNkIsQ0FBQztBQUM1RCxlQUFPLE1BQU0seUJBQXlCLDhCQUE4QixDQUFDO0FBRXJFLGVBQU8sTUFBTSx5QkFBeUIsb0NBQW9DLENBQUM7QUFFM0UsbUNBQW1DO0FBQ25DLGVBQU8sTUFBTSxZQUFZLHVCQUF1QixDQUFDO0FBRWpELGVBQU8sTUFBTSxlQUFlLG9CQUFvQixDQUFDO0FBQ2pELGVBQU8sTUFBTSxvQkFBb0IseUJBQXlCLENBQUM7QUFDM0QsZUFBTyxNQUFNLG9CQUFvQix5QkFBeUIsQ0FBQztBQUMzRCxlQUFPLE1BQU0sc0JBQXNCLDJCQUEyQixDQUFDO0FBRS9EOzs7R0FHRztBQUNILGVBQU8sTUFBTSxxQkFBcUIsd0NBQXdDLENBQUM7QUFFM0U7O0dBRUc7QUFDSCxlQUFPLE1BQU0sZ0JBQWdCLG1DQUFtQyxDQUFDO0FBRWpFLHdCQUF3QjtBQUN4QixlQUFPLE1BQU0sYUFBYSx3QkFBd0IsQ0FBQztBQUNuRCx1QkFBdUI7QUFDdkIsZUFBTyxNQUFNLFlBQVksdUJBQXVCLENBQUM7QUFDakQsd0JBQXdCO0FBQ3hCLGVBQU8sTUFBTSxVQUFVLHFCQUFxQixDQUFDO0FBQzdDLHNCQUFzQjtBQUN0QixlQUFPLE1BQU0sV0FBVyxzQkFBc0IsQ0FBQztBQUMvQyxpRUFBaUU7QUFDakUsZUFBTyxNQUFNLGtCQUFrQiw2QkFBNkIsQ0FBQztBQUM3RCw0QkFBNEI7QUFDNUIsZUFBTyxNQUFNLGlCQUFpQiw0QkFBNEIsQ0FBQztBQUMzRCxnQ0FBZ0M7QUFDaEMsZUFBTyxNQUFNLFlBQVksdUJBQXVCLENBQUM7QUFDakQsMkRBQTJEO0FBQzNELGVBQU8sTUFBTSx5QkFBeUIsb0NBQW9DLENB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @overview This file contains the custom attributes used in telemetry events.
|
|
3
|
+
* Attribute names exist in a global namespace, alongside metric names. Use this file to ensure that attribute names are unique.
|
|
4
|
+
*
|
|
5
|
+
* To define a new attribute follow these steps:
|
|
6
|
+
* 1. Make sure it's not a semantic attribute that's already been defined by {@link @opentelemetry/semantic-conventions | OpenTelemetry} (e.g. `service.name`)
|
|
7
|
+
* 2. Come up with a unique name for it so that it doesn't clash with other attributes or metrics.
|
|
8
|
+
* 3. Prefix the attribute name with `aztec` to make it clear that it's a custom attribute.
|
|
9
|
+
* 4. Add a description of what the attribute represents and examples of what it might contain.
|
|
10
|
+
* 5. Start using it.
|
|
11
|
+
*
|
|
12
|
+
* @note Attributes and metric names exist in a hierarchy of namespaces. If a name has been used as a namespace, then it can not be used as a name for an attribute or metric.
|
|
13
|
+
* @example If `aztec.circuit.name` has been defined as an attribute then `aztec.circuit` alone can not be re-used for a metric or attribute because it is already a namespace.
|
|
14
|
+
* @see {@link https://opentelemetry.io/docs/specs/semconv/general/attribute-naming/}
|
|
15
|
+
*/ /** The host of an HTTP request */ export const HTTP_REQUEST_HOST = 'http.header.request.host';
|
|
16
|
+
export const HTTP_RESPONSE_STATUS_CODE = 'http.response.status_code';
|
|
17
|
+
export const JSON_RPC_REJECTION_REASON = 'aztec.json_rpc.rejection_reason';
|
|
18
|
+
/** The Aztec network identifier */ export const NETWORK_NAME = 'aztec.network_name';
|
|
19
|
+
export const AZTEC_NODE_ROLE = 'aztec.node_role';
|
|
20
|
+
export const AZTEC_ROLLUP_VERSION = 'aztec.rollup_version';
|
|
21
|
+
export const AZTEC_ROLLUP_ADDRESS = 'aztec.rollup_address';
|
|
22
|
+
export const AZTEC_REGISTRY_ADDRESS = 'aztec.registry_address';
|
|
23
|
+
/**
|
|
24
|
+
* The name of the protocol circuit being run (e.g. public-kernel-setup or base-rollup)
|
|
25
|
+
* @see {@link @aztec-labs/stdlib/stats:CircuitName}
|
|
26
|
+
*/ export const PROTOCOL_CIRCUIT_NAME = 'aztec.circuit.protocol_circuit_name';
|
|
27
|
+
/**
|
|
28
|
+
* For an app circuit, the contract:function being run (e.g. Token:transfer)
|
|
29
|
+
*/ export const APP_CIRCUIT_NAME = 'aztec.circuit.app_circuit_name';
|
|
30
|
+
/** The block archive */ export const BLOCK_ARCHIVE = 'aztec.block.archive';
|
|
31
|
+
/** The block number */ export const BLOCK_NUMBER = 'aztec.block.number';
|
|
32
|
+
/** The L2 block hash */ export const BLOCK_HASH = 'aztec.block.hash';
|
|
33
|
+
/** The slot number */ export const SLOT_NUMBER = 'aztec.slot.number';
|
|
34
|
+
/** Whether an event happened before or after a slot boundary. */ export const SLOT_BOUNDARY_SIDE = 'aztec.slot_boundary_side';
|
|
35
|
+
/** The checkpoint number */ export const CHECKPOINT_NUMBER = 'aztec.checkpoint.number';
|
|
36
|
+
/** The parent's block number */ export const BLOCK_PARENT = 'aztec.block.parent';
|
|
37
|
+
/** How many txs are being processed to build this block */ export const BLOCK_CANDIDATE_TXS_COUNT = 'aztec.block.candidate_txs_count';
|
|
38
|
+
/** How many actual txs were included in this block */ export const BLOCK_TXS_COUNT = 'aztec.block.txs_count';
|
|
39
|
+
/** The block size */ export const BLOCK_SIZE = 'aztec.block.size';
|
|
40
|
+
/** How many blocks are included in this epoch */ export const EPOCH_SIZE = 'aztec.epoch.size';
|
|
41
|
+
/** The proposer of a block */ export const BLOCK_PROPOSER = 'aztec.block.proposer';
|
|
42
|
+
/** The epoch number */ export const EPOCH_NUMBER = 'aztec.epoch.number';
|
|
43
|
+
/** Kind of an EpochSession: 'full' or 'partial'. */ export const EPOCH_SESSION_KIND = 'aztec.epoch_session.kind';
|
|
44
|
+
/** The tx hash */ export const TX_HASH = 'aztec.tx.hash';
|
|
45
|
+
/** Generic attribute representing whether the action was successful or not */ export const OK = 'aztec.ok';
|
|
46
|
+
/** Generic status attribute */ export const STATUS = 'aztec.status';
|
|
47
|
+
/** Generic error type attribute */ export const ERROR_TYPE = 'aztec.error_type';
|
|
48
|
+
/** The cause of an archiver prune (unproven / uncheckpointed / l1_conflict / orphan / l1_mismatch) */ export const PRUNE_TYPE = 'aztec.archiver.prune_type';
|
|
49
|
+
/** The type of the transaction */ export const L1_TX_TYPE = 'aztec.l1.tx_type';
|
|
50
|
+
/** The L1 address of the entity that sent a transaction to L1 */ export const L1_SENDER = 'aztec.l1.sender';
|
|
51
|
+
/** The L1 address receiving rewards */ export const COINBASE = 'aztec.coinbase';
|
|
52
|
+
/** The phase of the transaction */ export const TX_PHASE_NAME = 'aztec.tx.phase_name';
|
|
53
|
+
/** The reason for disconnecting a peer */ export const P2P_GOODBYE_REASON = 'aztec.p2p.goodbye.reason';
|
|
54
|
+
/** The proving job type */ export const PROVING_JOB_TYPE = 'aztec.proving.job_type';
|
|
55
|
+
/** The proving job id */ export const PROVING_JOB_ID = 'aztec.proving.job_id';
|
|
56
|
+
/** Merkle tree name */ export const MERKLE_TREE_NAME = 'aztec.merkle_tree.name';
|
|
57
|
+
/** The prover-id in a root rollup proof. */ export const ROLLUP_PROVER_ID = 'aztec.rollup.prover_id';
|
|
58
|
+
/** Whether the proof submission was timed out (delayed more than 20 min) */ export const PROOF_TIMED_OUT = 'aztec.proof.timed_out';
|
|
59
|
+
/** Status of the validator (eg proposer, in-committee, none) */ export const VALIDATOR_STATUS = 'aztec.validator_status';
|
|
60
|
+
export const P2P_ID = 'aztec.p2p.id';
|
|
61
|
+
export const P2P_REQ_RESP_PROTOCOL = 'aztec.p2p.req_resp.protocol';
|
|
62
|
+
/** The state of a peer (Healthy, Disconnect, Banned) */ export const P2P_PEER_SCORE_STATE = 'aztec.p2p.peer_score_state';
|
|
63
|
+
export const POOL_NAME = 'aztec.pool.name';
|
|
64
|
+
export const PEER_ID = 'aztec.p2p.peer_id';
|
|
65
|
+
export const SEQUENCER_STATE = 'aztec.sequencer.state';
|
|
66
|
+
export const SIMULATOR_PHASE = 'aztec.simulator.phase';
|
|
67
|
+
export const TARGET_ADDRESS = 'aztec.address.target';
|
|
68
|
+
export const SENDER_ADDRESS = 'aztec.address.sender';
|
|
69
|
+
export const MANA_USED = 'aztec.mana.used';
|
|
70
|
+
export const TOTAL_INSTRUCTIONS = 'aztec.total_instructions';
|
|
71
|
+
/** Whether a sync process is the initial run, which is usually slower than iterative ones. */ export const INITIAL_SYNC = 'aztec.initial_sync';
|
|
72
|
+
/** Identifier for the tables in a world state DB */ export const WS_DB_DATA_TYPE = 'aztec.world_state.db_type';
|
|
73
|
+
/** Identifier for component database (e.g. archiver, tx pool) */ export const DB_DATA_TYPE = 'aztec.db_type';
|
|
74
|
+
export const REVERTIBILITY = 'aztec.revertibility';
|
|
75
|
+
export const GAS_DIMENSION = 'aztec.gas_dimension';
|
|
76
|
+
export const WORLD_STATE_REQUEST_TYPE = 'aztec.world_state_request';
|
|
77
|
+
export const NODEJS_EVENT_LOOP_STATE = 'nodejs.eventloop.state';
|
|
78
|
+
export const TOPIC_NAME = 'aztec.gossip.topic_name';
|
|
79
|
+
/** Stage of gossiped tx validation (deserialize, fast_validation_setup, fast_validation, pool_precheck, proof_verify, pool_add) */ export const TX_VALIDATION_STAGE = 'aztec.p2p.tx_validation_stage';
|
|
80
|
+
/** Operation type enqueued on the mempool serial queue */ export const MEMPOOL_OPERATION = 'aztec.mempool.operation';
|
|
81
|
+
/** The reason a transaction was evicted from the tx pool */ export const TX_POOL_EVICTION_REASON = 'aztec.mempool.eviction_reason';
|
|
82
|
+
export const TX_COLLECTION_METHOD = 'aztec.tx_collection.method';
|
|
83
|
+
/** Scope of L1 transaction (sequencer, prover, or other) */ export const L1_TX_SCOPE = 'aztec.l1_tx.scope';
|
|
84
|
+
/** Generic error type attribute */ export const IS_COMMITTEE_MEMBER = 'aztec.is_committee_member';
|
|
85
|
+
/** Fisherman fee analysis strategy identifier */ export const FISHERMAN_FEE_STRATEGY_ID = 'aztec.fisherman.strategy_id';
|
|
86
|
+
/** Whether the analyzed block reached 100% blob capacity */ export const BLOCK_FULL = 'aztec.block_full';
|
|
87
|
+
/** The L1 transaction target for block proposal */ export const L1_BLOCK_PROPOSAL_TX_TARGET = 'aztec.l1.block_proposal_tx_target';
|
|
88
|
+
/** Whether tracing methods were used to extract block proposal data */ export const L1_BLOCK_PROPOSAL_USED_TRACE = 'aztec.l1.block_proposal_used_trace';
|
|
89
|
+
/** HA signer duty type (e.g., BLOCK_PROPOSAL, CHECKPOINT_ATTESTATION) */ export const HA_DUTY_TYPE = 'aztec.ha_signer.duty_type';
|
|
90
|
+
/** HA signer node identifier */ export const HA_NODE_ID = 'aztec.ha_signer.node_id';
|
|
91
|
+
/** The address of an attester (validator) participating in consensus */ export const ATTESTER_ADDRESS = 'aztec.attester.address';
|
package/dest/bench.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Context, ValueType } from '@opentelemetry/api';
|
|
2
|
+
import type { AttributesType, Meter, TelemetryClient, Tracer } from './telemetry.js';
|
|
3
|
+
export type BenchmarkMetricsType = {
|
|
4
|
+
name: string;
|
|
5
|
+
metrics: {
|
|
6
|
+
name: string;
|
|
7
|
+
type: 'gauge' | 'counter' | 'histogram';
|
|
8
|
+
description?: string;
|
|
9
|
+
unit?: string;
|
|
10
|
+
valueType?: ValueType;
|
|
11
|
+
points: BenchmarkDataPoint[];
|
|
12
|
+
}[];
|
|
13
|
+
}[];
|
|
14
|
+
export declare class BenchmarkTelemetryClient implements TelemetryClient {
|
|
15
|
+
private meters;
|
|
16
|
+
constructor();
|
|
17
|
+
setExportedPublicTelemetry(_prefixes: string[]): void;
|
|
18
|
+
setPublicTelemetryCollectFrom(_roles: string[]): void;
|
|
19
|
+
getMeter(name: string): Meter;
|
|
20
|
+
getTracer(): Tracer;
|
|
21
|
+
stop(): Promise<void>;
|
|
22
|
+
flush(): Promise<void>;
|
|
23
|
+
isEnabled(): boolean;
|
|
24
|
+
getTraceContext(): string | undefined;
|
|
25
|
+
extractPropagatedContext(): undefined;
|
|
26
|
+
getMeters(): BenchmarkMetricsType;
|
|
27
|
+
clear(): void;
|
|
28
|
+
}
|
|
29
|
+
export type BenchmarkDataPoint = {
|
|
30
|
+
value: number;
|
|
31
|
+
attributes?: AttributesType;
|
|
32
|
+
context?: Context;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVuY2guZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9iZW5jaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBMkIsT0FBTyxFQUE2QixTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlqSCxPQUFPLEtBQUssRUFDVixjQUFjLEVBR2QsS0FBSyxFQUdMLGVBQWUsRUFDZixNQUFNLEVBRVAsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxNQUFNLENBQUM7UUFDYixJQUFJLEVBQUUsT0FBTyxHQUFHLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDeEMsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNkLFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztRQUN0QixNQUFNLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztLQUM5QixFQUFFLENBQUM7Q0FDTCxFQUFFLENBQUM7QUFFSixxQkFBYSx3QkFBeUIsWUFBVyxlQUFlO0lBQzlELE9BQU8sQ0FBQyxNQUFNLENBQTRCO0lBRTFDLGNBR0M7SUFFRCwwQkFBMEIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFHO0lBQ3hELDZCQUE2QixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUc7SUFFeEQsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsS0FBSyxDQUk1QjtJQUVELFNBQVMsSUFBSSxNQUFNLENBRWxCO0lBRUQsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFcEI7SUFFRCxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVyQjtJQUVELFNBQVMsWUFFUjtJQUVELGVBQWUsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUVwQztJQUVELHdCQUF3QixjQUV2QjtJQUVELFNBQVMsSUFBSSxvQkFBb0IsQ0FFaEM7SUFFRCxLQUFLLFNBRUo7Q0FDRjtBQW9ERCxNQUFNLE1BQU0sa0JBQWtCLEdBQUc7SUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQUMsVUFBVSxDQUFDLEVBQUUsY0FBYyxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFBO0NBQUUsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bench.d.ts","sourceRoot":"","sources":["../src/bench.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA2B,OAAO,EAA6B,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIjH,OAAO,KAAK,EACV,cAAc,EAGd,KAAK,EAGL,eAAe,EACf,MAAM,EAEP,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;QACxC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,MAAM,EAAE,kBAAkB,EAAE,CAAC;KAC9B,EAAE,CAAC;CACL,EAAE,CAAC;AAEJ,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,OAAO,CAAC,MAAM,CAA4B;IAE1C,cAGC;IAED,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAG;IACxD,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAG;IAExD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAI5B;IAED,SAAS,IAAI,MAAM,CAElB;IAED,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpB;IAED,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAErB;IAED,SAAS,YAER;IAED,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,wBAAwB,cAEvB;IAED,SAAS,IAAI,oBAAoB,CAEhC;IAED,KAAK,SAEJ;CACF;AAoDD,MAAM,MAAM,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC"}
|
package/dest/bench.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { createLogger } from '@aztec-labs/foundation/log';
|
|
2
|
+
import { NoopTracer } from './noop.js';
|
|
3
|
+
export class BenchmarkTelemetryClient {
|
|
4
|
+
meters = [];
|
|
5
|
+
constructor(){
|
|
6
|
+
const log = createLogger('telemetry:client');
|
|
7
|
+
log.info(`Using benchmark telemetry client`);
|
|
8
|
+
}
|
|
9
|
+
setExportedPublicTelemetry(_prefixes) {}
|
|
10
|
+
setPublicTelemetryCollectFrom(_roles) {}
|
|
11
|
+
getMeter(name) {
|
|
12
|
+
const meter = new InMemoryPlainMeter(name);
|
|
13
|
+
this.meters.push(meter);
|
|
14
|
+
return meter;
|
|
15
|
+
}
|
|
16
|
+
getTracer() {
|
|
17
|
+
return new NoopTracer();
|
|
18
|
+
}
|
|
19
|
+
stop() {
|
|
20
|
+
return Promise.resolve();
|
|
21
|
+
}
|
|
22
|
+
flush() {
|
|
23
|
+
return Promise.resolve();
|
|
24
|
+
}
|
|
25
|
+
isEnabled() {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
getTraceContext() {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
extractPropagatedContext() {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
getMeters() {
|
|
35
|
+
return this.meters;
|
|
36
|
+
}
|
|
37
|
+
clear() {
|
|
38
|
+
this.meters.forEach((meter)=>meter.clear());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
class InMemoryPlainMeter {
|
|
42
|
+
name;
|
|
43
|
+
metrics;
|
|
44
|
+
constructor(name){
|
|
45
|
+
this.name = name;
|
|
46
|
+
this.metrics = [];
|
|
47
|
+
}
|
|
48
|
+
clear() {
|
|
49
|
+
this.metrics.forEach((metric)=>metric.clear());
|
|
50
|
+
}
|
|
51
|
+
createGauge(metric) {
|
|
52
|
+
return this.createMetric('gauge', metric);
|
|
53
|
+
}
|
|
54
|
+
createObservableGauge(metric) {
|
|
55
|
+
return this.createMetric('gauge', metric);
|
|
56
|
+
}
|
|
57
|
+
createHistogram(metric, _extraOptions) {
|
|
58
|
+
return this.createMetric('histogram', metric);
|
|
59
|
+
}
|
|
60
|
+
createUpDownCounter(metric) {
|
|
61
|
+
return this.createMetric('counter', metric);
|
|
62
|
+
}
|
|
63
|
+
createObservableUpDownCounter(metric) {
|
|
64
|
+
return this.createMetric('counter', metric);
|
|
65
|
+
}
|
|
66
|
+
createMetric(type, metric) {
|
|
67
|
+
const m = new InMemoryPlainMetric(type, metric.name, {
|
|
68
|
+
description: metric.description,
|
|
69
|
+
unit: metric.unit,
|
|
70
|
+
valueType: metric.valueType
|
|
71
|
+
});
|
|
72
|
+
this.metrics.push(m);
|
|
73
|
+
return m;
|
|
74
|
+
}
|
|
75
|
+
addBatchObservableCallback(_callback, _observables) {}
|
|
76
|
+
removeBatchObservableCallback(_callback, _observables) {}
|
|
77
|
+
}
|
|
78
|
+
class InMemoryPlainMetric {
|
|
79
|
+
type;
|
|
80
|
+
name;
|
|
81
|
+
points;
|
|
82
|
+
description;
|
|
83
|
+
unit;
|
|
84
|
+
valueType;
|
|
85
|
+
constructor(type, name, options){
|
|
86
|
+
this.type = type;
|
|
87
|
+
this.name = name;
|
|
88
|
+
this.points = [];
|
|
89
|
+
this.description = options?.description;
|
|
90
|
+
this.unit = options?.unit;
|
|
91
|
+
this.valueType = options?.valueType;
|
|
92
|
+
}
|
|
93
|
+
add(value, attributes, context) {
|
|
94
|
+
this.points.push({
|
|
95
|
+
value,
|
|
96
|
+
attributes,
|
|
97
|
+
context
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
record(value, attributes, context) {
|
|
101
|
+
this.points.push({
|
|
102
|
+
value,
|
|
103
|
+
attributes,
|
|
104
|
+
context
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
addCallback() {}
|
|
108
|
+
removeCallback() {}
|
|
109
|
+
getPoints() {
|
|
110
|
+
return this.points;
|
|
111
|
+
}
|
|
112
|
+
clear() {
|
|
113
|
+
this.points.splice(0, this.points.length);
|
|
114
|
+
}
|
|
115
|
+
}
|
package/dest/config.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ConfigMappingsType } from '@aztec-labs/foundation/config';
|
|
2
|
+
export interface TelemetryClientConfig {
|
|
3
|
+
metricsCollectorUrl?: URL;
|
|
4
|
+
publicMetricsCollectorUrl?: URL;
|
|
5
|
+
publicIncludeMetrics: string[];
|
|
6
|
+
publicMetricsOptOut: boolean;
|
|
7
|
+
publicMetricsCollectFrom: string[];
|
|
8
|
+
tracesCollectorUrl?: URL;
|
|
9
|
+
logsCollectorUrl?: URL;
|
|
10
|
+
otelCollectIntervalMs: number;
|
|
11
|
+
otelExportTimeoutMs: number;
|
|
12
|
+
otelExcludeMetrics: string[];
|
|
13
|
+
otelIncludeMetrics: string[];
|
|
14
|
+
otelMinTraceDurationMs: number;
|
|
15
|
+
otelBspMaxQueueSize: number;
|
|
16
|
+
otelBspMaxExportBatchSize: number;
|
|
17
|
+
otelBspScheduleDelayMs: number;
|
|
18
|
+
}
|
|
19
|
+
export declare const telemetryClientConfigMappings: ConfigMappingsType<TelemetryClientConfig>;
|
|
20
|
+
export declare function getConfigEnvVars(): TelemetryClientConfig;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUl4QixNQUFNLCtCQUErQixDQUFDO0FBRXZDLE1BQU0sV0FBVyxxQkFBcUI7SUFDcEMsbUJBQW1CLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDMUIseUJBQXlCLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDaEMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDL0IsbUJBQW1CLEVBQUUsT0FBTyxDQUFDO0lBQzdCLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ25DLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ3pCLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ3ZCLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUM5QixtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDN0Isa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDN0Isc0JBQXNCLEVBQUUsTUFBTSxDQUFDO0lBQy9CLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1Qix5QkFBeUIsRUFBRSxNQUFNLENBQUM7SUFDbEMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDO0NBQ2hDO0FBRUQsZUFBTyxNQUFNLDZCQUE2QixFQUFFLGtCQUFrQixDQUFDLHFCQUFxQixDQXlHbkYsQ0FBQztBQUVGLHdCQUFnQixnQkFBZ0IsSUFBSSxxQkFBcUIsQ0FFeEQifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1B,yBAAyB,CAAC,EAAE,GAAG,CAAC;IAChC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,kBAAkB,CAAC,EAAE,GAAG,CAAC;IACzB,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAClC,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,qBAAqB,CAyGnF,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD"}
|
package/dest/config.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper } from '@aztec-labs/foundation/config';
|
|
2
|
+
export const telemetryClientConfigMappings = {
|
|
3
|
+
metricsCollectorUrl: {
|
|
4
|
+
env: 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT',
|
|
5
|
+
description: 'The URL of the telemetry collector for metrics',
|
|
6
|
+
parseEnv: (val)=>new URL(val)
|
|
7
|
+
},
|
|
8
|
+
tracesCollectorUrl: {
|
|
9
|
+
env: 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT',
|
|
10
|
+
description: 'The URL of the telemetry collector for traces',
|
|
11
|
+
parseEnv: (val)=>new URL(val)
|
|
12
|
+
},
|
|
13
|
+
logsCollectorUrl: {
|
|
14
|
+
env: 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT',
|
|
15
|
+
description: 'The URL of the telemetry collector for logs',
|
|
16
|
+
parseEnv: (val)=>new URL(val)
|
|
17
|
+
},
|
|
18
|
+
otelCollectIntervalMs: {
|
|
19
|
+
env: 'OTEL_COLLECT_INTERVAL_MS',
|
|
20
|
+
description: 'The interval at which to collect metrics',
|
|
21
|
+
...numberConfigHelper(60000)
|
|
22
|
+
},
|
|
23
|
+
otelExportTimeoutMs: {
|
|
24
|
+
env: 'OTEL_EXPORT_TIMEOUT_MS',
|
|
25
|
+
description: 'The timeout for exporting metrics',
|
|
26
|
+
...numberConfigHelper(30000)
|
|
27
|
+
},
|
|
28
|
+
otelExcludeMetrics: {
|
|
29
|
+
env: 'OTEL_EXCLUDE_METRICS',
|
|
30
|
+
description: 'A list of metric prefixes to exclude from export',
|
|
31
|
+
parseEnv: (val)=>val ? val.split(',').map((s)=>s.trim()).filter((s)=>s.length > 0) : [],
|
|
32
|
+
defaultValue: []
|
|
33
|
+
},
|
|
34
|
+
otelMinTraceDurationMs: {
|
|
35
|
+
env: 'OTEL_MIN_TRACE_DURATION_MS',
|
|
36
|
+
description: 'The minimum successful trace duration to export in milliseconds. Set to 0 to export all traces.',
|
|
37
|
+
...numberConfigHelper(10)
|
|
38
|
+
},
|
|
39
|
+
otelBspMaxQueueSize: {
|
|
40
|
+
env: 'OTEL_BSP_MAX_QUEUE_SIZE',
|
|
41
|
+
description: 'The maximum number of completed spans to queue before export.',
|
|
42
|
+
...numberConfigHelper(65536)
|
|
43
|
+
},
|
|
44
|
+
otelBspMaxExportBatchSize: {
|
|
45
|
+
env: 'OTEL_BSP_MAX_EXPORT_BATCH_SIZE',
|
|
46
|
+
description: 'The maximum number of spans to send to the collector in a single export.',
|
|
47
|
+
...numberConfigHelper(4096)
|
|
48
|
+
},
|
|
49
|
+
otelBspScheduleDelayMs: {
|
|
50
|
+
env: 'OTEL_BSP_SCHEDULE_DELAY',
|
|
51
|
+
description: 'How long to wait before exporting a partially filled batch of spans, in milliseconds.',
|
|
52
|
+
...numberConfigHelper(5000)
|
|
53
|
+
},
|
|
54
|
+
otelIncludeMetrics: {
|
|
55
|
+
env: 'OTEL_INCLUDE_METRICS',
|
|
56
|
+
description: 'A list of metric prefixes to include in export (ignored if OTEL_EXCLUDE_METRICS is set)',
|
|
57
|
+
parseEnv: (val)=>val ? val.split(',').map((s)=>s.trim()).filter((s)=>s.length > 0) : [],
|
|
58
|
+
defaultValue: []
|
|
59
|
+
},
|
|
60
|
+
publicMetricsCollectorUrl: {
|
|
61
|
+
env: 'PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT',
|
|
62
|
+
description: 'A URL to publish a subset of metrics for public consumption',
|
|
63
|
+
parseEnv: (val)=>new URL(val)
|
|
64
|
+
},
|
|
65
|
+
publicMetricsCollectFrom: {
|
|
66
|
+
env: 'PUBLIC_OTEL_COLLECT_FROM',
|
|
67
|
+
description: 'The role types to collect metrics from',
|
|
68
|
+
parseEnv: (val)=>val ? val.split(',').map((s)=>s.trim()).filter((s)=>s.length > 0) : [],
|
|
69
|
+
defaultValue: []
|
|
70
|
+
},
|
|
71
|
+
publicIncludeMetrics: {
|
|
72
|
+
env: 'PUBLIC_OTEL_INCLUDE_METRICS',
|
|
73
|
+
description: 'A list of metric prefixes to publicly export',
|
|
74
|
+
parseEnv: (val)=>val ? val.split(',').map((s)=>s.trim()).filter((s)=>s.length > 0) : [],
|
|
75
|
+
defaultValue: []
|
|
76
|
+
},
|
|
77
|
+
publicMetricsOptOut: {
|
|
78
|
+
env: 'PUBLIC_OTEL_OPT_OUT',
|
|
79
|
+
description: 'Whether to opt out of sharing optional telemetry',
|
|
80
|
+
...booleanConfigHelper(true)
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
export function getConfigEnvVars() {
|
|
84
|
+
return getConfigFromMappings(telemetryClientConfigMappings);
|
|
85
|
+
}
|
package/dest/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './telemetry.js';
|
|
2
|
+
export * as Metrics from './metrics.js';
|
|
3
|
+
export * as Attributes from './attributes.js';
|
|
4
|
+
export * from './with_tracer.js';
|
|
5
|
+
export * from './prom_otel_adapter.js';
|
|
6
|
+
export * from './lmdb_metrics.js';
|
|
7
|
+
export * from './l1_metrics.js';
|
|
8
|
+
export * from './wrappers/index.js';
|
|
9
|
+
export * from './start.js';
|
|
10
|
+
export * from './otel_propagation.js';
|
|
11
|
+
export * from './json_rpc_server_metrics.js';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC"}
|
package/dest/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './telemetry.js';
|
|
2
|
+
export * as Metrics from './metrics.js';
|
|
3
|
+
export * as Attributes from './attributes.js';
|
|
4
|
+
export * from './with_tracer.js';
|
|
5
|
+
export * from './prom_otel_adapter.js';
|
|
6
|
+
export * from './lmdb_metrics.js';
|
|
7
|
+
export * from './l1_metrics.js';
|
|
8
|
+
export * from './wrappers/index.js';
|
|
9
|
+
export * from './start.js';
|
|
10
|
+
export * from './otel_propagation.js';
|
|
11
|
+
export * from './json_rpc_server_metrics.js';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type Koa from 'koa';
|
|
2
|
+
import type { TelemetryClient } from './telemetry.js';
|
|
3
|
+
/** Fixed reasons for rejecting an RPC request before dispatching it to a registered handler. */
|
|
4
|
+
export type JsonRpcRejectionReason = 'unauthorized' | 'parse_error' | 'invalid_request' | 'method_not_found' | 'bad_request' | 'internal_error';
|
|
5
|
+
/** Records bounded-cardinality metrics for registered JSON-RPC calls, rejected requests, and batches. */
|
|
6
|
+
export declare class JsonRpcServerMetrics {
|
|
7
|
+
private readonly requestCount;
|
|
8
|
+
private readonly requestDuration;
|
|
9
|
+
private readonly requestValidationDuration;
|
|
10
|
+
private readonly rejectedRequestCount;
|
|
11
|
+
private readonly batchCount;
|
|
12
|
+
private readonly batchDuration;
|
|
13
|
+
private readonly batchSize;
|
|
14
|
+
constructor(telemetry: TelemetryClient);
|
|
15
|
+
/** Records the outcome and handler duration of a registered RPC method. */
|
|
16
|
+
recordRequest(fullMethod: string, durationMs: number, ok: boolean): void;
|
|
17
|
+
/** Records a pre-dispatch rejection using a fixed reason. */
|
|
18
|
+
recordRejectedRequest(reason: JsonRpcRejectionReason): void;
|
|
19
|
+
/** Records the duration and outcome of validating a registered RPC method's parameters. */
|
|
20
|
+
recordRequestValidation(fullMethod: string, durationMs: number, ok: boolean): void;
|
|
21
|
+
/** Records the outcome, processing duration, and number of calls in a batch envelope. */
|
|
22
|
+
recordBatch(size: number, durationMs: number, ok: boolean): void;
|
|
23
|
+
}
|
|
24
|
+
export declare function getJsonRpcServerMetrics(): JsonRpcServerMetrics;
|
|
25
|
+
export declare function getOtelJsonRpcServerMetricsMiddleware(metricsProvider?: () => Pick<JsonRpcServerMetrics, 'recordBatch' | 'recordRejectedRequest'>): (ctx: Koa.Context, next: () => Promise<void>) => Promise<void>;
|
|
26
|
+
export declare function splitJsonRpcMethod(fullMethod: string): [service: string | undefined, method: string];
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbl9ycGNfc2VydmVyX21ldHJpY3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9qc29uX3JwY19zZXJ2ZXJfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssR0FBRyxNQUFNLEtBQUssQ0FBQztBQUszQixPQUFPLEtBQUssRUFBbUMsZUFBZSxFQUFpQixNQUFNLGdCQUFnQixDQUFDO0FBS3RHLGdHQUFnRztBQUNoRyxNQUFNLE1BQU0sc0JBQXNCLEdBQzlCLGNBQWMsR0FDZCxhQUFhLEdBQ2IsaUJBQWlCLEdBQ2pCLGtCQUFrQixHQUNsQixhQUFhLEdBQ2IsZ0JBQWdCLENBQUM7QUFFckIseUdBQXlHO0FBQ3pHLHFCQUFhLG9CQUFvQjtJQUMvQixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBZ0I7SUFDN0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQVk7SUFDNUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBWTtJQUN0RCxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFnQjtJQUNyRCxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBZ0I7SUFDM0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQVk7SUFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQVk7SUFFdEMsWUFBWSxTQUFTLEVBQUUsZUFBZSxFQVdyQztJQUVELDJFQUEyRTtJQUNwRSxhQUFhLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsSUFBSSxDQVM5RTtJQUVELDZEQUE2RDtJQUN0RCxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLEdBQUcsSUFBSSxDQUVqRTtJQUVELDJGQUEyRjtJQUNwRix1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLENBT3hGO0lBRUQseUZBQXlGO0lBQ2xGLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLENBS3RFO0NBQ0Y7QUFLRCx3QkFBZ0IsdUJBQXVCLElBQUksb0JBQW9CLENBTzlEO0FBRUQsd0JBQWdCLHFDQUFxQyxDQUNuRCxlQUFlLEdBQUUsTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxHQUFHLHVCQUF1QixDQUEyQixHQUNuSCxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBY2hFO0FBRUQsd0JBQWdCLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBR3BHIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json_rpc_server_metrics.d.ts","sourceRoot":"","sources":["../src/json_rpc_server_metrics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAK3B,OAAO,KAAK,EAAmC,eAAe,EAAiB,MAAM,gBAAgB,CAAC;AAKtG,gGAAgG;AAChG,MAAM,MAAM,sBAAsB,GAC9B,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,kBAAkB,GAClB,aAAa,GACb,gBAAgB,CAAC;AAErB,yGAAyG;AACzG,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAY;IACtD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAY;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC,YAAY,SAAS,EAAE,eAAe,EAWrC;IAED,2EAA2E;IACpE,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAS9E;IAED,6DAA6D;IACtD,qBAAqB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAEjE;IAED,2FAA2F;IACpF,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAOxF;IAED,yFAAyF;IAClF,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAKtE;CACF;AAKD,wBAAgB,uBAAuB,IAAI,oBAAoB,CAO9D;AAED,wBAAgB,qCAAqC,CACnD,eAAe,GAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,uBAAuB,CAA2B,GACnH,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAchE;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAGpG"}
|