자동 번역이 페이지는 자동으로 번역되었습니다. 영어 원문이 기준입니다.이 페이지를 영어로 읽어보세요

상태 시스템

Disband의 상태 페이지는 자체 호스팅됩니다. 타사 상태 서비스에 의존하지 않기 때문에 주요 웹 호스트인 API 또는 정적 자산 전달이 문제가 발생할 때에도 여전히 정확하게 보고할 수 있습니다.

공개 페이지가 보여주는 내용

이 페이지에서는 서비스별로 모니터가 그룹화되어 있습니다. 각 모니터에 대해 다음 정보가 표시됩니다.

모니터 아래에는 인시던트, 예정된 유지 보수 및 공지가 있습니다. 각 항목은 전체 업데이트 타임라인이 포함된 세부 정보 페이지를 열 수 있습니다. 피드는 RSS 2.0으로 최신 25건의 인시던트, 유지 보수 기간 및 게시된 공지를 게시합니다.

수표

status-probe라는 Supabase Edge 함수가 pg_cron 아래에서 매 분 실행됩니다. pg_cron 아래에서 모든 활성화된 모니터에 병렬로 프로브하고 체크당 한 행을 기록합니다.

각 모니터에는 다음과 같은 기능이 있습니다.

설정 의미
이름 예를 들어 웹사이트를 위한 공공 레이블.
그룹 예를 들어 Disband와 같이 아래에 나타나는 섹션.
URL 요청할 절대적인 http 또는 https URL입니다.
방법 GET 또는 HEAD. 기본값은 GET입니다.
예상 상태 건강으로 간주되는 정확한 HTTP 상태입니다. 기본값은 200입니다.
키워드 응답 본문에 반드시 표시되어야 하는 선택적 텍스트.
타임아웃 1~30초. 기본값은 10초입니다.
헤더 선택적 요청 헤더, 서버 측에 저장됨.
활성화됨 프로브가 요청하는지 여부.
공개 공공 스냅샷에 기여하는지 여부.

모니터는 상태 코드가 과 선택적 키워드가 있는 경우에만 건강합니다. 리디렉션이 따릅니다. 타임아웃, 네트워크 오류, 잘못된 상태 또는 키워드 누락이 이유와 함께 실패한 체크로 기록됩니다.

프로브는 웹 앱과 독립적으로 실행됩니다. 웹 호스트에 문제가 발생하더라도 체크가 기록되는 것은 멈추지 않습니다.

역사 및 가동 시간

각 수표는 status_checks에 저장됩니다. 데이터베이스 트리거는 각 수표를 status_daily로 접습니다. 따라서 90일 차트는 수백만 행을 합산하는 것이 아니라 저렴한 읽기입니다.

체크가 없는 날인 공백은 다운타임이 아니라 데이터가 없는 것으로 표시됩니다.

자동 인시던트

모니터가 3회 연속 검사를 실패하면 프로브가 자동으로 인시던트를 열습니다. 이 인시던트은 해당 모니터와 관련된 중대한 인시던트이며, 마지막 오류를 포함하는 자동 업데이트로 수사 단계에서 시작됩니다.

다음 체크가 성공하면, 인시던트은 해결됨으로 이동하고, 다운타임이 얼마나 지속되었는지에 대한 대략적인 시간이 업데이트로 기록됩니다. 인시던트은 전체 이력을 함께 페이지와 피드에 계속 표시됩니다.

서비스 상태가 불안정하지만 연속으로 세 번 이상 실패하지 않는 경우 자동 사고가 열리지 않습니다. 소유자는 여전히 열린 자동 사고에 수동 업데이트를 추가할 수 있습니다.

수동적인 인시던트, 유지 보수 및 공지사항

소유자는 세 가지 종류의 항목을 게시할 수 있습니다.

종류 사용 목적
incident 계획되지 않은 문제.
maintenance 계획된 작업, 선택적으로 시작 및 종료 시간을 포함할 수 있습니다.
announcement 장애가 아닌 일반 서비스 공지입니다.

인시던트은 하나 이상의 모니터에 영향을 미칠 수 있습니다. 그 영향은 none, minor, major 또는 critical 중 하나입니다.

업데이트 상태는 다음과 같습니다.

각 업데이트에는 타임스탬프가 찍힌 항목이 인시던트 타임라인에 추가되고 인시던트의 현재 상태가 설정됩니다. 업데이트 resolved 또는 completed을 표시하면 해결 시간도 설정됩니다. 다른 상태의 더 최근 업데이트를 게시하면 다시 열립니다.

전체 상태

배너는 이 순서로 결정됩니다:

  1. 활성 유지 관리 창에 현재 유지 관리 중이라고 표시되거나 시작하기 전에 예정된 유지 보수.
  2. 활성 중지 사항 또는 심각한 인시던트에는 중단이라는 문구가 표시됩니다.
  3. 활성 중인 경미한 사고에 부분적으로 손상됨이라고 표시됩니다.
  4. 모든 모니터가 부분적으로 성능 저하 또는 주요 장애라고 표시되는 경우 공용 모니터가 고장났습니다.
  5. 실패가 없었고 적어도 하나의 결과가 있을 경우 모든 시스템이 정상 작동이라고 표시됩니다.
  6. 첫 번째 수표가 도착하기 전에 첫 번째 수표를 기다리고 있습니다라고 표시됩니다.

해결된 인시던트은 배너에 영향을 미치지 않습니다.

사생활

공개 읽기 경로는 직접 테이블 액세스가 아닌 데이터베이스 함수입니다. 모니터 이름, 그룹, 상태, 지연 시간, 가동 시간 및 인시던트를 반환합니다. 의도적으로 다음과 같은 내용을 생략합니다.

기본 테이블에는 공개 정책 없이 행 수준 보안이 활성화되어 있습니다. 서비스 역할과 프로브 기능만 직접 읽을 수 있습니다.

행정 기관

/status/admin는 로그인한 플랫폼 소유자에게만 제한됩니다. 스페이스 역할이 아니며 다른 회원에 부여할 수 없습니다. 인증되지 않은 요청에는 401가 전송되며, 다른 로그인된 계정에는 403가 전송됩니다.

관리자 화면은 다음과 같은 작업을 수행할 수 있습니다.

관리자 API

이 화면은 다음 소유자 전용 경로를 사용합니다.

방법 엔드포인트
GET, POST /api/status-admin/monitors
PATCH, DELETE /api/status-admin/monitors/{id}
GET, POST /api/status-admin/incidents
PATCH, DELETE /api/status-admin/incidents/{id}
POST /api/status-admin/incidents/{id}/updates

그들은 소유자의 Supabase 액세스 토큰을 Authorization: Bearer <token>로 받아들입니다. 그들은 공개적인 API가 아니라 관리자 화면의 구현 세부 사항입니다; 모양은 변경될 수 있습니다.

운영 메모

관계가 있는