@aztec/validator-client 0.85.0-alpha-testnet.2 → 0.85.0-alpha-testnet.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dest/metrics.d.ts CHANGED
@@ -3,9 +3,13 @@ import { type TelemetryClient } from '@aztec/telemetry-client';
3
3
  export declare class ValidatorMetrics {
4
4
  private reExecutionTime;
5
5
  private failedReexecutionCounter;
6
+ private attestationsCount;
7
+ private failedAttestationsCount;
6
8
  constructor(telemetryClient: TelemetryClient);
7
9
  reExecutionTimer(): () => void;
8
10
  recordReExecutionTime(time: number): void;
9
11
  recordFailedReexecution(proposal: BlockProposal): Promise<void>;
12
+ incAttestations(): void;
13
+ incFailedAttestations(reason: string): void;
10
14
  }
11
15
  //# sourceMappingURL=metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAIL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,wBAAwB,CAAgB;gBAEpC,eAAe,EAAE,eAAe;IAgBrC,gBAAgB,IAAI,MAAM,IAAI;IAQ9B,qBAAqB,CAAC,IAAI,EAAE,MAAM;IAI5B,uBAAuB,CAAC,QAAQ,EAAE,aAAa;CAM7D"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAIL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,wBAAwB,CAAgB;IAChD,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,uBAAuB,CAAgB;gBAEnC,eAAe,EAAE,eAAe;IA0BrC,gBAAgB,IAAI,MAAM,IAAI;IAQ9B,qBAAqB,CAAC,IAAI,EAAE,MAAM;IAI5B,uBAAuB,CAAC,QAAQ,EAAE,aAAa;IAOrD,eAAe;IAIf,qBAAqB,CAAC,MAAM,EAAE,MAAM;CAK5C"}
package/dest/metrics.js CHANGED
@@ -2,6 +2,8 @@ import { Attributes, Metrics, ValueType } from '@aztec/telemetry-client';
2
2
  export class ValidatorMetrics {
3
3
  reExecutionTime;
4
4
  failedReexecutionCounter;
5
+ attestationsCount;
6
+ failedAttestationsCount;
5
7
  constructor(telemetryClient){
6
8
  const meter = telemetryClient.getMeter('Validator');
7
9
  this.failedReexecutionCounter = meter.createUpDownCounter(Metrics.VALIDATOR_FAILED_REEXECUTION_COUNT, {
@@ -14,6 +16,14 @@ export class ValidatorMetrics {
14
16
  unit: 'ms',
15
17
  valueType: ValueType.DOUBLE
16
18
  });
19
+ this.attestationsCount = meter.createUpDownCounter(Metrics.VALIDATOR_ATTESTATION_COUNT, {
20
+ description: 'The number of attestations',
21
+ valueType: ValueType.INT
22
+ });
23
+ this.failedAttestationsCount = meter.createUpDownCounter(Metrics.VALIDATOR_FAILED_ATTESTATION_COUNT, {
24
+ description: 'The number of failed attestations',
25
+ valueType: ValueType.INT
26
+ });
17
27
  }
18
28
  reExecutionTimer() {
19
29
  const start = performance.now();
@@ -31,4 +41,12 @@ export class ValidatorMetrics {
31
41
  [Attributes.BLOCK_PROPOSER]: (await proposal.getSender())?.toString()
32
42
  });
33
43
  }
44
+ incAttestations() {
45
+ this.attestationsCount.add(1);
46
+ }
47
+ incFailedAttestations(reason) {
48
+ this.failedAttestationsCount.add(1, {
49
+ [Attributes.ERROR_TYPE]: reason
50
+ });
51
+ }
34
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
package/dest/validator.js CHANGED
@@ -116,6 +116,7 @@ import { ValidatorMetrics } from './metrics.js';
116
116
  const invalidProposal = await this.blockProposalValidator.validate(proposal);
117
117
  if (invalidProposal) {
118
118
  this.log.verbose(`Proposal is not valid, skipping attestation`);
119
+ this.metrics.incFailedAttestations('invalid_proposal');
119
120
  return undefined;
120
121
  }
121
122
  // Check that all of the transactions in the proposal are available in the tx pool before attesting
@@ -127,6 +128,11 @@ import { ValidatorMetrics } from './metrics.js';
127
128
  await this.reExecuteTransactions(proposal);
128
129
  }
129
130
  } catch (error) {
131
+ if (error instanceof Error) {
132
+ this.metrics.incFailedAttestations(error.name);
133
+ } else {
134
+ this.metrics.incFailedAttestations('unknown');
135
+ }
130
136
  // If the transactions are not available, then we should not attempt to attest
131
137
  if (error instanceof TransactionsNotAvailableError) {
132
138
  this.log.error(`Transactions not available, skipping attestation`, error, proposalInfo);
@@ -139,6 +145,7 @@ import { ValidatorMetrics } from './metrics.js';
139
145
  }
140
146
  // Provided all of the above checks pass, we can attest to the proposal
141
147
  this.log.info(`Attesting to proposal for slot ${slotNumber}`, proposalInfo);
148
+ this.metrics.incAttestations();
142
149
  // If the above function does not throw an error, then we can attest to the proposal
143
150
  return this.doAttestToProposal(proposal);
144
151
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/validator-client",
3
- "version": "0.85.0-alpha-testnet.2",
3
+ "version": "0.85.0-alpha-testnet.3",
4
4
  "main": "dest/index.js",
5
5
  "type": "module",
6
6
  "exports": {
@@ -62,12 +62,12 @@
62
62
  ]
63
63
  },
