@aztec/telemetry-client 0.0.1-commit.f504929 → 0.0.1-commit.f5a9928

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 (62) hide show
  1. package/dest/attributes.d.ts +12 -2
  2. package/dest/attributes.d.ts.map +1 -1
  3. package/dest/attributes.js +6 -1
  4. package/dest/config.d.ts +3 -1
  5. package/dest/config.d.ts.map +1 -1
  6. package/dest/config.js +17 -9
  7. package/dest/index.d.ts +2 -1
  8. package/dest/index.d.ts.map +1 -1
  9. package/dest/index.js +1 -0
  10. package/dest/json_rpc_server_metrics.d.ts +27 -0
  11. package/dest/json_rpc_server_metrics.d.ts.map +1 -0
  12. package/dest/json_rpc_server_metrics.js +154 -0
  13. package/dest/lmdb_metrics.d.ts +2 -2
  14. package/dest/lmdb_metrics.d.ts.map +1 -1
  15. package/dest/metrics.d.ts +44 -2
  16. package/dest/metrics.d.ts.map +1 -1
  17. package/dest/metrics.js +241 -8
  18. package/dest/monitored_batch_span_processor.d.ts +29 -0
  19. package/dest/monitored_batch_span_processor.d.ts.map +1 -0
  20. package/dest/monitored_batch_span_processor.js +75 -0
  21. package/dest/otel.d.ts +6 -1
  22. package/dest/otel.d.ts.map +1 -1
  23. package/dest/otel.js +99 -4
  24. package/dest/otel_propagation.d.ts +4 -1
  25. package/dest/otel_propagation.d.ts.map +1 -1
  26. package/dest/otel_propagation.js +64 -6
  27. package/dest/start.d.ts +1 -1
  28. package/dest/start.d.ts.map +1 -1
  29. package/dest/start.js +1 -1
  30. package/dest/telemetry.d.ts +5 -3
  31. package/dest/telemetry.d.ts.map +1 -1
  32. package/dest/vendor/attributes.d.ts +2 -1
  33. package/dest/vendor/attributes.d.ts.map +1 -1
  34. package/dest/vendor/attributes.js +1 -0
  35. package/dest/wrappers/fetch.d.ts +3 -3
  36. package/dest/wrappers/fetch.d.ts.map +1 -1
  37. package/dest/wrappers/fetch.js +3 -2
  38. package/dest/wrappers/index.d.ts +1 -2
  39. package/dest/wrappers/index.d.ts.map +1 -1
  40. package/dest/wrappers/index.js +0 -1
  41. package/dest/wrappers/json_rpc_server.d.ts +1 -1
  42. package/dest/wrappers/json_rpc_server.d.ts.map +1 -1
  43. package/dest/wrappers/json_rpc_server.js +6 -1
  44. package/package.json +3 -3
  45. package/src/attributes.ts +14 -1
  46. package/src/config.ts +24 -9
  47. package/src/index.ts +1 -0
  48. package/src/json_rpc_server_metrics.ts +151 -0
  49. package/src/metrics.ts +259 -8
  50. package/src/monitored_batch_span_processor.ts +100 -0
  51. package/src/otel.ts +69 -3
  52. package/src/otel_propagation.ts +63 -5
  53. package/src/start.ts +6 -1
  54. package/src/telemetry.ts +6 -2
  55. package/src/vendor/attributes.ts +1 -0
  56. package/src/wrappers/fetch.ts +9 -3
  57. package/src/wrappers/index.ts +0 -1
  58. package/src/wrappers/json_rpc_server.ts +13 -2
  59. package/dest/wrappers/l2_block_stream.d.ts +0 -16
  60. package/dest/wrappers/l2_block_stream.d.ts.map +0 -1
  61. package/dest/wrappers/l2_block_stream.js +0 -400
  62. package/src/wrappers/l2_block_stream.ts +0 -41
@@ -16,6 +16,7 @@
16
16
  /** The host of an HTTP request */
17
17
  export declare const HTTP_REQUEST_HOST = "http.header.request.host";
18
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";
19
20
  /** The Aztec network identifier */
20
21
  export declare const NETWORK_NAME = "aztec.network_name";
21
22
  export declare const AZTEC_NODE_ROLE = "aztec.node_role";
@@ -39,6 +40,8 @@ export declare const BLOCK_NUMBER = "aztec.block.number";
39
40
  export declare const BLOCK_HASH = "aztec.block.hash";
40
41
  /** The slot number */
41
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";
42
45
  /** The checkpoint number */
43
46
  export declare const CHECKPOINT_NUMBER = "aztec.checkpoint.number";
44
47
  /** The parent's block number */
@@ -55,6 +58,8 @@ export declare const EPOCH_SIZE = "aztec.epoch.size";
55
58
  export declare const BLOCK_PROPOSER = "aztec.block.proposer";
56
59
  /** The epoch number */
57
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";
58
63
  /** The tx hash */
59
64
  export declare const TX_HASH = "aztec.tx.hash";
60
65
  /** Generic attribute representing whether the action was successful or not */
@@ -63,6 +68,8 @@ export declare const OK = "aztec.ok";
63
68
  export declare const STATUS = "aztec.status";
64
69
  /** Generic error type attribute */
65
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";
66
73
  /** The type of the transaction */
67
74
  export declare const L1_TX_TYPE = "aztec.l1.tx_type";
