[benchmarking] Add ping_users_on_failure toggle, disable in nightly config#2039
Conversation
Adds an optional sink-level boolean `ping_users_on_failure` (default
True) that globally controls whether the per-entry `ping_on_failure`
user lists are honored. When set to False, no Slack @-mentions are
emitted on entry failure, regardless of the per-entry configuration.
Default is True so existing pipelines see no behavior change. Setting
to False at the slack sink config level is the intended way to
temporarily silence pings (e.g. while a flaky test suite is being
stabilized) without having to remove the per-entry ping_on_failure
lists in every benchmark entry.
The new key is named `ping_users_on_failure` rather than overloading
the existing per-entry `ping_on_failure` (which is a list of Slack
user IDs) to avoid the confusion of the same key having different
types in different config scopes.
sinks:
- name: slack
enabled: true
ping_users_on_failure: false # ← new, default True
...
entries:
- name: my_benchmark
sink_data:
- name: slack
ping_on_failure: # existing per-entry list, unchanged
- U022P8CDX40
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: rlratzel <rratzel@nvidia.com>
Sets ping_users_on_failure: false on the slack sink in the nightly benchmark config to temporarily suppress @-mentions while the test suite is being stabilized. Per-entry ping_on_failure lists are preserved as-is, so flipping this back to true (or removing the line) fully restores prior behavior. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: rlratzel <rratzel@nvidia.com>
Greptile SummaryThis PR adds a sink-level
Confidence Score: 5/5Safe to merge — the new flag defaults to The change is minimal and self-contained: one new config key read in No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[register_benchmark_entry_finished] --> B{result_dict success?}
B -- Yes --> C[pings = empty list]
B -- No --> D{self.ping_users_on_failure?}
D -- False\n sink-level toggle --> C
D -- True\n default --> E[pings = sink_data.get ping_on_failure]
C --> F[Post Slack message\nno @-mentions]
E --> G[Post Slack message\nwith @-mentions]
Reviews (1): Last reviewed commit: "[benchmarking] Disable Slack @-mentions ..." | Re-trigger Greptile |
Summary
Adds a sink-level boolean
ping_users_on_failure(defaulttrue) to theSlack sink, and disables it in the nightly benchmark config to silence
@-mentions while the test suite is being stabilized.Why
When a benchmark entry fails, the Slack sink currently
@-mentions everyuser in the entry's per-entry
ping_on_failurelist — even when failuresare caused by known transient infrastructure or work-in-progress issues
rather than ownership-relevant regressions. The author of each affected
entry has agreed to temporarily silence pings until the suite is back to a
clean state.
The straightforward but disruptive way to do this would be to edit every
entry's
sink_data.ping_on_failurelist. Instead, this PR adds asink-level toggle so the per-entry lists are preserved and can be honored
again by flipping a single line (or removing it).
Changes
1.
[benchmarking] Add ping_users_on_failure toggle to SlackSink(c210f05)benchmarking/runner/sinks/slack_sink.py:SlackSink.__init__readssink_config.get("ping_users_on_failure", True).register_benchmark_entry_finishedgates the existing per-entryping_on_failurelookup on the new flag.Trueso existing pipelines see no behavior change.The new key is named
ping_users_on_failurerather than overloading theexisting per-entry
ping_on_failure— the latter is a list of Slack userIDs, while this is a boolean. Same name with different types in different
config scopes would invite confusion and silent misconfiguration.
2.
[benchmarking] Disable Slack @-mentions on failure in nightly config(da80d7a)benchmarking/nightly-benchmark.yaml: setsping_users_on_failure: falseon the slack sink block, with an inline comment explaining how to revert.
Config example
Reverting
To restore @-mentions, change
ping_users_on_failure: falseback totrue(or remove the line) innightly-benchmark.yaml. No other editsare needed — the per-entry
ping_on_failurelists were not touched.Test plan
fail (e.g. against a known-failing test from
Curator PR #2035
remaining failures) and confirm no
@-mention appears in theSlack thread for the failed entry
ping_users_on_failure: truelocally, re-run, confirm pingsreappear (verifies default-true path)
matches current production (verifies the default-True read path)
🤖 Generated with Claude Code