프로필 데이터 다운로드
이 문서에서는 로컬 시스템에 프로필 데이터를 다운로드하고 Go 애플리케이션을 사용해서 프로필 데이터를 프로그래매틱 방식으로 검색하는 방법을 설명합니다.
Google Cloud 콘솔을 사용하여 프로필 다운로드
Flame 그래프에 표시된 프로필을 다운로드하려면 다운로드 get_app를 클릭합니다.
Profiler는 다운로드된 파일의 이름을 다음 규칙에 따라 지정합니다.
profiler_[SERVICE_NAME]_[PROFILE_TYPE]_[FROM_DATE]_[TO_DATE]_[ZONE]_[VERSION].pb.gz
이 표현식의 각 항목은 다음과 같은 의미를 갖습니다.
SERVICE_NAME
은 선택한 서비스를 의미합니다.PROFILE_TYPE
은 선택한 프로필 유형을 의미합니다.FROM_DATE
및TO_DATE
는 지정한 시간 범위를 의미합니다.ZONE
은 선택한 영역을 의미합니다.VERSION
은 선택한 버전을 의미합니다.
예: profiler_docdemo-service_HEAP_2018-04-22T20_25_31Z_2018-05-22T20_25_31Z_us-east1-c.pb.gz
프로그래매틱 방식으로 프로필 다운로드
프로필 데이터를 검색하려면 ListProfiles
API 메서드를 사용합니다. 다음 샘플 Go 프로그램은 이 API 사용을 보여줍니다.
샘플 프로그램은 실행되는 디렉터리에 폴더를 만들고 숫자가 있는 pprof
파일 집합을 생성합니다. 각 파일에는 profile000042.pb.gz
와 비슷한 이름 지정 규칙이 사용됩니다. 각 디렉터리에는 프로필 데이터와 메타데이터 파일이 포함됩니다. metadata.csv
에는 다운로드된 파일의 정보가 포함됩니다.
샘플 프로그램은 다음 명령줄 인수를 사용합니다.
project
: 프로필이 검색된 프로젝트입니다. 필수 항목.page_size
: API 호출별로 검색된 최대 프로필 수입니다.page_size
의 최댓값은 1,000입니다. 지정하지 않으면 이 필드가 100으로 설정됩니다.page_token
: 다운로드를 재개하기 위해 이전 프로그램 실행으로 생성된 문자열 토큰입니다. 선택사항.max_profiles
: 검색할 최대 프로필 수입니다. 양수가 아닌 정수가 제공된 경우 프로그램이 모든 프로필을 검색하도록 시도합니다.
선택사항.
샘플 애플리케이션 실행
샘플 애플리케이션을 실행하려면 다음을 수행합니다.
저장소를 복제합니다.
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
샘플 프로그램이 포함된 디렉터리로 변경합니다.
cd golang-samples/profiler/export
YOUR_GCP_PROJECT를Google Cloud 프로젝트의 ID로 바꾼 후 프로그램을 실행합니다.
go run main.go -project YOUR_GCP_PROJECT -page_size 1000 -max_profiles 10000
프로그램을 완료하는 데 상당한 시간이 걸릴 수 있습니다. 프로그램이 현재 페이지를 검색한 후 다음 페이지에 대해 토큰을 출력합니다. 프로그램이 중단되면 토큰을 사용해서 프로세스를 재개할 수 있습니다.
다운로드한 프로필 보기
직렬화된 프로토콜 버퍼 형식으로 작성되어 다운로드된 파일을 읽으려면 오픈소스 pprof
도구를 사용합니다.