68
75
  /** The L1 address of the entity that sent a transaction to L1 */
@@ -87,7 +94,6 @@ export declare const PROOF_TIMED_OUT = "aztec.proof.timed_out";
87
94
  export declare const VALIDATOR_STATUS = "aztec.validator_status";
88
95
  export declare const P2P_ID = "aztec.p2p.id";
89
96
  export declare const P2P_REQ_RESP_PROTOCOL = "aztec.p2p.req_resp.protocol";
90
- export declare const P2P_REQ_RESP_BATCH_REQUESTS_COUNT = "aztec.p2p.req_resp.batch_requests_count";
91
97
  /** The state of a peer (Healthy, Disconnect, Banned) */
92
98
  export declare const P2P_PEER_SCORE_STATE = "aztec.p2p.peer_score_state";
93
99
  export declare const POOL_NAME = "aztec.pool.name";
@@ -109,6 +115,10 @@ export declare const GAS_DIMENSION = "aztec.gas_dimension";
109
115
  export declare const WORLD_STATE_REQUEST_TYPE = "aztec.world_state_request";
110
116
  export declare const NODEJS_EVENT_LOOP_STATE = "nodejs.eventloop.state";
111
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";
112
122
  /** The reason a transaction was evicted from the tx pool */
113
123
  export declare const TX_POOL_EVICTION_REASON = "aztec.mempool.eviction_reason";
114
124
  export declare const TX_COLLECTION_METHOD = "aztec.tx_collection.method";
@@ -130,4 +140,4 @@ export declare const HA_DUTY_TYPE = "aztec.ha_signer.duty_type";
130
140
  export declare const HA_NODE_ID = "aztec.ha_signer.node_id";
131
141
  /** The address of an attester (validator) participating in consensus */
