Skip to content

tae0y/scouter-profile-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

Getting Started

  1. Python 가상환경을 생성하고 패키지 설치를 설치합니다.

    uv sync
    .venv/bin/activate # Mac/Linux
  2. .env 파일에 webapp 도메인 주소와 추출할 날짜, 시간 등을 입력합니다.

    BASE_URL=http://{SCOUTER_WEBAPP_DOMAIN}:{SCOUTER_WEBAPP_PORT}
    DATE=20251124
    START_HMS=080000
    END_HMS=170000
    OUTPUT_PATH=profiles.json
    

    Scouter webapp 기동방법은 다음 문서를 참고하세요 👉 Web API Guide

  3. 컨테이너를 띄우기 전에 dbadmin의 권한 설정을 해줍니다.

    mkdir -p docker/volumes/pgadmin
    chown -R 5050:5050 docker/volumes/pgadmin
    chmod -R 700 docker/volumes/pgadmin
  4. 컨테이너로 데이터를 저장할 db, 데이터 조회시 사용할 dbadmin을 기동합니다.

    cd docker
    docker compose up -d --build
  5. 스크립트를 실행해 프로파일 데이터를 수집하고 파일로 저장합니다.

    cd src
    uv run main.py
  6. 스크립트를 실행해 DB에 데이터를 저장합니다.

    cd src
    uv run save_profiles_to_db.py
  7. dbadmin에 접속해서 데이터를 조회하고 활용합시다!

    Admin 접속주소: http://localhost:8080
    Admin 계정정보: admin@local.com / adminpass
    DB 접속주소: db
    DB명: profilesdb
    DB 계정정보: profileuser / profilepass

    -- 트랜잭션내 DB,APP 구간별 소요시간
    SELECT txid, step_type_name, sum(elapsed)
    FROM public.profiles
    GROUP BY txid, step_type_name
    ORDER BY txid, step_type_name
    -- DB단 쿼리별 소요시간
    SELECT txid, elapsed, main_value, param
    FROM public.profiles
    WHERE step_type_name = 'SQL3'
    ORDER BY elapsed DESC
    -- APP단 메서드별 소요시간
    SELECT txid, elapsed, REPLACE(REPLACE(main_value, CHR(10), ''), CHR(13), ''), param
    FROM public.profiles
    WHERE step_type_name = 'METHOD'
    ORDER BY elapsed DESC

    Scouter를 활용한 메서드 프로파일링 방법은 다음 문서를 참고하세요 👉 Method Profiling

    각 데이터 필드는 다음과 같습니다.

    • txid : 트랜잭션 ID
    • elapsed : 밀리초 단위 소요시간
    • main_value : SQL 쿼리 문자열 혹은 Java 메서드명
    • param : SQL 쿼리의 파라미터

About

Scouter xLog를 추출하고 DB에 저장하는 샘플

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages