You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Render heartbeat with Slack Block Kit and group healthy clients
- post heartbeats via Block Kit (header / section / divider / context)
instead of one mrkdwn blob; action alerts stay as plain text posts
- new send_blocks() on SlackNotifier with text fallback for notifications
- collapse online + canonical + distance=0 clients into one bucket;
surface outliers (offline, synchronizing, non-canonical, lagging)
above the healthy bucket with status emoji per row
- status emojis: green/yellow/orange/red circles for online/sync/opt/off
- dry-run patches both send and send_blocks; --debug dumps blocks JSON
so it can be previewed in Slack's Block Kit Builder
Copy file name to clipboardExpand all lines: dora_monitor/README.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,6 +46,8 @@ The process holds dedup state in `state_file` so restarts don't re-alert on alre
46
46
47
47
Recoveries (fork resolved, caught up, back online) are posted as well.
48
48
49
+
The periodic heartbeat digest uses Slack Block Kit (`{"blocks": [...]}`) with a plain-text fallback for notifications. Action alerts (offline / fork / lag / version change / missed-block) use plain mrkdwn `text` posts. Clients with status `online`, on the canonical fork, and at `distance == 0` from canonical head collapse into a single "online @ canonical" bucket so the digest highlights outliers instead of repeating identical rows; use `heartbeat_other_clients: detailed` (default) to list the healthy names, `summary` for just a count, or `off` to drop the section entirely.
50
+
49
51
## A note on what "client" means here
50
52
51
53
`/api/v1/network/client_head_forks` lists Dora's **beacon (CL)** clients; their names embed the paired EL (e.g. `lighthouse-ethrex-1` is the Lighthouse beacon paired with an ethrex EL). So the offline / fork / lag signals are observed on the beacon side. An ethrex-EL crash shows up indirectly: the paired beacon's head stops advancing (sync_lag) or its status flips to non-online (offline).
0 commit comments