@aztec/telemetry-client 0.81.0 → 0.82.1-alpha-testnet.1

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/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export * as Attributes from './attributes.js';
4
4
  export * from './with_tracer.js';
5
5
  export * from './prom_otel_adapter.js';
6
6
  export * from './lmdb_metrics.js';
7
+ export * from './l1_metrics.js';
7
8
  export * from './wrappers/index.js';
8
9
  export * from './start.js';
9
10
  export * from './otel_propagation.js';
@@ -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,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"}
package/dest/index.js CHANGED
@@ -4,6 +4,7 @@ export * as Attributes from './attributes.js';
4
4
  export * from './with_tracer.js';
5
5
  export * from './prom_otel_adapter.js';
6
6
  export * from './lmdb_metrics.js';
7
+ export * from './l1_metrics.js';
7
8
  export * from './wrappers/index.js';
8
9
  export * from './start.js';
9
10
  export * from './otel_propagation.js';
@@ -0,0 +1,17 @@
1
+ import type { EthAddress } from '@aztec/foundation/eth-address';
2
+ import { type PublicClient } from 'viem';
3
+ import { type Meter } from './telemetry.js';
4
+ export declare class L1Metrics {
5
+ private meter;
6
+ private client;
7
+ private l1BlockHeight;
8
+ private l1BalanceEth;
9
+ private gasPriceWei;
10
+ private blobBaseFeeWei;
11
+ private addresses;
12
+ constructor(meter: Meter, client: PublicClient, addresses: EthAddress[]);
13
+ start(): void;
14
+ stop(): void;
15
+ private observe;
16
+ }
17
+ //# sourceMappingURL=l1_metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"l1_metrics.d.ts","sourceRoot":"","sources":["../src/l1_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAY,KAAK,YAAY,EAAe,MAAM,MAAM,CAAC;AAIhE,OAAO,EAA8B,KAAK,KAAK,EAAmC,MAAM,gBAAgB,CAAC;AAEzG,qBAAa,SAAS;IAOR,OAAO,CAAC,KAAK;IAAS,OAAO,CAAC,MAAM;IANhD,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,SAAS,CAAQ;gBAEL,KAAK,EAAE,KAAK,EAAU,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;IAwBvF,KAAK;IAIL,IAAI;IAIJ,OAAO,CAAC,OAAO,CA2Bb;CACH"}
@@ -0,0 +1,70 @@
1
+ import { formatEther } from 'viem';
2
+ import { L1_SENDER } from './attributes.js';
3
+ import { L1_BALANCE_ETH, L1_BLOB_BASE_FEE_WEI, L1_BLOCK_HEIGHT, L1_GAS_PRICE_WEI } from './metrics.js';
4
+ import { ValueType } from './telemetry.js';
5
+ export class L1Metrics {
6
+ meter;
7
+ client;
8
+ l1BlockHeight;
9
+ l1BalanceEth;
10
+ gasPriceWei;
11
+ blobBaseFeeWei;
12
+ addresses;
13
+ constructor(meter, client, addresses){
14
+ this.meter = meter;
15
+ this.client = client;
16
+ this.observe = async (observer)=>{
17
+ const blockNumber = await this.client.getBlockNumber();
18
+ const ethBalances = await Promise.all(this.addresses.map((address)=>this.client.getBalance({
19
+ address,
20
+ blockNumber
21
+ })));
22
+ const gasPrice = await this.client.getGasPrice();
23
+ const blobFee = await this.client.getBlobBaseFee();
24
+ observer.observe(this.l1BlockHeight, Number(blockNumber));
25
+ observer.observe(this.gasPriceWei, Number(gasPrice));
26
+ observer.observe(this.blobBaseFeeWei, Number(blobFee));
27
+ for(let i = 0; i < ethBalances.length; i++){
28
+ const wei = ethBalances[i];
29
+ const address = this.addresses[i];
30
+ const eth = parseFloat(formatEther(wei, 'wei'));
31
+ observer.observe(this.l1BalanceEth, eth, {
32
+ [L1_SENDER]: address
33
+ });
34
+ }
35
+ };
36
+ this.l1BlockHeight = meter.createObservableGauge(L1_BLOCK_HEIGHT, {
37
+ description: 'The latest L1 block seen',
38
+ valueType: ValueType.INT
39
+ });
40
+ this.l1BalanceEth = meter.createObservableGauge(L1_BALANCE_ETH, {
41
+ description: 'Eth balance of an address',
42
+ unit: 'eth',
43
+ valueType: ValueType.DOUBLE
44
+ });
45
+ this.gasPriceWei = meter.createObservableGauge(L1_GAS_PRICE_WEI, {
46
+ description: 'L1 gas price',
47
+ unit: 'wei',
48
+ valueType: ValueType.DOUBLE
49
+ });
50
+ this.blobBaseFeeWei = meter.createObservableGauge(L1_BLOB_BASE_FEE_WEI, {
51
+ description: 'L1 blob fee',
52
+ unit: 'wei',
53
+ valueType: ValueType.DOUBLE
54
+ });
55
+ this.addresses = addresses.map((addr)=>addr.toString());
56
+ }
57
+ start() {
58
+ this.meter.addBatchObservableCallback(this.observe, [
59
+ this.l1BalanceEth,
60
+ this.l1BlockHeight
61
+ ]);
62
+ }
63
+ stop() {
64
+ this.meter.removeBatchObservableCallback(this.observe, [
65
+ this.l1BalanceEth,
66
+ this.l1BlockHeight
67
+ ]);
68
+ }
69
+ observe;
70
+ }
package/dest/metrics.d.ts CHANGED
@@ -59,6 +59,10 @@ export declare const L1_PUBLISHER_BLOB_INCLUSION_BLOCKS = "aztec.l1_publisher.bl
59
59
  export declare const L1_PUBLISHER_BLOB_TX_SUCCESS = "aztec.l1_publisher.blob_tx_success";
