PostgreSQL
다수의 PostgreSQL 서버를 모니터링 할 수 있는 화면입니다. 하나의 데이터베이스가 선택되면 Overview, Session, Core 6 등 선택된 데이터베이스의 데이터만으로 변경되어 단일 데이터베이스에 대한 집중적인 모니터링이 가능합니다. 상단 브레드 크럼을 이용하여 폴더 변경이 가능합니다.
Multi View는 Instance 관점에서의 모니터링 화면으로, 각 Instance 레벨의 지표 및 각 Instance의 내부 Database 지표의 합산값을 모니터링 할 수 있습니다.

1) Overview
폴더에 속한 인스턴스의 CPU, Memory, 주요 성능 지표를 함께 확인할 수 있습니다. 목록에서 인스턴스 클릭 시 선택한 인스턴스가 하이라이트 되며, 다른 지표들도 선택한 인스턴스의 데이터를 하이라이트로 볼 수 있습니다.

2) DB Session Type
Active Session, Long Session, Lock Session을 색상으로 구분하여 실시간으로 각 Session 상태의 Count를 확인할 수 있습니다.

3) Rank
주요 성능 6가지를 선별하여 직관적인 모니터링이 가능합니다. 타이틀 클릭 시 인스턴스 별 순위, 등록된 인스턴스들의 성능 데이터를 비교하여 인스턴스 별 비율과 10분 추이를 확인할 수 있습니다.

3-1) Vacuum Usage(%)
Vacuum age 사용률을 보여줍니다. 인스턴스 클릭 시 Dead Tuple 수가 높은 Object를 확인할 수 있는 ‘Top 10 Object List’ 팝업창으로 연계됩니다.
● Grid
| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Rank | 순위 |
| 2 | Database Name | Database 이름 |
| 3 | Schema Name | Schema 이름 |
| 4 | Object Name | Object 이름 |
| 5 | Object Type | Object Type |
| 6 | Total Size | 총 Block 크기 |
| 7 | Diff Size | 10분 동안의 Block 크기 변화량 |
| 8 | Age | 10분 동안의 Age 변화량 Order By 선택 지표 값에 따라 그리드에 표현되는 데이터 달라집니다. 정렬 기준: Scan Count, Scan Ratio, Age, Dead Tuple, Analyze Time |
3-2) Temp Usage (Size)
Temp의 현재 사용량을 보여줍니다. 인스턴스 클릭 시 Temp 사용량이 높은 SQL을 확인할 수 있는 ‘Top 10 SQL Order by Temp Blocks Written’ 팝업창으로 연계됩니다.
● Grid
| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Rank | 순위 |
| 2 | User Name | 사용자 이름 |
| 3 | Database Name | Database 이름 |
| 4 | Query ID | SQL ID |
| 5 | SQL Text | 실행 쿼리 Text |
| 6 | Calls | 호출 횟수 |
| 7 | Temp Blocks Written | 10분 동안의 명령문에서 쓴 총 임시 블록 수 변화량 |
3-3) Filesystem Usage (Size)
Object 디스크 사용량을 보여줍니다. 인스턴스 클릭 시 크기가 큰 Object를 확인할 수 있는 ‘Filesystm Usage’ 팝업창으로 연계됩니다.
● Grid
| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Rank | 순위 |
| 2 | Database Name | Database 이름 |
| 3 | Schema Name | Schema 이름 |
| 4 | Object Name | Object 이름 |
| 5 | Object Type | Object 유형(Table, Index) |
| 6 | Total Size | Object 총 크기 |
| 7 | Diff Size | 10분 동안의 Object 총 크기 변화량 |
3-4) Query IO (%)
Shared Buffer의 데이터를 쓰는 비율을 보여줍니다. 인스턴스 클릭 시 Shared Block Read 사용이 높은 SQL을 확인할 수 있는 ‘Top 10 SQL Order by Shared Block Read’ 팝업창으로 연계됩니다.
● Grid
| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Rank | 순위 |
| 2 | User Name | 쿼리를 실행했던 사용자 이름 |
| 3 | Database Name | Database 이름 |
| 4 | Query ID | Query ID |
| 5 | SQL Text | 수행된 쿼리 Text |
| 6 | Calls | 실행 횟수 |
| 7 | Elapsed Time | 수행 시간 |
| 8 | Shared Blocks Hits | 명령문에 의한 총 Shared Block 캐시 Hit 수 |
| 9 | Shared Blocks Read | 명령문에서 읽은 총 Shared Block 수 |
3-5) Transaction Time (Time)
트랜잭션이 실행된 시간이 긴 세션을 보여줍니다. 인스턴스 클릭 시 Session 정보를 자세히 확인할 수 있는 ‘Session Detail’ 팝업창으로 연계됩니다.

3-6) Alert
인스턴스에서 발생한 Alert을 Level, Type 별로 보여줍니다.

4) Real Time Monitor
활동성 및 지연에 관한 지표들을 이용하여 Chart 형식의 모니터링을 할 수 있습니다. 기본적으로 4개의 주요 성능 지표에 대한 모니터링이 가능하며, 시스템 및 업무 특성에 따라 원하는 성능 지표로 변경 및 확장이 가능합니다.

