getsentry / getsentry/sentry

Uptime monitors list: show at-a-glance Up/Down status per row

Open
#119,294 5 comments 0 reactions 0 assignees View on GitHub
Product Area: Uptime Waiting for: Product Owner
Dominant language
Python
Stars
44.8k
Forks
4.9k
Avg merge
21h 10m
Merged PRs (30d)
635

Description

### Problem Statement

On the Monitors page, the uptime monitors list (Name / Type / Last Issue / Assignee) gives no
immediate signal of whether each monitor is currently **up or down**. To see a monitor's live
state you have to open it individually. With more than a handful of uptime checks, triage means
clicking into each one.

Tools like UptimeRobot solve this with a single green/red status indicator per row, so the
health of the whole fleet is readable at a glance. Sentry's uptime list has no equivalent
per-row current-status indicator.

### Solution Brainstorm

Add a compact **Status** column to the uptime monitors list rendering a colored indicator + label:

- 🟢 **Up** when `uptimeStatus === OK`
- 🔴 **Down** when `uptimeStatus === FAILED`

The data already exists server-side: `UptimeDetectorSerializer` emits `uptimeStatus`
(`UptimeStatus` IntEnum, `OK = 1` / `FAILED = 2`) in `src/sentry/uptime/endpoints/serializers.py`.
The Up/Down text + badge mapping already exists on the frontend (`UptimeStatusText` in
`static/app/views/alerts/list/rules/combinedAlertBadge.tsx`, keyed on `UptimeMonitorStatus`).

Because the list is the shared Detectors list, the column can be added **only for the uptime
view** via the existing `additionalColumns` extension seam on `MonitorViewContext`
(`static/app/views/detectors/monitorViewContext.tsx`) — leaving metric and cron lists
unaffected. The current uptime enum has two states (OK / FAILED), so a two-color green/red
indicator is the honest representation of the available data.

This looks frontend-only; happy to open the PR.

### Product Area

Crons

Contributor guide

Open the contributing guide

Research direction

Start with MonitorViewContext in static/app/views/detectors/monitorViewContext.tsx and trace the uptime list's additionalColumns seam, then inspect UptimeStatusText in combinedAlertBadge.tsx and uptimeStatus from src/sentry/uptime/endpoints/serializers.py. Done means the uptime view shows a labeled green Up or red Down status per row without changing metric or cron lists.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, typescript
Domain
frontend, observability-sre
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.