Prerequisites
- Sentry account with at least one organization
- Auth token with
event:readscope (Issues lookup) - For uptime watching: also
alerts:read(ororg:read) soopensre sentry uptimecan list monitors
Setup
Option 1: Interactive CLI
Option 2: Environment variables
Add to your.env:
A search returns up to 100 issues per query (Sentry’s maximum page size) within
the
SENTRY_STATS_PERIOD window. Widen the window (e.g. SENTRY_STATS_PERIOD=14d)
to surface older issues. If you expect more issues than appear, the cause is
almost always the time window or a SENTRY_PROJECT_SLUG scope — not a cap of one.Option 3: Persistent store
Creating an auth token
Recommended: Organization Token- In Sentry, go to Settings → Developer Settings → Organization Tokens
- Click Create New Token
- Enable the
event:readscope (andalerts:readif you use uptime watch) - Copy the token
The organization slug appears in your Sentry URL:
https://sentry.io/organizations/<slug>/Verify
Morning digest (scheduled)
Deliver a daily unresolved-issues summary to Slack, Telegram, or Rocket.Chat. This uses the headless sentry-summary skill path (tools + LLM answer via the gateway), not the investigation pipeline or genericopensre cron kinds.
When an uptime watch schedule is running, the skill also calls
get_sentry_uptime_digest to include downtime/recovery context in the digest.
Example — weekdays at 08:00 London time to Telegram:
C… member/channel id):
--chat-id):
--project my-service scopes the digest to one Sentry project.
When an uptime watch schedule is running, the sentry-summary skill
automatically includes an Uptime / downtime (last 24h) section with
monitors that are still down or recovered in the window. If no uptime watch
history exists, the digest stays Issues-only.
The gateway daemon picks up scheduled digests automatically when it is running.
If the LLM is unavailable, the run fails with an error.
The count reflects issues seen in the last 7 days (capped at 100, shown as
100+ when it saturates). Use a search (e.g. search_sentry_issues during an
investigation) to enumerate the full issue set over a custom window.Uptime watch (downtime notifications)
Poll Sentry uptime monitors (Alerts / Uptime — not the Issues digest) and ping Slack, Telegram, or Rocket.Chat only when a monitor transitions to down or recovered. Quiet polls deliver nothing. This is separate from the morning Issues digest (sentry-summary / Feature #10).
Example — poll every 5 minutes and ping Slack on transitions:
alerts:read (or equivalent) on the Sentry token. The agent tool
list_sentry_uptime_alerts exposes the same monitor list in chat/investigation.
Schedule an uptime watch alongside the morning digest so the sentry-summary
skill can include yesterday’s downtime summary via get_sentry_uptime_digest;
the watch records DOWN/RECOVERED transitions locally for that rollup.
Follow-ups (not in v1): inbound Sentry webhooks and auto-remediation attempts.
Telemetry knobs
Verify Error Reporting
Send one test event to confirm OpenSRE can report runtime errors:debug=true. If telemetry is disabled, the
command exits non-zero without sending anything.
Troubleshooting
Security best practices
- Use an Organization Token with only
event:read— do not use admin tokens. - Store the token in
.env, not in source code. - Rotate tokens periodically.