4-1) Slow Query
SQL의 수행시간을 Scatter 차트로 확인할 수 있습니다. 등록된 인스턴스들의 Slow Query를 확인하거나 특정 인스턴스를 선택해서 확인할 수 있습니다.
를 선택하면 ‘Slow Query Option’ 팝업창이 뜨고 Max Value 값과 점의 크기를 변경할 수 있습니다.

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Set Max Value | Slow Query 차트에 표시할 Query최대 수행 시간입니다. Set Max Value 옵션 설정 시 설정된 값으로 차트를 그립니다. Slow Query 타이틀 영역에서는 Max 값이 넘는 Query 수와 Slow Query 중 가장 수행시간이 긴 Query의 시간을 확인할 수 있습니다. Set Max Value 옵션을 설정하지 않은 경우 Slow Query 중 수행시간이 긴 Query 의 시간을 Max값으로 차트를 그립니다. |
| 2 | Set Dot Size | Slow Query 차트를 그릴 점의 크기를 1~5 크기로 설정할 수 있습니다. |
Slow Query 점을 드래그 하면 ‘SQL Elapsed List’ 팝업창이 나타나며 드래그 영역에 수집된 SQL 목록을 확인할 수 있습니다.
● Grid
| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Instance Name | Backend가 수행된 인스턴스 이름 |
| 2 | PID | Backend 프로세스 ID |
| 3 | User Name | Backend에 로그인한 사용자 이름 |
| 4 | Database Name | Backend가 수행된 데이터베이스 이름 |
| 3 | App Name | Backend에 연결된 애플리케이션 이름 |
| 4 | Client Address | Backend에 연결된 클라이언트 IP주소 (이 필드가 null이면 클라이언트가 서버 시스템의 unix 소켓을 통해 연결되었거나 이것이 autovacuum과 같은 내부 프로세스임을 나타냅니다.) |
| 5 | Client Host Name | Backend에 연결된 클라이언트의 호스트 이름 |
| 7 | Elapsed Time (sec) | 수행 시간 (초) |
| 8 | SQL Text | 수행 쿼리 Text |
4-2) Trend Chart
데이터베이스의 활동성 및 지연에 관한 지표들을 이용하여 Chart 형식의 모니터링 화면을 제공합니다. 기본적으로 4개의 주요 성능 지표에 대한 모니터링이 가능하며, 시스템 및 업무 특성에 따라 원하는 성능지표로 변경 및 확장이 가능합니다.
를 클릭하여 지표를 변경할 수 있습니다. ‘Stat Change’ 팝업창에서 지표를 변경합니다.
11) Session Tab Multi View 화면 하단 Session Tab 버튼을 클릭하면 슬라이드 아웃 형태로 Backend 목록을 확인할 수 있습니다. Overveiw나 Trend Chart를 통해 데이터베이스의 비정상적인 상태를 인지했을 때, Session Tab에서 현재 SQL을 실행하고 있는 Active Backends, Lock Backends 정보를 확인하여 원인이 되는 Backends를 찾을 수 있고, 필요하다면 강제로 종료할 수 있습니다.
11-1) Active Backends
현재 실행중인 Backends 목록을 확인할 수 있습니다. 멀티 데이터베이스 모니터링을 지원하며 우측 상단에서 원하는 인스턴스만 모니터링이 가능하도록 선택할 수 있습니다.
● Grid
| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | PID | Backend 프로세스 ID |
| 2 | User Name | Backend에 로그인 한 사용자 이름 |
| 3 | Database Name | Backend가 수행된 Database 이름 |
| 4 | App Name | Backend에 연결된 애플리케이션 이름 |
| 5 | Client Address | Backend에 연결된 클라이언트 IP 주소 (이 필드가 null이면 클라이언트가 서버 시스템의 unix 소켓을 통해 연결되었거나 이것이 autovacuum과 같은 내부 프로세스임을 나타냅니다.) |
| 6 | Client Host Name | Backend에 연결된 클라이언트 호스트 이름 |
| 7 | Backend Start | Backend 시작 시간 |
| 8 | Elapsed Time (sec) | 수행 시간 (초) |
| 9 | SQL ID | SQL ID |
| 10 | Query ID | Query ID |
| 11 | SQL Text | 수행 쿼리 Text |
| 12 | Wait Event | Backend가 현재 대기중인 경우 대기 이벤트 이름 (없으면 null) |
| 13 | Wait Event Type | Backend가 대기중인 이벤트 유형 (없으면 null) |
| 14 | State | Backend의 현재 상태 |
| 15 | Xact Start | Backend 트랜잭션이 시작된 시간 (없으면 null) |
| 16 | Query Start | 쿼리가 시작된 시간 (비활성화 상태인 경우 마지막 쿼리가 시작된 시간) |
| 17 | State Change | State가 마지막으로 변경된 시간 |
11-2) Lock Tree
현재 Lock 상태의 Backends 목록을 확인할 수 있습니다. 멀티 데이터베이스 모니터링을 지원하며 우측 상단에서 원하는 인스턴스만 모니터링이 가능하도록 선택할 수 있습니다.
● Grid
| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Database Name | Backend가 수행된 Database 이름 |
| 2 | PID | Backend 프로세스 ID |
| 3 | Lock Status | Lock 상태 (Holder, Waiter) |
| 4 | Holder PID | Holder 프로세스 ID |
| 5 | User Name | Backend에 로그인 한 사용자 이름 |
| 6 | SQL Text | 수행 쿼리 Text |
| 7 | Query Start | 쿼리가 시작된 시간 (비활성화 상태인 경우 마지막 쿼리가 시작된 시간) |
| 8 | Collect Time | exemONE이 수집한 시간 |