Skip to content

Probe production health every 8 hours instead of every 15 minutes - #201

Merged
aterga merged 1 commit into
mainfrom
claude/health-probe-every-8h
Sep 24, 2026
Merged

aterga merged 1 commit into
mainfrom
claude/health-probe-every-8h

Conversation

@aterga

@aterga aterga commented Sep 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

The Production health workflow ran on */15 * * * *, ninety-six scheduled runs a day. That is more than the signal warrants: the workflow's own header calls it a stopgap that notifies by email and Slack rather than a pager, and a tick every eight hours still catches an outage within a shift. The schedule is now 17 */8 * * *, three runs a day at 00:17, 08:17 and 16:17 UTC, off the top of the hour where GitHub's scheduler is busiest and most likely to run late.

The comment on timeout-minutes is reworded: its arithmetic ("24 missed probes" behind a wedged run) assumed 15-minute ticks. The point it made still holds and the 10-minute timeout is unchanged: a wedged run must fail fast rather than sit silent for the default 6-hour job timeout, since silence is indistinguishable from health. concurrency and the manual workflow_dispatch trigger are untouched.

Related issues

Follows #197, which pinned the Internet Identity this probe checks.

Changes

  • .github/workflows/health.yml — the cron expression and the two comments that described the old cadence. No step changes.

Testing

  • The file parses as YAML and the trigger reads schedule: [{cron: '17 */8 * * *'}].
  • .github/scripts/scan-internal-identifiers.sh origin/main...HEAD — clean.
  • Nothing to run: no probe code changed. The first scheduled tick after merge, or a workflow_dispatch, exercises it exactly as before.

Checklist

  • I have read the Contributing guidelines.
  • Docs (README / comments) updated for any user-visible change.
  • No secrets, credentials, or internal-only information are included.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Xd7VT72Qt16qiAJynu9EKj


Generated by Claude Code

Ninety-six scheduled runs a day was more than the signal warranted: the
probe is a stopgap that notifies by email and Slack, not a pager, and a
tick every eight hours still catches an outage within a shift. The tick
sits off the top of the hour, where GitHub's scheduler is busiest. The
job-timeout rationale no longer needs the arithmetic that assumed
15-minute ticks; the point stands, a wedged run must fail fast.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xd7VT72Qt16qiAJynu9EKj
@aterga
aterga requested a balanced review from Copilot September 24, 2026 07:10
@aterga
aterga marked this pull request as ready for review September 24, 2026 07:10
@aterga
aterga requested a review from a team September 24, 2026 07:10
@aterga
aterga merged commit ddcdc56 into main Sep 24, 2026
15 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The focused workflow change has no unresolved issues.

Review effort: Balanced
Findings: None

What changed in this PR

Reduces production health probes from every 15 minutes to every 8 hours while preserving manual runs and timeout behavior.

Changes:

  • Changes the cron schedule to 17 */8 * * *.
  • Updates cadence and timeout comments.
File Description
.github/​workflows/​health.yml Updates the health-probe schedule and explanatory comments.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

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.

4 participants