60
60
  export declare const L1_PUBLISHER_BLOB_TX_FAILURE = "aztec.l1_publisher.blob_tx_failure";
61
61
  export declare const L1_PUBLISHER_BALANCE = "aztec.l1_publisher.balance";
62
+ export declare const L1_BLOCK_HEIGHT = "aztec.l1.block_height";
63
+ export declare const L1_BALANCE_ETH = "aztec.l1.balance";
64
+ export declare const L1_GAS_PRICE_WEI = "aztec.l1.gas_price";
65
+ export declare const L1_BLOB_BASE_FEE_WEI = "aztec.l1.blob_base_fee";
62
66
  export declare const PEER_MANAGER_GOODBYES_SENT = "aztec.peer_manager.goodbyes_sent";
63
67
  export declare const PEER_MANAGER_GOODBYES_RECEIVED = "aztec.peer_manager.goodbyes_received";
64
68
  export declare const PEER_MANAGER_PEER_COUNT = "aztec.peer_manager.peer_count";
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
package/dest/metrics.js CHANGED
@@ -57,6 +57,10 @@ export const L1_PUBLISHER_BLOB_INCLUSION_BLOCKS = 'aztec.l1_publisher.blob_inclu
57
57
  export const L1_PUBLISHER_BLOB_TX_SUCCESS = 'aztec.l1_publisher.blob_tx_success';
58
58
  export const L1_PUBLISHER_BLOB_TX_FAILURE = 'aztec.l1_publisher.blob_tx_failure';
59
59
  export const L1_PUBLISHER_BALANCE = 'aztec.l1_publisher.balance';
60
+ export const L1_BLOCK_HEIGHT = 'aztec.l1.block_height';
61
+ export const L1_BALANCE_ETH = 'aztec.l1.balance';
62
+ export const L1_GAS_PRICE_WEI = 'aztec.l1.gas_price';
63
+ export const L1_BLOB_BASE_FEE_WEI = 'aztec.l1.blob_base_fee';
60
64
  export const PEER_MANAGER_GOODBYES_SENT = 'aztec.peer_manager.goodbyes_sent';
61
65
  export const PEER_MANAGER_GOODBYES_RECEIVED = 'aztec.peer_manager.goodbyes_received';
62
66
  export const PEER_MANAGER_PEER_COUNT = 'aztec.peer_manager.peer_count';
package/package.json CHANGED
@@ -26,8 +26,8 @@
26
26
  "!*.test.*"
27
27
  ],
28
28
  "dependencies": {
29
- "@aztec/foundation": "0.81.0",
30
- "@aztec/stdlib": "0.81.0",
29
+ "@aztec/foundation": "0.82.1-alpha-testnet.1",
30
+ "@aztec/stdlib": "0.82.1-alpha-testnet.1",
31
31
  "@opentelemetry/api": "^1.9.0",
32
32
  "@opentelemetry/api-logs": "^0.55.0",
33
33
  "@opentelemetry/core": "^1.28.0",
@@ -42,7 +42,8 @@
42
42
  "@opentelemetry/sdk-metrics": "^1.28.0",
43
43
  "@opentelemetry/sdk-trace-node": "^1.28.0",
44
44
  "@opentelemetry/semantic-conventions": "^1.28.0",
45
- "prom-client": "^15.1.3"
45
+ "prom-client": "^15.1.3",
46
+ "viem": "2.23.7"
46
47
  },
47
48
  "devDependencies": {
48
49
  "@jest/globals": "^29.5.0",
@@ -85,5 +86,5 @@
85
86
  "../../foundation/src/jest/setup.mjs"
86
87
  ]
87
88
  },
88
- "version": "0.81.0"
89
+ "version": "0.82.1-alpha-testnet.1"
89
90
  }
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ export * as Attributes from './attributes.js';
4
4
  export * from './with_tracer.js';
5
5
  export * from './prom_otel_adapter.js';
6
6
  export * from './lmdb_metrics.js';
