Docker를 사용하여 업트레이스를 빠르게 시작하는 방법을 보여 주는 것입니다.
업트레이스를 영구적으로 실행하려면 DEB/RPM 패키지 또는 미리 컴파일된 바이너리를 사용할 수도 있습니다.
(추후엔 영구적으로 하는 방법을 posting 할 예정입니다.)
git clone https://github.com/uptrace/uptrace.git
cd uptrace/example/docker
docker-compose pull
docker-compose up -d
docker-compose logs uptrace
업트레이스는 uptrace-go OpenTelemetry 배포판을 사용하여 자체 모니터링을 수행하기에 테스트 데이터를 얻으려면 UI를 몇 번 새로 고치기만 하면 됩니다. 데이터가 표시되는 데 약 30초 정도 걸립니다.
MailHog를 사용하여 이메일 알림을 테스트합니다.
http://localhost:8025
Uptrace는 애플리케이션 성능 모니터링(APM) 솔루션입니다.
Uptrace의 주요 기능과 특징
사용자 트랜잭션의 전체 흐름을 추적하여 병목 지점을 식별할 수 있습니다.
마이크로서비스 아키텍처에서도 분산 트랜잭션을 추적할 수 있습니다.
CPU, 메모리, I/O 등 시스템 리소스 사용량을 실시간으로 모니터링할 수 있습니다.
지표 기반 경보를 설정하여 성능 이상을 신속하게 감지할 수 있습니다.
애플리케이션 내에서 발생한 에러와 예외를 캡처하고 분석할 수 있습니다.
에러 발생 위치, 스택 트레이스, 관련 컨텍스트 정보를 제공합니다.
애플리케이션 로그를 통합하여 관리할 수 있습니다.
로그 데이터를 검색, 필터링, 분석할 수 있는 기능을 제공합니다.
실제 사용자의 웹 페이지 로딩 성능을 모니터링할 수 있습니다.
사용자 행동 데이터를 수집하여 분석할 수 있습니다.
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_time | CPU 사용 시간 |
postgresql_operations | 데이터베이스 행 작업 수 |
postgresql_rows | 데이터베이스 행 수 |
go_sql_query_timing | SQL 쿼리 처리 시간 |
postgresql_blocks_read | 읽은 블록 수 |
postgresql_index_scans | 인덱스 스캔 수 |
postgresql_index_size | 인덱스 크기 |
otelcol_processor_batch_batch_send_size_bucket | OpenTelemetry 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 Metrics | Write-Ahead Logging 메트릭스를 기록합니다. |
PW: uptrace