PostgreSQL 지표
데이터베이스 지표는 데이터베이스의 작업량과 리소스 사용량을 포괄적으로 수집합니다. 와탭 모니터링 서비스는 지속적으로 지표를 수집하여 데이터베이스의 병목 현상을 확인하고, 성능 문제의 근본 원인을 식별하는 데 도움이 되는 데이터를 제공합니다.
그외 지표에 대한 자세한 내용은 다음 링크를 참조하세요.
agent_status_summary
에이전트 상태와 관련한 지표를 10초 간격으로 수집한 카테고리입니다.
Fields
필드명 | 단위 | 설명 | 비고 |
---|---|---|---|
inActTime | 밀리초(ms) | 에이전트가 비활성화된 상태로 유지된 시간 | - |
isActive | - | 현재 에이전트의 활성 상태 여부 | true / false |
isRestart | - | 에이전트가 최근에 재시작되었는지 여부 | true / false |
lastActTime | 밀리초(ms) | 마지막으로 에이전트가 활성화된 상태의 시각 | 0 : 비활성화된 경우 |
oid | - | 프로젝트에 포함된 각 에이전트의 고유 식별자 | - |
startTime | 밀리초(ms) | 에이전트가 시작된 시점의 타임스탬프 | - |
db_postgresql_counter
Tags
다음은 db_postgresql_counter
카테고리에 수집되는 태그값에 대한 안내입니다.
태그명 | 설명 | 비고 |
---|---|---|
agentIp | 에이전트 별 IP 주소입니다. | - |
dbIsMulti | Multitenant 지원 여부입니다. | - |
dbName | 데이터베이스 이름입니다. | - |
dbType | 데이터베이스 종류입니다. | - |
dbVersion | 이용 중인 데이터베이스의 버전입니다. | - |
oname | 에이전트 이름입니다. | 고유값 |
Field
다음은 db_postgresql_counter
카테고리에 수집되는 필드값에 대한 안내입니다.
Metrics | Description | Category |
---|---|---|
active_sessions | 현재 활성화된 세션의 수입니다. | Connection |
CPUUtilization | 데이터베이스 인스턴스에서 사용 중인 CPU 자원의 비율입니다. | Performance |
FreeStorageSpace | 인스턴스의 사용 가능한 스토리지 공간입니다. | I/O |
FreeableMemory | 시스템에서 즉시 사용할 수 있는 메모리의 양입니다. | I/O |
NetworkReceiveThroughput | 인스턴스가 수신하는 네트워크 데이터의 속도입니다. | Troughput |
NetworkTransmitThroughput | 인스턴스에서 송신하는 네트워크 데이터의 속도입니다. | Troughput |
blk_read_time | 백엔드에서 데이터 블록을 읽는데 소요된 시간(milisecond)입니다. | I/O |
blk_write_time | 백엔드에서 데이터 블록을 쓰는데 소요된 시간(milisecond)입니다. | I/O |
blks_hit | 디스크 블록이 이미 버퍼 캐시에서 발견되어 읽기가 필요하지 않은 총 횟수입니다. | I/O |
blks_hit_ratio | 전체 조회 중 캐시에서 조회된 비율(%)입니다. 산출 방식: sum( blks_hit )/sum(blks_hit + blks_read ) * 100 | I/O |
blks_read | 디스크에서 직접 읽은 데이터 블록의 수입니다. | I/O |
buffers_checkpoint | 체크포인트 동안 플러시된 버퍼의 수입니다. | Info |
check_point | 데이터베이스의 체크포인트 발생 횟수입니다. | Troughput |
checkpoint_write_time | 체크포인트 동안 데이터를 쓰는데 소요된 시간(milisecond)입니다. | Troughput |
checkpoints_timed | checkpoint_timeout 환경 설정 값에 따라 발생한 체크 포인트 수입니다. | Troughput |
commit_count | 트랜잭션 커밋 횟수입니다. | Troughput |
confl_bufferpin | 버퍼 핀 충돌로 인한 세션 충돌 횟수입니다. | Troughput |
confl_deadlock | 데드락 충돌 횟수입니다. | Troughput |
confl_lock | 잠금 충돌로 인한 세션 충돌 횟수입니다. | Troughput |
confl_snapshot | 스냅샷 충돌로 인한 세션 충돌 횟수입니다. | Troughput |
confl_tablespace | 테이블스페이스 충돌로 인한 세션 충돌 횟수입니다. | Troughput |
conflicts | 데이터베이스 복구 작업과 충돌이 나서 수행이 취소된 쿼리 수입니다. | Troughput |
connect_error | 데이터베이스 연결 실패 횟수입니다. | Connection |
deadlock_count | 발생한 데드락의 총 횟수입니다. | Performance |
dml_count | DML(데이터 조작 언어) 작업의 총 횟수입니다. | Troughput |
fatal_count | 치명적인 오류가 발생한 횟수입니다. | Info |
idle_trx | 유휴 상태에 있는 트랜잭션의 수입니다. | Connection |
idle_trx_time | 유휴 상태 트랜잭션의 누적 시간입니다. | Connection |
idx_scan | 인덱스 Leaf 블록에 저장된 키를 이용해서 테이블 레코드를 액세스하는 방식입니다. 이 지표는 1분마다 조회한 값입니다. | Performance |
index_hit_ratio | 인덱스에서 캐시 조회된 비율(%)입니다. | Performance |
lock_wait_sessions | 잠금 대기 중인 세션 수입니다. | Performance |
long_running_sessions | 오래 실행 중인 세션 수입니다. | Performance |
max_connections | 허용된 최대 연결 수입니다. pg_settings 에 설정된 값으로, 이 값이 부족하면 'FATAL ERROR: too many clients already.' 에러가 발생할 수 있습니다. | Info |
max_runtime | 가장 오래 실행된 쿼리의 실행 시간입니다. | Performance |
node_state | Replication 관계로 구성된 데이터베이스이며 1 : Master, 2 : Slave 를 의미합니다. | Info |
numbackends | 데이터베이스에 연결된 현재 백엔드 프로세스의 수입니다. | Info |
oldest_cur_xid | 가장 오래된 현재 트랜잭션 ID입니다. | Info |
per_to_emergency_autovac | 비상 자동 vacuum 발생 횟수입니다. | Performance |
per_to_wraparound | 트랜잭션 ID 랩어라운드 방지 vacuum 작업의 횟수입니다. | Performance |
replication_count | 활성화된 Replication 데이터베이스(Slave)의 수입니다. | Performance |
replication_delay | 복제 지연 시간입니다. Replication 구조일 경우 replication 데이터베이스에 반영되는 지연시간으로, Slave DB에서 측정되는 지표입니다. | Performance |
replication_lag | 복제된 데이터가 원본 데이터와 비교해 뒤쳐진 정도입니다. | Performance |
rollback_count | 트랜잭션 롤백 횟수입니다. | Performance |
seq_scan | 테이블을 Full Scan하면서 레코드를 읽는 방식입니다. 인덱스가 존재하지 않거나, 인덱스가 존재하더라도 읽어야 할 범위가 넓은 경우에 선택합니다. 이 지표는 1분마다 조회한 값입니다. | Performance |
table_hit_ratio | 테이블에서 캐시 조회된 비율입니다. | Performance |
temp_bytes | 데이터베이스의 쿼리에 의해 임시 파일에 기록된 총 바이트 수입니다. | Performance |
temp_files | 데이터베이스에서 쿼리로 생성된 임시 파일의 수입니다. | Performance |
total_runtime | 모든 쿼리의 총 실행 시간입니다. | Performance |
total_sessions | 현재 연결되어 있는 총 세션 수입니다. | Connection |
tps | 초당 트랜잭션 처리 건수입니다. | Performance |
tup_deleted | 데이터베이스에서 쿼리에 의해 삭제된 튜플 수입니다. | Troughput |
tup_fetched | 데이터베이스에서 쿼리로 가져온 튜플 수입니다. | Troughput |
tup_inserted | 데이터베이스에서 쿼리에 의해 삽입된 튜플 수입니다. | Troughput |
tup_returned | 데이터베이스의 쿼리에서 반환된 튜플 수입니다. | Troughput |
tup_updated | 데이터베이스에서 쿼리에 의해 업데이트된 튜플 수입니다. | Troughput |
uptime | 데이터베이스가 실행 중인 시간입니다. | Info |
vacuum_running_count | 현재 실행 중인 vacuum 작업의 수입니다. | Performance |
wait_sessions | 대기 상태인 세션의 수입니다. | Performance |
wal_count | 기록된 WAL(Write-Ahead Logging) 항목의 수입니다. WAL 파일 수의 급증은 일반적으로 단기간에 대량의 변경 사항이나 임시 테이블 및 객체를 생성하는 vacuum과 유사한 유지 관리 작업으로 인해 발생합니다. 이는 천천히 정상 수준으로 돌아와야 합니다. 이로 인해 일반적으로 많은 디스크 I/O 및 CPU 활동이 발생하여 상황이 정상으로 돌아올 때까지 애플리케이션 쿼리 실행 속도가 느려집니다. 이 지표는 1분마다 조회한 값입니다. | Performance |
warning_count | 경고가 발생한 횟수입니다. | Info |
XOS 관련 지표
다음은 XOS 에이전트로부터 수집되는 지표들에 대한 설명입니다.
Metric | Unit | Description |
---|---|---|
cpu(xos) | pct | cpu 사용율, cpu_user + cpu_sys + cpu_iowait 의 합입니다. |
cpu_user(xos) | pct | cpu가 사용자 코드를 실행하는데 소요한 시간입니다. |
cpu_sys(xos) | pct | cpu가 kernel code를 수행한 시간입니다. |
cpu_iowait(xos) | pct | cpu가 IO를 대기한 시간입니다. |
cpu_idle(xos) | pct | cpu 프로세서 유휴 시간입니다. |
disk_reads(xos) | block | 디스크로부터 읽은 데이터의 양입니다. |
disk_read_bytes(xos) | byte | 디스크로부터 읽은 데이터의 양입니다. |
disk_writes(xos) | block | 디스크로 쓰여진 데이터의 양입니다. |
disk_write_bytes(xos) | byte | 디스크로 쓰여진 데이터의 양입니다. |
mem(xos) | pct | 메모리 사용율입니다. |
mem_total(xos) | MB | 전체 메모리양입니다. |
mem_free(xos) | MB | 시스템에서 사용하고 있지 않은 메모리양입니다. |
mem_used(xos) | MB | 시스템에서 사용하고 있는 메모리양입니다. |
mem_buffcache(xos) | MB | buff/cache로 사용중인 메모리양입니다. |
mem_swaptotal(xos) | MB | Swap 전체 사이즈, 물리메모리가 부족한 경우를 대비하여 설정합니다. |
mem_swapfree(xos) | MB | Swap의 사용하지 않은 영역, Swap 영역은 디스크 공간에 확보되기 때문에 Swap을 사용하고 있다면 시스템 성능이 급격하게 떨어질 수 있습니다. |
mem_available(xos) | MB | 메모리 가용영역입니다. |
net_recv_bytes(xos) | byte | 네트워크로 수신된 데이터의 양입니다. |
net_recv_packets(xos) | - | 네트워크로 수신된 데이터 패킷의 수입니다. |
net_send_bytes(xos) | byte | 네트워크로 전송한 데이터의 양입니다. |
net_send_packets(xos) | - | 네트워크로 전송한 데이터 패킷의 수입니다. |