7
+ export * from './l1_metrics.js';
7
8
  export * from './wrappers/index.js';
8
9
  export * from './start.js';
9
10
  export * from './otel_propagation.js';
@@ -0,0 +1,76 @@
1
+ import type { EthAddress } from '@aztec/foundation/eth-address';
2
+
3
+ import { type Hex, type PublicClient, formatEther } from 'viem';
4
+
5
+ import { L1_SENDER } from './attributes.js';
6
+ import { L1_BALANCE_ETH, L1_BLOB_BASE_FEE_WEI, L1_BLOCK_HEIGHT, L1_GAS_PRICE_WEI } from './metrics.js';
7
+ import { type BatchObservableResult, type Meter, type ObservableGauge, ValueType } from './telemetry.js';
8
+
9
+ export class L1Metrics {
10
+ private l1BlockHeight: ObservableGauge;
11
+ private l1BalanceEth: ObservableGauge;
12
+ private gasPriceWei: ObservableGauge;
13
+ private blobBaseFeeWei: ObservableGauge;
14
+ private addresses: Hex[];
15
+
16
+ constructor(private meter: Meter, private client: PublicClient, addresses: EthAddress[]) {
17
+ this.l1BlockHeight = meter.createObservableGauge(L1_BLOCK_HEIGHT, {
18
+ description: 'The latest L1 block seen',
19
+ valueType: ValueType.INT,
20
+ });
21
+ this.l1BalanceEth = meter.createObservableGauge(L1_BALANCE_ETH, {
22
+ description: 'Eth balance of an address',
23
+ unit: 'eth',
24
+ valueType: ValueType.DOUBLE,
25
+ });
26
+ this.gasPriceWei = meter.createObservableGauge(L1_GAS_PRICE_WEI, {
27
+ description: 'L1 gas price',
28
+ unit: 'wei',
29
+ valueType: ValueType.DOUBLE,
30
+ });
31
+ this.blobBaseFeeWei = meter.createObservableGauge(L1_BLOB_BASE_FEE_WEI, {
32
+ description: 'L1 blob fee',
33
+ unit: 'wei',
34
+ valueType: ValueType.DOUBLE,
35
+ });
36
+
37
+ this.addresses = addresses.map(addr => addr.toString());
38
+ }
39
+
40
+ start() {
41
+ this.meter.addBatchObservableCallback(this.observe, [this.l1BalanceEth, this.l1BlockHeight]);
42
+ }
43
+
44
+ stop() {
45
+ this.meter.removeBatchObservableCallback(this.observe, [this.l1BalanceEth, this.l1BlockHeight]);
46
+ }
47
+
48
+ private observe = async (observer: BatchObservableResult) => {
49
+ const blockNumber = await this.client.getBlockNumber();
50
+ const ethBalances = await Promise.all(
51
+ this.addresses.map(address =>
52
+ this.client.getBalance({
53
+ address,
54
+ blockNumber,
55
+ }),
56
+ ),
57
+ );
58
+
59
+ const gasPrice = await this.client.getGasPrice();
60
+ const blobFee = await this.client.getBlobBaseFee();
61
+
62
+ observer.observe(this.l1BlockHeight, Number(blockNumber));
63
+ observer.observe(this.gasPriceWei, Number(gasPrice));
64
+ observer.observe(this.blobBaseFeeWei, Number(blobFee));
65
+
66
+ for (let i = 0; i < ethBalances.length; i++) {
67
+ const wei = ethBalances[i];
68
+ const address = this.addresses[i];
69
+ const eth = parseFloat(formatEther(wei, 'wei'));
70
+
71
+ observer.observe(this.l1BalanceEth, eth, {
72
+ [L1_SENDER]: address,
73
+ });
74
+ }
75
+ };
76
+ }
package/src/metrics.ts CHANGED
@@ -71,6 +71,11 @@ export const L1_PUBLISHER_BLOB_TX_SUCCESS = 'aztec.l1_publisher.blob_tx_success'
71
71
  export const L1_PUBLISHER_BLOB_TX_FAILURE = 'aztec.l1_publisher.blob_tx_failure';
72
72
  export const L1_PUBLISHER_BALANCE = 'aztec.l1_publisher.balance';
73
73
 
74
+ export const L1_BLOCK_HEIGHT = 'aztec.l1.block_height';
75
+ export const L1_BALANCE_ETH = 'aztec.l1.balance';
76
+ export const L1_GAS_PRICE_WEI = 'aztec.l1.gas_price';
77
+ export const L1_BLOB_BASE_FEE_WEI = 'aztec.l1.blob_base_fee';
78
+
74
79
  export const PEER_MANAGER_GOODBYES_SENT = 'aztec.peer_manager.goodbyes_sent';
75
80
  export const PEER_MANAGER_GOODBYES_RECEIVED = 'aztec.peer_manager.goodbyes_received';
76
81
  export const PEER_MANAGER_PEER_COUNT = 'aztec.peer_manager.peer_count';