64
64
  "dependencies": {
65
- "@aztec/epoch-cache": "0.85.0-alpha-testnet.2",
66
- "@aztec/ethereum": "0.85.0-alpha-testnet.2",
67
- "@aztec/foundation": "0.85.0-alpha-testnet.2",
68
- "@aztec/p2p": "0.85.0-alpha-testnet.2",
69
- "@aztec/stdlib": "0.85.0-alpha-testnet.2",
70
- "@aztec/telemetry-client": "0.85.0-alpha-testnet.2",
65
+ "@aztec/epoch-cache": "0.85.0-alpha-testnet.3",
66
+ "@aztec/ethereum": "0.85.0-alpha-testnet.3",
67
+ "@aztec/foundation": "0.85.0-alpha-testnet.3",
68
+ "@aztec/p2p": "0.85.0-alpha-testnet.3",
69
+ "@aztec/stdlib": "0.85.0-alpha-testnet.3",
70
+ "@aztec/telemetry-client": "0.85.0-alpha-testnet.3",
71
71
  "koa": "^2.16.1",
72
72
  "koa-router": "^12.0.0",
73
73
  "tslib": "^2.4.0",
package/src/metrics.ts CHANGED
@@ -11,6 +11,8 @@ import {
11
11
  export class ValidatorMetrics {
12
12
  private reExecutionTime: Gauge;
13
13
  private failedReexecutionCounter: UpDownCounter;
14
+ private attestationsCount: UpDownCounter;
15
+ private failedAttestationsCount: UpDownCounter;
14
16
 
15
17
  constructor(telemetryClient: TelemetryClient) {
16
18
  const meter = telemetryClient.getMeter('Validator');
@@ -26,6 +28,16 @@ export class ValidatorMetrics {
26
28
  unit: 'ms',
27
29
  valueType: ValueType.DOUBLE,
28
30
  });
31
+
32
+ this.attestationsCount = meter.createUpDownCounter(Metrics.VALIDATOR_ATTESTATION_COUNT, {
33
+ description: 'The number of attestations',
34
+ valueType: ValueType.INT,
35
+ });
36
+
37
+ this.failedAttestationsCount = meter.createUpDownCounter(Metrics.VALIDATOR_FAILED_ATTESTATION_COUNT, {
38
+ description: 'The number of failed attestations',
39
+ valueType: ValueType.INT,
40
+ });
29
41
  }
30
42
 
31
43
  public reExecutionTimer(): () => void {
@@ -46,4 +58,14 @@ export class ValidatorMetrics {
46
58
  [Attributes.BLOCK_PROPOSER]: (await proposal.getSender())?.toString(),
47
59
  });
48
60
  }
61
+
62
+ public incAttestations() {
63
+ this.attestationsCount.add(1);
64
+ }
65
+
66
+ public incFailedAttestations(reason: string) {
67
+ this.failedAttestationsCount.add(1, {
68
+ [Attributes.ERROR_TYPE]: reason,
69
+ });
70
+ }
49
71
  }
package/src/validator.ts CHANGED
@@ -197,6 +197,7 @@ export class ValidatorClient extends WithTracer implements Validator {
197
197
  const invalidProposal = await this.blockProposalValidator.validate(proposal);
198
198
  if (invalidProposal) {
199
199
  this.log.verbose(`Proposal is not valid, skipping attestation`);
200
+ this.metrics.incFailedAttestations('invalid_proposal');
200
201
  return undefined;
201
202
  }
202
203
 
@@ -210,6 +211,12 @@ export class ValidatorClient extends WithTracer implements Validator {
210
211
  await this.reExecuteTransactions(proposal);
211
212
  }
212
213
  } catch (error: any) {
214
+ if (error instanceof Error) {
215
+ this.metrics.incFailedAttestations(error.name);
216
+ } else {
217
+ this.metrics.incFailedAttestations('unknown');
218
+ }
219
+
213
220
  // If the transactions are not available, then we should not attempt to attest
214
221
  if (error instanceof TransactionsNotAvailableError) {
215
222
  this.log.error(`Transactions not available, skipping attestation`, error, proposalInfo);
@@ -223,6 +230,7 @@ export class ValidatorClient extends WithTracer implements Validator {
223
230
 
224
231
  // Provided all of the above checks pass, we can attest to the proposal
225
232
  this.log.info(`Attesting to proposal for slot ${slotNumber}`, proposalInfo);
233
+ this.metrics.incAttestations();
226
234
 
227
235
  // If the above function does not throw an error, then we can attest to the proposal
228
236
  return this.doAttestToProposal(proposal);