시스템 모니터: 작업 프로세스, 추적 정보, 잠금 및 세션
플랫폼이 지금 이 순간 무엇을 하고 있는지, 그 이면에 있는 데이터베이스 작업, 보유하고 있는 잠금, 그리고 누가 로그인했는지, 그리고 이 모든 것을 어떻게 막을 수 있는지에 대한 정보입니다.
작업 프로세스, 시스템 추적 및 잠금은 플랫폼 → 운영 → 상태에서 통합, 파이프라인 및 워크플로 상태 화면 옆에 표시됩니다. 웹 및 사용자 세션은 플랫폼 → 액세스에서 사용자 옆에 표시됩니다. 각각 별도의 권한이 부여되므로 운영 역할은 시스템을 모니터링하고 폭주하는 쿼리를 취소할 수 있는 권한을 갖되 모든 사용자를 로그아웃할 수 있는 권한은 갖지 않을 수 있습니다.
업무 프로세스
모든 요청에 대한 응답, 모든 백그라운드 작업자(스케줄러, 메일러, 프로세스 마이닝, 데이터 보존, 전자 서명 검색, 상속 보고서) 및 모든 배치 실행은 실행 중인 모든 컨테이너에서 이루어지며, 각각은 해당 시점에 사용 중인 데이터베이스 백엔드와 연결되어 있습니다. 그 아래에는 모든 데이터베이스 연결의 상태, 대기 중인 작업, 문과 트랜잭션이 열려 있는 시간, 연결을 차단하는 주체, 그리고 연결을 보낸 요청 또는 작업에 대한 정보가 있습니다.
- 취소 버튼을 누르면 현재 실행 중인 명령문이 중지됩니다. 그러면 요청은 대기하지 않고 오류와 함께 종료됩니다. 여러 행을 선택하고 '선택한 행 취소'를 사용하여 한꺼번에 중지할 수 있습니다.
- 일괄 실행 시 '취소'를 클릭하면 다음 항목에서 실행이 중지됩니다. 어떤 항목도 중간에 중단되지 않으며, 실행은 완료된 작업과 함께 취소된 것으로 기록됩니다.
- (데이터베이스 백엔드에서) '종료' 버튼은 해당 연결을 닫고 트랜잭션을 롤백합니다. 이 버튼은 트랜잭션 내에서 유휴 상태로 잠겨 있는 세션에 사용되며, 실행 중인 작업이 없기 때문에 '취소' 버튼으로는 접근할 수 없습니다.
- 다른 컨테이너에 대한 작업은 해당 컨테이너를 통해 취소되며, 10초 이내에 처리됩니다.
- 모든 취소 및 종료 시에는 사유를 입력하라는 메시지가 표시되며, 해당 사유는 사용자의 이름과 함께 감사 로그에 기록됩니다.
시스템 추적
추적(모든 작업 또는 백엔드에서)은 해당 프로세스의 모든 정보를 표시합니다. 전송된 모든 명령문, 각 명령문 실행 시간, 반환된 행 수, 보유 및 대기 중인 잠금, 앞의 세션, 뒤의 대기 중인 세션, 그리고 현재 실행 중인 쿼리 실행 계획(안전하게 표시할 수 있는 경우)까지 모두 표시됩니다. 시스템 추적 화면에는 가장 느린 작업과 가장 최근 작업이 나열되며, 데이터베이스에 pg_stat_statements가 있는 경우 데이터베이스 시간을 가장 많이 사용한 명령문도 표시됩니다. 사용자가 입력한 값은 개인 정보이므로 절대 기록되지 않습니다.
자물쇠
대기 중인 잠금, 다른 사용자의 작업을 차단하는 잠금, 권고 잠금(스키마 마이그레이션 잠금은 명칭이 지정되어 있음), 그리고 여전히 "실행 중"으로 표시되는 배치 실행이 있습니다. 잠금은 해당 잠금을 보유한 트랜잭션이 설정한 임계값(기본값 5분)보다 오래 유휴 상태이거나 실행 중인 컨테이너가 배치 실행을 담당하지 않을 때 만료된 것으로 표시됩니다. 컨테이너가 중지된 실행은 완료되지 않으며, 해제될 때까지 일정이 다시 실행되지 않습니다.
- 모든 오래된 항목을 선택한 다음 선택한 항목을 해제합니다. PostgreSQL은 해당 잠금을 보유한 세션이 종료될 때만 잠금을 반환하므로, 해제 명령은 해당 세션을 종료하고 트랜잭션을 롤백합니다.
- 유효하지 않은 잠금은 강제 해제를 선택하지 않는 한 거부됩니다. 즉, 현재 잠금을 보유하고 있는 정상적인 거래를 종료하는 것이 바로 그 문제를 해결하려던 의도와는 반대로 문제를 야기하는 클릭입니다.
- 오래된 배치 실행을 해제하면 해당 실행이 실패한 것으로 표시되어 일정을 다시 실행할 수 있습니다.
웹 및 사용자 세션
웹 세션(브라우저 또는 기기당 하나)과 로그인한 모든 사용자의 현재 활동을 확인할 수 있습니다. 사용자별 또는 세션별로 전환하고, 이름, 주소 또는 출처로 필터링할 수 있으며, 세션 하나, 특정 사용자의 모든 세션, 선택한 사용자 또는 본인을 제외한 모든 사용자의 로그아웃을 한 번에 처리할 수 있습니다. 서비스 계정도 토큰당 하나의 세션으로 표시됩니다. 본인의 세션은 일괄 로그아웃 작업에 의해 종료되지 않습니다.
플랫폼의 역할 화면에서 작업 프로세스에 대한 권한을 부여할 수 있습니다. 작업 프로세스는 표시하여 모니터링하고, 변경하여 취소하고, 삭제하여 백엔드를 종료할 수 있습니다. 시스템 추적은 표시하고, 잠금은 표시하여 모니터링하고, 삭제하여 해제할 수 있습니다. 웹 및 사용자 세션은 표시하여 모니터링하고, 삭제하여 로그아웃할 수 있습니다. 관리자는 이러한 모든 권한을 보유합니다. 다중 테넌트 배포 환경에서 각 테넌트는 자신의 작업과 데이터베이스 연결만 볼 수 있습니다.