lighthouse/beacon_node/http_api/src
Mac L 4c510f8f6b Add BlockTimesCache to allow additional block delay metrics (#2546)
## Issue Addressed

Closes #2528

## Proposed Changes

- Add `BlockTimesCache` to provide block timing information to `BeaconChain`. This allows additional metrics to be calculated for blocks that are set as head too late.
- Thread the `seen_timestamp` of blocks received from RPC responses (except blocks from syncing) through to the sync manager, similar to what is done for blocks from gossip.

## Additional Info

This provides the following additional metrics:
- `BEACON_BLOCK_OBSERVED_SLOT_START_DELAY_TIME`
  - The delay between the start of the slot and when the block was first observed.
- `BEACON_BLOCK_IMPORTED_OBSERVED_DELAY_TIME`
   - The delay between when the block was first observed and when the block was imported.
- `BEACON_BLOCK_HEAD_IMPORTED_DELAY_TIME`
  - The delay between when the block was imported and when the block was set as head.

The metric `BEACON_BLOCK_IMPORTED_SLOT_START_DELAY_TIME` was removed.

A log is produced when a block is set as head too late, e.g.:
```
Aug 27 03:46:39.006 DEBG Delayed head block                      set_as_head_delay: Some(21.731066ms), imported_delay: Some(119.929934ms), observed_delay: Some(3.864596988s), block_delay: 4.006257988s, slot: 1931331, proposer_index: 24294, block_root: 0x937602c89d3143afa89088a44bdf4b4d0d760dad082abacb229495c048648a9e, service: beacon
```
2021-09-30 04:31:41 +00:00
..
attester_duties.rs Rust 1.54.0 lints (#2483) 2021-07-30 01:11:47 +00:00
block_id.rs Use the forwards iterator more often (#2376) 2021-05-31 04:18:20 +00:00
database.rs Implement checkpoint sync (#2244) 2021-09-22 00:37:28 +00:00
lib.rs Add BlockTimesCache to allow additional block delay metrics (#2546) 2021-09-30 04:31:41 +00:00
metrics.rs Metrics and DEBG log for late gossip blocks (#2533) 2021-08-23 00:59:14 +00:00
proposer_duties.rs Rust 1.54.0 lints (#2483) 2021-07-30 01:11:47 +00:00
state_id.rs Fork schedule api (#2525) 2021-08-24 01:36:27 +00:00
sync_committees.rs Validator monitor support for sync committees (#2476) 2021-08-31 23:31:36 +00:00
validator_inclusion.rs Validator monitor support for sync committees (#2476) 2021-08-31 23:31:36 +00:00
version.rs Altair validator client and HTTP API (#2404) 2021-08-06 00:47:31 +00:00