도커에서 Postgresql15버전 설치 및 Uptrace로 PG 모니터링 실습

이세현·2024년 7월 18일
0

Postgresql_Monitoring

목록 보기
3/8

Uptrace Docker demo

Docker를 사용하여 업트레이스를 빠르게 시작하는 방법을 보여 주는 것입니다.
업트레이스를 영구적으로 실행하려면 DEB/RPM 패키지 또는 미리 컴파일된 바이너리를 사용할 수도 있습니다.
(추후엔 영구적으로 하는 방법을 posting 할 예정입니다.)

1단계:Git을 사용하여 예제 다운로드

git clone https://github.com/uptrace/uptrace.git
cd uptrace/example/docker

2단계:Docker를 사용하여 서비스 시작

docker-compose pull
docker-compose up -d

3단계:업트레이스가 실행 중인지 확인

docker-compose logs uptrace

4단계: 브라우저에서 업트레이스 UI 열기

http://localhost:14318

업트레이스는 uptrace-go OpenTelemetry 배포판을 사용하여 자체 모니터링을 수행하기에 테스트 데이터를 얻으려면 UI를 몇 번 새로 고치기만 하면 됩니다. 데이터가 표시되는 데 약 30초 정도 걸립니다.

알림

MailHog를 사용하여 이메일 알림을 테스트합니다.
http://localhost:8025

uptrace를 활용한 Postgres DB 모니터링

간략한 소개

Uptrace는 애플리케이션 성능 모니터링(APM) 솔루션입니다.

Uptrace의 주요 기능과 특징

  1. 트랜잭션 추적(Transaction Tracing)

사용자 트랜잭션의 전체 흐름을 추적하여 병목 지점을 식별할 수 있습니다.
마이크로서비스 아키텍처에서도 분산 트랜잭션을 추적할 수 있습니다.

  1. 성능 모니터링(Performance Monitoring)

CPU, 메모리, I/O 등 시스템 리소스 사용량을 실시간으로 모니터링할 수 있습니다.
지표 기반 경보를 설정하여 성능 이상을 신속하게 감지할 수 있습니다.

  1. 에러 추적(Error Tracking)

애플리케이션 내에서 발생한 에러와 예외를 캡처하고 분석할 수 있습니다.
에러 발생 위치, 스택 트레이스, 관련 컨텍스트 정보를 제공합니다.

  1. 로그 관리(Log Management)

애플리케이션 로그를 통합하여 관리할 수 있습니다.
로그 데이터를 검색, 필터링, 분석할 수 있는 기능을 제공합니다.

  1. 사용자 경험 모니터링(User Experience Monitoring)

실제 사용자의 웹 페이지 로딩 성능을 모니터링할 수 있습니다.
사용자 행동 데이터를 수집하여 분석할 수 있습니다.

  1. 다양한 언어/프레임워크 지원

Java, .NET, Node.js, Python, Go, Ruby 등 다양한 언어와 프레임워크를 지원합니다.
Uptrace는 애플리케이션의 성능, 안정성, 사용성 등을 종합적으로 모니터링하여 개발자와 운영팀이 문제를 신속하게 파악하고 해결할 수 있도록 돕는 APM 솔루션입니다

이미지 예시

PostgreSQL 데이터베이스 연결 설정: Uptrace에 PostgreSQL 데이터베이스 연결 정보(호스트, 포트, 사용자, 비밀번호 등)를 입력하여 데이터베이스를 연결합니다.

자동 계측: Uptrace는 PostgreSQL 데이터베이스의 다양한 지표를 자동으로 수집하고 모니터링할 수 있습니다. 이러한 지표에는 쿼리 성능, 테이블 및 인덱스 크기, 행 작업 수 등이 포함됩니다.

사용자 지정 계측: Uptrace를 통해 사용자 지정 SQL 쿼리를 실행하여 특정 데이터베이스 지표를 수집할 수 있습니다. 이를 통해 애플리케이션 요구사항에 맞는 맞춤형 모니터링을 수행할 수 있습니다.

대시보드 및 알림: Uptrace는 수집된 PostgreSQL 데이터를 시각화하여 대시보드로 제공합니다. 또한 사용자 정의 알림을 설정하여 성능 문제 발생 시 신속하게 대응할 수 있습니다.

트랜잭션 추적: Uptrace는 PostgreSQL 데이터베이스의 트랜잭션 흐름을 추적하여 성능 병목 지점을 식별할 수 있습니다. 이를 통해 복잡한 데이터베이스 문제를 신속하게 해결할 수 있습니다.

다음은 Uptrace에서 수집할 수 있는 PostgreSQL 지표와 그 의미를 나타낸 표입니다:

지표 이름설명
postgresql_blocks_read읽은 블록 수
system_cpu_timeCPU 사용 시간
postgresql_operations데이터베이스 행 작업 수
postgresql_rows데이터베이스 행 수
go_sql_query_timingSQL 쿼리 처리 시간
postgresql_blocks_read읽은 블록 수
postgresql_index_scans인덱스 스캔 수
postgresql_index_size인덱스 크기
otelcol_processor_batch_batch_send_size_bucketOpenTelemetry Collector 처리 배치 크기
postgresql_table_size테이블 크기
postgresql_table_vacuum_count테이블 수동 vacuum 수

측정 항목설명
Queries per Second (QPS)초당 처리되는 쿼리의 수입니다. 데이터베이스 부하를 평가하는 데 사용됩니다.
Read Latency읽기 작업의 평균 지연 시간을 나타냅니다.
Write Latency쓰기 작업의 평균 지연 시간을 나타냅니다.
Lock Waits트랜잭션이나 쿼리가 락을 기다리는 시간을 나타냅니다.
Buffer Cache Hit Ratio버퍼 캐시 히트 비율을 나타냅니다.
Index Usage인덱스가 쿼리 실행에 얼마나 자주 사용되는지를 나타냅니다.
Table Scans테이블을 스캔하여 데이터를 찾는 작업 횟수를 나타냅니다.
Connection Pool Stats연결 풀에서 관리되는 연결의 통계 정보를 제공합니다.
Replication Lag복제된 슬레이브 데이터베이스가 마스터와 얼마나 지연되는지를 나타냅니다.
Background Writer Activity백그라운드에서 데이터베이스의 더티 페이지를 디스크로 쓰는 활동을 모니터링합니다.
Checkpoint Activity체크포인트 활동을 모니터링하여 데이터베이스의 안정성과 성능을 유지합니다.
Temporary File Usage임시 파일이 데이터베이스 작업에 사용되는 정도를 나타냅니다.
Autovacuum Activity자동 VACUUM 작업이 얼마나 자주 실행되고 있는지를 나타냅니다.
Long Running Queries실행 시간이 긴 쿼리를 모니터링하여 성능 문제를 파악합니다.
Database Size데이터베이스의 전체 크기를 나타냅니다.
WAL MetricsWrite-Ahead Logging 메트릭스를 기록합니다.

DBeaver로 PG 연동

PW: uptrace

profile
pglover_12

0개의 댓글