PostgreSQL 지표
데이터베이스 지표는 데이터베이스의 작업량과 리소스 사용량을 포괄적으로 수집합니다. 와탭 모니터링 서비스는 지속적으로 지표를 수집하여 데이터베이스의 병목 현상을 확인하고, 성능 문제의 근본 원인을 식별하는 데 도움이 되는 데이터를 제공합니다.
그외 지표에 대한 자세한 내용은 다음 링크를 참조하세요.
agent_status_summary
에이전트 상태와 관련한 지표를 10초 간격으로 수집한 카테고리입니다.
Fields
Field | Unit | Description | Additional Info |
---|---|---|---|
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_idle(xos) | pct | CPU가 유휴 상태인 시간 |
cpu_iowait(xos) | pct | CPU가 I/O 작업을 대기한 시간 |
cpu_sys(xos) | pct | CPU가 커널 코드 실행에 사용된 시간 |
cpu_user(xos) | pct | CPU가 사용자 코드 실행에 사용된 시간 |
disk_read_bytes(xos) | byte | 디스크에서 읽은 데이터 양 |
disk_reads(xos) | block | 디스크에서 읽은 블록 수 |
disk_write_bytes(xos) | byte | 디스크에 기록된 데이터 양 |
disk_writes(xos) | block | 디스크에 기록된 블록 수 |
mem(xos) | pct | 메모리 사용률 |
mem_available(xos) | MB | 가용한 메모리 크기 |
mem_buffcache(xos) | MB | buff/cache 용도로 사용 중인 메모리 크기 |
mem_free(xos) | MB | 사용 중이지 않은 메모리 크기 |
mem_swapfree(xos) | MB | 사용되지 않은 스왑 영역 크기 스왑은 디스크 공간을 사용하므로, 사용 시 성능 저하 가능성 있음 |
mem_swaptotal(xos) | MB | 전체 스왑(Swap) 크기 물리 메모리 부족 시 사용 |
mem_total(xos) | MB | 전체 메모리 크기 |
mem_used(xos) | MB | 사용 중인 메모리 크기 |
net_recv_bytes(xos) | byte | 네트워크에서 수신한 데이터 양 |
net_recv_packets(xos) | count | 네트워크에서 수신한 패킷 수 |
net_send_bytes(xos) | byte | 네트워크로 전송한 데이터 양 |
net_send_packets(xos) | count | 네트워크로 전송한 패킷 수 |