본문으로 건너뛰기

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 주소입니다.-
dbIsMultiMultitenant 지원 여부입니다.-
dbName데이터베이스 이름입니다.-
dbType데이터베이스 종류입니다.-
dbVersion이용 중인 데이터베이스의 버전입니다.-
oname에이전트 이름입니다.고유값

Field

다음은 db_postgresql_counter 카테고리에 수집되는 필드값에 대한 안내입니다.

MetricsDescriptionCategory
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_timedcheckpoint_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_countDML(데이터 조작 언어) 작업의 총 횟수입니다.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_stateReplication 관계로 구성된 데이터베이스이며 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 에이전트로부터 수집되는 지표들에 대한 설명입니다.

MetricUnitDescription
cpu(xos)pctcpu 사용율, cpu_user + cpu_sys + cpu_iowait의 합입니다.
cpu_user(xos)pctcpu가 사용자 코드를 실행하는데 소요한 시간입니다.
cpu_sys(xos)pctcpu가 kernel code를 수행한 시간입니다.
cpu_iowait(xos)pctcpu가 IO를 대기한 시간입니다.
cpu_idle(xos)pctcpu 프로세서 유휴 시간입니다.
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)MBbuff/cache로 사용중인 메모리양입니다.
mem_swaptotal(xos)MBSwap 전체 사이즈, 물리메모리가 부족한 경우를 대비하여 설정합니다.
mem_swapfree(xos)MBSwap의 사용하지 않은 영역, Swap 영역은 디스크 공간에 확보되기 때문에 Swap을 사용하고 있다면 시스템 성능이 급격하게 떨어질 수 있습니다.
mem_available(xos)MB메모리 가용영역입니다.
net_recv_bytes(xos)byte네트워크로 수신된 데이터의 양입니다.
net_recv_packets(xos)-네트워크로 수신된 데이터 패킷의 수입니다.
net_send_bytes(xos)byte네트워크로 전송한 데이터의 양입니다.
net_send_packets(xos)-네트워크로 전송한 데이터 패킷의 수입니다.