Uptime monitors: support cross-region POPs for all org data regions
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 44.8k
- Forks
- 4.9k
- Avg merge
- 21h 23m
- Merged PRs (30d)
- 607
Description
Uptime monitors for US-region orgs only receive checks from US-based points of presence (POPs). Orgs on the DE data region similarly only receive checks from DE-based POPs. There is no way to get geographically distributed checks that span both US and EU nodes.
Current behavior
The uptime checker service (getsentry/uptime-checker) is deployed per Sentry data region with a fixed POP set (gocd pipeline config):
usregion →us-west-or,us-east-sc,us-east-vaderegion →de-west-de,de-west-nl,de(main)
The UPTIME_REGIONS setting in sentry (src/sentry/conf/server.py) controls which checker nodes are visible to a deployment. Cross-region nodes are not included.
Gap
Orgs whose users or infrastructure span multiple continents cannot get uptime checks from outside their own data region's POPs. For example, a US-region org with EU end users cannot verify reachability from European nodes without migrating their entire Sentry data region — a one-way, high-cost operation.
Options
- Cross-region POP access: Add remote DE POP endpoints to the US
UPTIME_REGIONSconfig (and vice versa).UptimeRegionConfigalready has anapi_endpointfield (src/sentry/conf/types/uptime.py) suggesting this routing pattern was anticipated. TheregionWarningcomponent already surfaces a data-residency disclaimer for this case. - Global POP expansion: Deploy additional checker POPs that are shared across all data regions rather than scoped per-region.
- User-selectable regions: Expose region selection in the uptime monitor form, allowing orgs to opt in to specific POPs (additive, not a replacement for the above).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with UptimeRegionConfig in src/sentry/conf/types/uptime.py and the UPTIME_REGIONS configuration in src/sentry/conf/server.py, then review the uptime-checker GoCD pipeline configuration. Compare the proposed cross-region, global-POP, and user-selectable approaches, including the existing regionWarning behavior. Done requires a decided scope and an implementation plan that preserves the stated data-residency expectations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, observability-sre
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100