132
142
  export declare const ATTESTER_ADDRESS = "aztec.attester.address";
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F0dHJpYnV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxrQ0FBa0M7QUFDbEMsZUFBTyxNQUFNLGlCQUFpQiw2QkFBNkIsQ0FBQztBQUM1RCxlQUFPLE1BQU0seUJBQXlCLDhCQUE4QixDQUFDO0FBRXJFLG1DQUFtQztBQUNuQyxlQUFPLE1BQU0sWUFBWSx1QkFBdUIsQ0FBQztBQUVqRCxlQUFPLE1BQU0sZUFBZSxvQkFBb0IsQ0FBQztBQUNqRCxlQUFPLE1BQU0sb0JBQW9CLHlCQUF5QixDQUFDO0FBQzNELGVBQU8sTUFBTSxvQkFBb0IseUJBQXlCLENBQUM7QUFDM0QsZUFBTyxNQUFNLHNCQUFzQiwyQkFBMkIsQ0FBQztBQUUvRDs7O0dBR0c7QUFDSCxlQUFPLE1BQU0scUJBQXFCLHdDQUF3QyxDQUFDO0FBRTNFOztHQUVHO0FBQ0gsZUFBTyxNQUFNLGdCQUFnQixtQ0FBbUMsQ0FBQztBQUVqRSx3QkFBd0I7QUFDeEIsZUFBTyxNQUFNLGFBQWEsd0JBQXdCLENBQUM7QUFDbkQsdUJBQXVCO0FBQ3ZCLGVBQU8sTUFBTSxZQUFZLHVCQUF1QixDQUFDO0FBQ2pELHdCQUF3QjtBQUN4QixlQUFPLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQztBQUM3QyxzQkFBc0I7QUFDdEIsZUFBTyxNQUFNLFdBQVcsc0JBQXNCLENBQUM7QUFDL0MsNEJBQTRCO0FBQzVCLGVBQU8sTUFBTSxpQkFBaUIsNEJBQTRCLENBQUM7QUFDM0QsZ0NBQWdDO0FBQ2hDLGVBQU8sTUFBTSxZQUFZLHVCQUF1QixDQUFDO0FBQ2pELDJEQUEyRDtBQUMzRCxlQUFPLE1BQU0seUJBQXlCLG9DQUFvQyxDQUFDO0FBQzNFLHNEQUFzRDtBQUN0RCxlQUFPLE1BQU0sZUFBZSwwQkFBMEIsQ0FBQztBQUN2RCxxQkFBcUI7QUFDckIsZUFBTyxNQUFNLFVBQVUs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
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F0dHJpYnV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxrQ0FBa0M7QUFDbEMsZUFBTyxNQUFNLGlCQUFpQiw2QkFBNkIsQ0FBQztBQUM1RCxlQUFPLE1BQU0seUJBQXlCLDhCQUE4QixDQUFDO0FBRXJFLGVBQU8sTUFBTSx5QkFBeUIsb0NBQW9DLENBQUM7QUFFM0UsbUNBQW1DO0FBQ25DLGVBQU8sTUFBTSxZQUFZLHVCQUF1QixDQUFDO0FBRWpELGVBQU8sTUFBTSxlQUFlLG9CQUFvQixDQUFDO0FBQ2pELGVBQU8sTUFBTSxvQkFBb0IseUJBQXlCLENBQUM7QUFDM0QsZUFBTyxNQUFNLG9CQUFvQix5QkFBeUIsQ0FBQztBQUMzRCxlQUFPLE1BQU0sc0JBQXNCLDJCQUEyQixDQUFDO0FBRS9EOzs7R0FHRztBQUNILGVBQU8sTUFBTSxxQkFBcUIsd0NBQXdDLENBQUM7QUFFM0U7O0dBRUc7QUFDSCxlQUFPLE1BQU0sZ0JBQWdCLG1DQUFtQyxDQUFDO0FBRWpFLHdCQUF3QjtBQUN4QixlQUFPLE1BQU0sYUFBYSx3QkFBd0IsQ0FBQztBQUNuRCx1QkFBdUI7QUFDdkIsZUFBTyxNQUFNLFlBQVksdUJBQXVCLENBQUM7QUFDakQsd0JBQXdCO0FBQ3hCLGVBQU8sTUFBTSxVQUFVLHFCQUFxQixDQUFDO0FBQzdDLHNCQUFzQjtBQUN0QixlQUFPLE1BQU0sV0FBVyxzQkFBc0IsQ0FBQztBQUMvQyxpRUFBaUU7QUFDakUsZUFBTyxNQUFNLGtCQUFrQiw2QkFBNkIsQ0FBQztBQUM3RCw0QkFBNEI7QUFDNUIsZUFBTyxNQUFNLGlCQUFpQiw0QkFBNEIsQ0FBQztBQUMzRCxnQ0FBZ0M7QUFDaEMsZUFBTyxNQUFNLFlBQVksdUJBQXVCLENBQUM7QUFDakQsMkRBQTJEO0FBQzNELGVBQU8sTUFBTSx5QkFBeUIsb0NBQW9DLENB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
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,kCAAkC;AAClC,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAC5D,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAErE,mCAAmC;AACnC,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAEjD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,wCAAwC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAEjE,wBAAwB;AACxB,eAAO,MAAM,aAAa,wBAAwB,CAAC;AACnD,uBAAuB;AACvB,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,wBAAwB;AACxB,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,sBAAsB;AACtB,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB,4BAA4B,CAAC;AAC3D,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,uCAAuC;AACvC,eAAO,MAAM,QAAQ,mBAAmB,CAAC;AACzC,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;AACrD,uBAAuB;AACvB,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,4EAA4E;AAC5E,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AAEzD,eAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AACnE,eAAO,MAAM,iCAAiC,4CAA4C,CAAC;AAC3F,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AACjE,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAE3C,eAAO,MAAM,OAAO,sBAAsB,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;AAEhE,eAAO,MAAM,UAAU,4BAA4B,CAAC;AAEpD,4DAA4D;AAC5D,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AAEvE,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AAEjE,4DAA4D;AAC5D,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAE/C,mCAAmC;AACnC,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAE/D,iDAAiD;AACjD,eAAO,MAAM,yBAAyB,gCAAgC,CAAC;AAEvE,4DAA4D;AAC5D,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAE7C,mDAAmD;AACnD,eAAO,MAAM,2BAA2B,sCAAsC,CAAC;AAE/E,uEAAuE;AACvE,eAAO,MAAM,4BAA4B,uCAAuC,CAAC;AAEjF,yEAAyE;AACzE,eAAO,MAAM,YAAY,8BAA8B,CAAC;AAExD,gCAAgC;AAChC,eAAO,MAAM,UAAU,4BAA4B,CAAC;AAEpD,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,2BAA2B,CAAC"}
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,kCAAkC;AAClC,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAC5D,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAErE,eAAO,MAAM,yBAAyB,oCAAoC,CAAC;AAE3E,mCAAmC;AACnC,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAEjD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,wCAAwC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAEjE,wBAAwB;AACxB,eAAO,MAAM,aAAa,wBAAwB,CAAC;AACnD,uBAAuB;AACvB,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,wBAAwB;AACxB,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,sBAAsB;AACtB,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAC7D,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB,4BAA4B,CAAC;AAC3D,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,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAC7D,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,sGAAsG;AACtG,eAAO,MAAM,UAAU,8BAA8B,CAAC;AACtD,kCAAkC;AAClC,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,iEAAiE;AACjE,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAC3C,uCAAuC;AACvC,eAAO,MAAM,QAAQ,mBAAmB,CAAC;AACzC,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;AACrD,uBAAuB;AACvB,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,4EAA4E;AAC5E,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AAEzD,eAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AACnE,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AACjE,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAE3C,eAAO,MAAM,OAAO,sBAAsB,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;AAEhE,eAAO,MAAM,UAAU,4BAA4B,CAAC;AAEpD,mIAAmI;AACnI,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AAEnE,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,4BAA4B,CAAC;AAE3D,4DAA4D;AAC5D,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AAEvE,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AAEjE,4DAA4D;AAC5D,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAE/C,mCAAmC;AACnC,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAE/D,iDAAiD;AACjD,eAAO,MAAM,yBAAyB,gCAAgC,CAAC;AAEvE,4DAA4D;AAC5D,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAE7C,mDAAmD;AACnD,eAAO,MAAM,2BAA2B,sCAAsC,CAAC;AAE/E,uEAAuE;AACvE,eAAO,MAAM,4BAA4B,uCAAuC,CAAC;AAEjF,yEAAyE;AACzE,eAAO,MAAM,YAAY,8BAA8B,CAAC;AAExD,gCAAgC;AAChC,eAAO,MAAM,UAAU,4BAA4B,CAAC;AAEpD,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,2BAA2B,CAAC"}
@@ -14,6 +14,7 @@
14
14
  * @see {@link https://opentelemetry.io/docs/specs/semconv/general/attribute-naming/}
15
15
  */ /** The host of an HTTP request */ export const HTTP_REQUEST_HOST = 'http.header.request.host';
16
16
  export const HTTP_RESPONSE_STATUS_CODE = 'http.response.status_code';
17
+ export const JSON_RPC_REJECTION_REASON = 'aztec.json_rpc.rejection_reason';
17
18
  /** The Aztec network identifier */ export const NETWORK_NAME = 'aztec.network_name';
18
19
  export const AZTEC_NODE_ROLE = 'aztec.node_role';
19
20
  export const AZTEC_ROLLUP_VERSION = 'aztec.rollup_version';
@@ -30,6 +31,7 @@ export const AZTEC_REGISTRY_ADDRESS = 'aztec.registry_address';
30
31
  /** The block number */ export const BLOCK_NUMBER = 'aztec.block.number';
31
32
  /** The L2 block hash */ export const BLOCK_HASH = 'aztec.block.hash';
32
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';
33
35
  /** The checkpoint number */ export const CHECKPOINT_NUMBER = 'aztec.checkpoint.number';
34
36
  /** The parent's block number */ export const BLOCK_PARENT = 'aztec.block.parent';
35
37
  /** How many txs are being processed to build this block */ export const BLOCK_CANDIDATE_TXS_COUNT = 'aztec.block.candidate_txs_count';
@@ -38,10 +40,12 @@ export const AZTEC_REGISTRY_ADDRESS = 'aztec.registry_address';
38
40
  /** How many blocks are included in this epoch */ export const EPOCH_SIZE = 'aztec.epoch.size';
39
41
  /** The proposer of a block */ export const BLOCK_PROPOSER = 'aztec.block.proposer';
40
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';
41
44
  /** The tx hash */ export const TX_HASH = 'aztec.tx.hash';
42
45
  /** Generic attribute representing whether the action was successful or not */ export const OK = 'aztec.ok';
43
46
  /** Generic status attribute */ export const STATUS = 'aztec.status';
44
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';
45
49
  /** The type of the transaction */ export const L1_TX_TYPE = 'aztec.l1.tx_type';
46
50
  /** The L1 address of the entity that sent a transaction to L1 */ export const L1_SENDER = 'aztec.l1.sender';
47
51
  /** The L1 address receiving rewards */ export const COINBASE = 'aztec.coinbase';
@@ -55,7 +59,6 @@ export const AZTEC_REGISTRY_ADDRESS = 'aztec.registry_address';
55
59
  /** Status of the validator (eg proposer, in-committee, none) */ export const VALIDATOR_STATUS = 'aztec.validator_status';
56
60
  export const P2P_ID = 'aztec.p2p.id';
57
61
  export const P2P_REQ_RESP_PROTOCOL = 'aztec.p2p.req_resp.protocol';
58
- export const P2P_REQ_RESP_BATCH_REQUESTS_COUNT = 'aztec.p2p.req_resp.batch_requests_count';
59
62
  /** The state of a peer (Healthy, Disconnect, Banned) */ export const P2P_PEER_SCORE_STATE = 'aztec.p2p.peer_score_state';
60
63
  export const POOL_NAME = 'aztec.pool.name';
61
64
  export const PEER_ID = 'aztec.p2p.peer_id';
@@ -73,6 +76,8 @@ export const GAS_DIMENSION = 'aztec.gas_dimension';
73
76
  export const WORLD_STATE_REQUEST_TYPE = 'aztec.world_state_request';
74
77
  export const NODEJS_EVENT_LOOP_STATE = 'nodejs.eventloop.state';
75
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';
76
81
  /** The reason a transaction was evicted from the tx pool */ export const TX_POOL_EVICTION_REASON = 'aztec.mempool.eviction_reason';
77
82
  export const TX_COLLECTION_METHOD = 'aztec.tx_collection.method';
78
83
  /** Scope of L1 transaction (sequencer, prover, or other) */ export const L1_TX_SCOPE = 'aztec.l1_tx.scope';
package/dest/config.d.ts CHANGED
@@ -11,7 +11,9 @@ export interface TelemetryClientConfig {
11
11
  otelExportTimeoutMs: number;
12
12
  otelExcludeMetrics: string[];
13
13
  otelIncludeMetrics: string[];
14
+ otelMinTraceDurationMs: number;
15
+ otelBspMaxQueueSize: number;
14
16
  }
15
17
  export declare const telemetryClientConfigMappings: ConfigMappingsType<TelemetryClientConfig>;
16
18
  export declare function getConfigEnvVars(): TelemetryClientConfig;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUE4QyxNQUFNLDBCQUEwQixDQUFDO0FBRS9HLE1BQU0sV0FBVyxxQkFBcUI7SUFDcEMsbUJBQW1CLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDMUIseUJBQXlCLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDaEMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDL0IsbUJBQW1CLEVBQUUsT0FBTyxDQUFDO0lBQzdCLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ25DLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ3pCLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ3ZCLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUM5QixtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDN0Isa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUM7Q0FDOUI7QUFFRCxlQUFPLE1BQU0sNkJBQTZCLEVBQUUsa0JBQWtCLENBQUMscUJBQXFCLENBdUZuRixDQUFDO0FBRUYsd0JBQWdCLGdCQUFnQixJQUFJLHFCQUFxQixDQUV4RCJ9
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUl4QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE1BQU0sV0FBVyxxQkFBcUI7SUFDcEMsbUJBQW1CLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDMUIseUJBQXlCLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDaEMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDL0IsbUJBQW1CLEVBQUUsT0FBTyxDQUFDO0lBQzdCLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ25DLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ3pCLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ3ZCLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUM5QixtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDN0Isa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDN0Isc0JBQXNCLEVBQUUsTUFBTSxDQUFDO0lBQy9CLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztDQUM3QjtBQUVELGVBQU8sTUFBTSw2QkFBNkIsRUFBRSxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0ErRm5GLENBQUM7QUFFRix3QkFBZ0IsZ0JBQWdCLElBQUkscUJBQXFCLENBRXhEIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA8C,MAAM,0BAA0B,CAAC;AAE/G,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;CAC9B;AAED,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,qBAAqB,CAuFnF,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,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;CAC7B;AAED,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,qBAAqB,CA+FnF,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD"}
package/dest/config.js CHANGED
@@ -1,31 +1,29 @@
1
- import { booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
1
+ import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
2
2
  export const telemetryClientConfigMappings = {
3
3
  metricsCollectorUrl: {
4
4
  env: 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT',
5
5
  description: 'The URL of the telemetry collector for metrics',
6
- parseEnv: (val)=>val && new URL(val)
6
+ parseEnv: (val)=>new URL(val)
7
7
  },
8
8
  tracesCollectorUrl: {
9
9
  env: 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT',
10
10
  description: 'The URL of the telemetry collector for traces',
11
- parseEnv: (val)=>val && new URL(val)
11
+ parseEnv: (val)=>new URL(val)
12
12
  },
13
13
  logsCollectorUrl: {
14
14
  env: 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT',
15
15
  description: 'The URL of the telemetry collector for logs',
16
- parseEnv: (val)=>val && new URL(val)
16
+ parseEnv: (val)=>new URL(val)
17
17
  },
18
18
  otelCollectIntervalMs: {
19
19
  env: 'OTEL_COLLECT_INTERVAL_MS',
20
20
  description: 'The interval at which to collect metrics',
21
- defaultValue: 60000,
22
- parseEnv: (val)=>parseInt(val)
21
+ ...numberConfigHelper(60000)
23
22
  },
24
23
  otelExportTimeoutMs: {
25
24
  env: 'OTEL_EXPORT_TIMEOUT_MS',
26
25
  description: 'The timeout for exporting metrics',
27
- defaultValue: 30000,
28
- parseEnv: (val)=>parseInt(val)
26
+ ...numberConfigHelper(30000)
29
27
  },
30
28
  otelExcludeMetrics: {
31
29
  env: 'OTEL_EXCLUDE_METRICS',
@@ -33,6 +31,16 @@ export const telemetryClientConfigMappings = {
33
31
  parseEnv: (val)=>val ? val.split(',').map((s)=>s.trim()).filter((s)=>s.length > 0) : [],
34
32
  defaultValue: []
35
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(16384)
43
+ },
36
44
  otelIncludeMetrics: {
37
45
  env: 'OTEL_INCLUDE_METRICS',
38
46
  description: 'A list of metric prefixes to include in export (ignored if OTEL_EXCLUDE_METRICS is set)',
@@ -42,7 +50,7 @@ export const telemetryClientConfigMappings = {
42
50
  publicMetricsCollectorUrl: {
43
51
  env: 'PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT',
44
52
  description: 'A URL to publish a subset of metrics for public consumption',
45
- parseEnv: (val)=>val && new URL(val)
53
+ parseEnv: (val)=>new URL(val)
46
54
  },
47
55
  publicMetricsCollectFrom: {
48
56
  env: 'PUBLIC_OTEL_COLLECT_FROM',
package/dest/index.d.ts CHANGED
@@ -8,4 +8,5 @@ export * from './l1_metrics.js';
8
8
  export * from './wrappers/index.js';
9
9
  export * from './start.js';
10
10
  export * from './otel_propagation.js';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsdUJBQXVCLENBQUMifQ==
11
+ export * from './json_rpc_server_metrics.js';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQyJ9
@@ -1 +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"}
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 CHANGED
@@ -8,3 +8,4 @@ export * from './l1_metrics.js';
8
8
  export * from './wrappers/index.js';
9
9
  export * from './start.js';
10
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbl9ycGNfc2VydmVyX21ldHJpY3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9qc29uX3JwY19zZXJ2ZXJfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssR0FBRyxNQUFNLEtBQUssQ0FBQztBQUszQixPQUFPLEtBQUssRUFBbUMsZUFBZSxFQUFpQixNQUFNLGdCQUFnQixDQUFDO0FBS3RHLGdHQUFnRztBQUNoRyxNQUFNLE1BQU0sc0JBQXNCLEdBQzlCLGNBQWMsR0FDZCxhQUFhLEdBQ2IsaUJBQWlCLEdBQ2pCLGtCQUFrQixHQUNsQixhQUFhLEdBQ2IsZ0JBQWdCLENBQUM7QUFFckIseUdBQXlHO0FBQ3pHLHFCQUFhLG9CQUFvQjtJQUMvQixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBZ0I7SUFDN0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQVk7SUFDNUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBWTtJQUN0RCxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFnQjtJQUNyRCxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBZ0I7SUFDM0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQVk7SUFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQVk7SUFFdEMsWUFBWSxTQUFTLEVBQUUsZUFBZSxFQVdyQztJQUVELDJFQUEyRTtJQUNwRSxhQUFhLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsSUFBSSxDQVM5RTtJQUVELDZEQUE2RDtJQUN0RCxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLEdBQUcsSUFBSSxDQUVqRTtJQUVELDJGQUEyRjtJQUNwRix1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLENBT3hGO0lBRUQseUZBQXlGO0lBQ2xGLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLENBS3RFO0NBQ0Y7QUFLRCx3QkFBZ0IsdUJBQXVCLElBQUksb0JBQW9CLENBTzlEO0FBRUQsd0JBQWdCLHFDQUFxQyxDQUNuRCxlQUFlLEdBQUUsTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxHQUFHLHVCQUF1QixDQUEyQixHQUNuSCxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBY2hFO0FBRUQsd0JBQWdCLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBR3BHIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json_rpc_server_metrics.d.ts","sourceRoot":"","sources":["../src/json_rpc_server_metrics.ts"],"names":[],"mappings":"AAEA,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"}
@@ -0,0 +1,154 @@
1
+ import { Timer } from '@aztec/foundation/timer';
2
+ import * as Attributes from './attributes.js';
3
+ import * as Metrics from './metrics.js';
4
+ import { getTelemetryClient } from './start.js';
5
+ import { ATTR_JSONRPC_METHOD, ATTR_JSONRPC_SERVICE } from './vendor/attributes.js';
6
+ const BATCH_SIZE_BUCKETS = [
7
+ 1,
8
+ 2,
9
+ 5,
10
+ 10,
11
+ 20,
12
+ 50,
13
+ 100,
14
+ 200,
15
+ 500,
16
+ 1000
17
+ ];
18
+ /** Records bounded-cardinality metrics for registered JSON-RPC calls, rejected requests, and batches. */ export class JsonRpcServerMetrics {
19
+ requestCount;
20
+ requestDuration;
21
+ requestValidationDuration;
22
+ rejectedRequestCount;
23
+ batchCount;
24
+ batchDuration;
25
+ batchSize;
26
+ constructor(telemetry){
27
+ const meter = telemetry.getMeter('JsonRpcServer');
28
+ this.requestCount = meter.createUpDownCounter(Metrics.JSON_RPC_SERVER_REQUEST_COUNT);
29
+ this.requestDuration = meter.createHistogram(Metrics.JSON_RPC_SERVER_REQUEST_DURATION);
30
+ this.requestValidationDuration = meter.createHistogram(Metrics.JSON_RPC_SERVER_REQUEST_VALIDATION_DURATION);
31
+ this.rejectedRequestCount = meter.createUpDownCounter(Metrics.JSON_RPC_SERVER_REJECTED_REQUEST_COUNT);
32
+ this.batchCount = meter.createUpDownCounter(Metrics.JSON_RPC_SERVER_BATCH_COUNT);
33
+ this.batchDuration = meter.createHistogram(Metrics.JSON_RPC_SERVER_BATCH_DURATION);
34
+ this.batchSize = meter.createHistogram(Metrics.JSON_RPC_SERVER_BATCH_SIZE, {
35
+ advice: {
36
+ explicitBucketBoundaries: BATCH_SIZE_BUCKETS
37
+ }
38
+ });
39
+ }
40
+ /** Records the outcome and handler duration of a registered RPC method. */ recordRequest(fullMethod, durationMs, ok) {
41
+ const [service, method] = splitJsonRpcMethod(fullMethod);
42
+ const attributes = {
43
+ ...service === undefined ? {} : {
44
+ [ATTR_JSONRPC_SERVICE]: service
45
+ },
46
+ [ATTR_JSONRPC_METHOD]: method,
47
+ [Attributes.OK]: ok
48
+ };
49
+ this.requestCount.add(1, attributes);
50
+ this.requestDuration.record(durationMs, attributes);
51
+ }
52
+ /** Records a pre-dispatch rejection using a fixed reason. */ recordRejectedRequest(reason) {
53
+ this.rejectedRequestCount.add(1, {
54
+ [Attributes.JSON_RPC_REJECTION_REASON]: reason
55
+ });
56
+ }
57
+ /** Records the duration and outcome of validating a registered RPC method's parameters. */ recordRequestValidation(fullMethod, durationMs, ok) {
58
+ const [service, method] = splitJsonRpcMethod(fullMethod);
59
+ this.requestValidationDuration.record(durationMs, {
60
+ ...service === undefined ? {} : {
61
+ [ATTR_JSONRPC_SERVICE]: service
62
+ },
63
+ [ATTR_JSONRPC_METHOD]: method,
64
+ [Attributes.OK]: ok
65
+ });
66
+ }
67
+ /** Records the outcome, processing duration, and number of calls in a batch envelope. */ recordBatch(size, durationMs, ok) {
68
+ const attributes = {
69
+ [Attributes.OK]: ok
70
+ };
71
+ this.batchCount.add(1, attributes);
72
+ this.batchDuration.record(durationMs, attributes);
73
+ this.batchSize.record(size, attributes);
74
+ }
75
+ }
76
+ let metricsOwner;
77
+ let metrics;
78
+ export function getJsonRpcServerMetrics() {
79
+ const telemetry = getTelemetryClient();
80
+ if (metricsOwner !== telemetry) {
81
+ metricsOwner = telemetry;
82
+ metrics = new JsonRpcServerMetrics(telemetry);
83
+ }
84
+ return metrics;
85
+ }
86
+ export function getOtelJsonRpcServerMetricsMiddleware(metricsProvider = getJsonRpcServerMetrics) {
87
+ return async function otelJsonRpcServerMetrics(ctx, next) {
88
+ const timer = new Timer();
89
+ await next();
90
+ const requestBody = ctx.request.body;
91
+ if (Array.isArray(requestBody)) {
92
+ metricsProvider().recordBatch(requestBody.length, timer.ms(), Array.isArray(ctx.body));
93
+ }
94
+ for (const reason of getRejectionReasons(ctx.status, ctx.body)){
95
+ metricsProvider().recordRejectedRequest(reason);
96
+ }
97
+ };
98
+ }
99
+ export function splitJsonRpcMethod(fullMethod) {
100
+ const separator = fullMethod.indexOf('_');
101
+ return separator === -1 ? [
102
+ undefined,
103
+ fullMethod
104
+ ] : [
105
+ fullMethod.slice(0, separator),
106
+ fullMethod.slice(separator + 1)
107
+ ];
108
+ }
109
+ function getRejectionReasons(status, response) {
110
+ if (status === 401) {
111
+ return [
112
+ 'unauthorized'
113
+ ];
114
+ }
115
+ const responses = Array.isArray(response) ? response : [
116
+ response
117
+ ];
118
+ return responses.flatMap((item)=>{
119
+ const code = getErrorCode(item);
120
+ if (code === -32700) {
121
+ return [
122
+ 'parse_error'
123
+ ];
124
+ }
125
+ if (code === -32601) {
126
+ return [
127
+ 'method_not_found'
128
+ ];
129
+ }
130
+ if (code === -32600) {
131
+ return [
132
+ 'invalid_request'
133
+ ];
134
+ }
135
+ if (code === -32603) {
136
+ return [
137
+ 'internal_error'
138
+ ];
139
+ }
140
+ if (code === -32000) {
141
+ return [
142
+ 'bad_request'
143
+ ];
144
+ }
145
+ return [];
146
+ });
147
+ }
148
+ function getErrorCode(response) {
149
+ if (!response || typeof response !== 'object' || !('error' in response)) {
150
+ return undefined;
151
+ }
152
+ const error = response.error;
153
+ return error && typeof error === 'object' && 'code' in error && typeof error.code === 'number' ? error.code : undefined;
154
+ }
@@ -12,7 +12,7 @@ export declare class LmdbMetrics {
12
12
  private dbPhysicalFileSize;
13
13
  private dbUsedSize;
14
14
  private dbNumItems;
15
- constructor(meter: Meter, attributes?: Partial<Record<"aztec.address.sender" | "aztec.address.target" | "aztec.attester.address" | "aztec.block.archive" | "aztec.block.candidate_txs_count" | "aztec.block.hash" | "aztec.block.number" | "aztec.block.parent" | "aztec.block.proposer" | "aztec.block.size" | "aztec.block.txs_count" | "aztec.block_full" | "aztec.checkpoint.number" | "aztec.circuit.app_circuit_name" | "aztec.circuit.protocol_circuit_name" | "aztec.coinbase" | "aztec.db_type" | "aztec.epoch.number" | "aztec.epoch.size" | "aztec.error_type" | "aztec.fisherman.strategy_id" | "aztec.gas_dimension" | "aztec.gossip.topic_name" | "aztec.ha_signer.duty_type" | "aztec.ha_signer.node_id" | "aztec.initial_sync" | "aztec.is_committee_member" | "aztec.l1.block_proposal_tx_target" | "aztec.l1.block_proposal_used_trace" | "aztec.l1.sender" | "aztec.l1.tx_type" | "aztec.l1_tx.scope" | "aztec.mana.used" | "aztec.mempool.eviction_reason" | "aztec.merkle_tree.name" | "aztec.network_name" | "aztec.node_role" | "aztec.ok" | "aztec.p2p.goodbye.reason" | "aztec.p2p.id" | "aztec.p2p.peer_id" | "aztec.p2p.peer_score_state" | "aztec.p2p.req_resp.batch_requests_count" | "aztec.p2p.req_resp.protocol" | "aztec.pool.name" | "aztec.proof.timed_out" | "aztec.proving.job_id" | "aztec.proving.job_type" | "aztec.registry_address" | "aztec.revertibility" | "aztec.rollup.prover_id" | "aztec.rollup_address" | "aztec.rollup_version" | "aztec.sequencer.state" | "aztec.simulator.phase" | "aztec.slot.number" | "aztec.status" | "aztec.total_instructions" | "aztec.tx.hash" | "aztec.tx.phase_name" | "aztec.tx_collection.method" | "aztec.validator_status" | "aztec.world_state.db_type" | "aztec.world_state_request" | "http.header.request.host" | "http.response.status_code" | "nodejs.eventloop.state", import("@opentelemetry/api").AttributeValue>> | undefined, getStats?: LmdbStatsCallback | undefined);
15
+ constructor(meter: Meter, attributes?: Partial<Record<"aztec.address.sender" | "aztec.address.target" | "aztec.archiver.prune_type" | "aztec.attester.address" | "aztec.block.archive" | "aztec.block.candidate_txs_count" | "aztec.block.hash" | "aztec.block.number" | "aztec.block.parent" | "aztec.block.proposer" | "aztec.block.size" | "aztec.block.txs_count" | "aztec.block_full" | "aztec.checkpoint.number" | "aztec.circuit.app_circuit_name" | "aztec.circuit.protocol_circuit_name" | "aztec.coinbase" | "aztec.db_type" | "aztec.epoch.number" | "aztec.epoch.size" | "aztec.epoch_session.kind" | "aztec.error_type" | "aztec.fisherman.strategy_id" | "aztec.gas_dimension" | "aztec.gossip.topic_name" | "aztec.ha_signer.duty_type" | "aztec.ha_signer.node_id" | "aztec.initial_sync" | "aztec.is_committee_member" | "aztec.json_rpc.rejection_reason" | "aztec.l1.block_proposal_tx_target" | "aztec.l1.block_proposal_used_trace" | "aztec.l1.sender" | "aztec.l1.tx_type" | "aztec.l1_tx.scope" | "aztec.mana.used" | "aztec.mempool.eviction_reason" | "aztec.mempool.operation" | "aztec.merkle_tree.name" | "aztec.network_name" | "aztec.node_role" | "aztec.ok" | "aztec.p2p.goodbye.reason" | "aztec.p2p.id" | "aztec.p2p.peer_id" | "aztec.p2p.peer_score_state" | "aztec.p2p.req_resp.protocol" | "aztec.p2p.tx_validation_stage" | "aztec.pool.name" | "aztec.proof.timed_out" | "aztec.proving.job_id" | "aztec.proving.job_type" | "aztec.registry_address" | "aztec.revertibility" | "aztec.rollup.prover_id" | "aztec.rollup_address" | "aztec.rollup_version" | "aztec.sequencer.state" | "aztec.simulator.phase" | "aztec.slot.number" | "aztec.slot_boundary_side" | "aztec.status" | "aztec.total_instructions" | "aztec.tx.hash" | "aztec.tx.phase_name" | "aztec.tx_collection.method" | "aztec.validator_status" | "aztec.world_state.db_type" | "aztec.world_state_request" | "http.header.request.host" | "http.response.status_code" | "nodejs.eventloop.state", import("@opentelemetry/api").AttributeValue>> | undefined, getStats?: LmdbStatsCallback | undefined);
16
16
  private recordDBMetrics;
17
17
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG1kYl9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbG1kYl9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUF5QyxLQUFLLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEcsTUFBTSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDO0lBQzVDLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQztDQUNwQixDQUFDLENBQUM7QUFFSCxxQkFBYSxXQUFXO0lBUXBCLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQVJuQixPQUFPLENBQUMsU0FBUyxDQUFrQjtJQUNuQyxPQUFPLENBQUMsa0JBQWtCLENBQWtCO0lBQzVDLE9BQU8sQ0FBQyxVQUFVLENBQWtCO0lBQ3BDLE9BQU8sQ0FBQyxVQUFVLENBQWtCO0lBRXBDLFlBQ0UsS0FBSyxFQUFFLEtBQUssRUFDSixVQUFVLENBQUMsc3hEQUFnQixFQUMzQixRQUFRLENBQUMsK0JBQW1CLEVBYXJDO0lBRUQsT0FBTyxDQUFDLGVBQWUsQ0FTckI7Q0FDSCJ9
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG1kYl9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbG1kYl9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUF5QyxLQUFLLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEcsTUFBTSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDO0lBQzVDLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQztDQUNwQixDQUFDLENBQUM7QUFFSCxxQkFBYSxXQUFXO0lBUXBCLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQVJuQixPQUFPLENBQUMsU0FBUyxDQUFrQjtJQUNuQyxPQUFPLENBQUMsa0JBQWtCLENBQWtCO0lBQzVDLE9BQU8sQ0FBQyxVQUFVLENBQWtCO0lBQ3BDLE9BQU8sQ0FBQyxVQUFVLENBQWtCO0lBRXBDLFlBQ0UsS0FBSyxFQUFFLEtBQUssRUFDSixVQUFVLENBQUMsbzZEQUFnQixFQUMzQixRQUFRLENBQUMsK0JBQW1CLEVBYXJDO0lBRUQsT0FBTyxDQUFDLGVBQWUsQ0FTckI7Q0FDSCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"lmdb_metrics.d.ts","sourceRoot":"","sources":["../src/lmdb_metrics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAyC,KAAK,EAAmB,MAAM,gBAAgB,CAAC;AAEpG,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,qBAAa,WAAW;IAQpB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC;IARnB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAkB;IAEpC,YACE,KAAK,EAAE,KAAK,EACJ,UAAU,CAAC,sxDAAgB,EAC3B,QAAQ,CAAC,+BAAmB,EAarC;IAED,OAAO,CAAC,eAAe,CASrB;CACH"}
1
+ {"version":3,"file":"lmdb_metrics.d.ts","sourceRoot":"","sources":["../src/lmdb_metrics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAyC,KAAK,EAAmB,MAAM,gBAAgB,CAAC;AAEpG,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,qBAAa,WAAW;IAQpB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC;IARnB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAkB;IAEpC,YACE,KAAK,EAAE,KAAK,EACJ,UAAU,CAAC,o6DAAgB,EAC3B,QAAQ,CAAC,+BAAmB,EAarC;IAED,OAAO,CAAC,eAAe,CASrB;CACH"}