Skip to content

Add client_exclude to mute deliberately-misbehaving nodes#10

Open
ilitteri wants to merge 1 commit into
mainfrom
add-dora-client-exclude
Open

Add client_exclude to mute deliberately-misbehaving nodes#10
ilitteri wants to merge 1 commit into
mainfrom
add-dora-client-exclude

Conversation

@ilitteri

Copy link
Copy Markdown
Collaborator

Motivation

client_match is a single case-insensitive substring, so on a devnet where a node is malicious by design — e.g. a "deathstar" proposer that builds on empty / withholds PTC votes — it matches that node too and fires misleading fork / lag / offline / missed-block alerts that aren't real incidents. On glamsterdam-devnet-6 the deathstar (lodestar-ethrex-1) generated exactly this noise.

Description

Adds an optional client_exclude list (substrings, same matching semantics as client_match). A client that matches client_match but also matches an exclude entry is dropped entirely: no action alerts, and absent from the heartbeat digest (not shunted into the "other clients" bucket or the status mix). Backward compatible — defaults to empty, so existing configs are unaffected.

Implemented via _is_ours() / _excluded() helpers applied at the five client_match gates (missed-block, fork, lag/offline, version-drift, and the two heartbeat aggregations).

client_match: "ethrex"
client_exclude:
  - "lodestar-ethrex-1"

How to test

SLACK_WEBHOOK_URL=unused dora-monitor -c config.yaml --once --dry-run

With the exclude set against glamsterdam-devnet-6, the heartbeat drops from ethrex (6 matched) to (5 matched), the excluded node no longer appears, and its missed/orphaned proposals no longer count. Already running on the live devnet-6 monitor instance.

… and heartbeat

client_match is a single substring, so on a devnet where a node is malicious
by design (e.g. a "deathstar" proposer that builds on empty / withholds PTC
votes) it matches that node too and fires misleading fork / lag / offline /
missed-block alerts that aren't real incidents.

Add an optional client_exclude list (substrings, same matching as client_match).
A client that matches client_match but also matches an exclude entry is dropped
entirely: no action alerts and absent from the heartbeat (not shunted into the
"other clients" bucket or the status mix). Backward compatible (defaults to
empty). Implemented via _is_ours()/_excluded() at the five match gates.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant