Package google.devtools.cloudprofiler.v2

색인

ExportService

기존 Cloud Profiler 고객은 서비스를 통해 Google Cloud 외부로 자신의 프로필 데이터를 내보낼 수 있습니다.

ListProfiles

rpc ListProfiles(ListProfilesRequest) returns (ListProfilesResponse)

지금까지 수집되고 호출자가 볼 수 있는 권한이 있는 프로필을 나열합니다.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

자세한 내용은 인증 개요를 참조하세요.

ProfilerService

클라우드에서 실행되는 프로파일링 에이전트 또는 프로파일링 데이터의 오프라인 제공업체가 제공하는 지속적인 프로파일링 데이터 수집을 관리합니다.

이 서비스에 나열된 API는 프로파일러 에이전트 내에서만 사용할 수 있습니다.

CreateOfflineProfile

rpc CreateOfflineProfile(CreateOfflineProfileRequest) returns (Profile)

CreateOfflineProfile은 오프라인 모드에서 새 프로필 리소스를 만듭니다. 클라이언트는 생성할 프로필과 함께 프로필 바이트를 제공하고 서버에서 이를 기록합니다.

이 API는 직접 사용하지 않는 것이 좋습니다. 대신 프로필 수집에 지원되는 프로파일러 에이전트를 사용하세요.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

자세한 내용은 인증 개요를 참조하세요.

프로필 만들기

rpc CreateProfile(CreateProfileRequest) returns (Profile)

CreateProfile은 온라인 모드에서 새 프로필 리소스를 만듭니다.

이 API는 직접 사용하지 않는 것이 좋습니다. 대신 프로필 수집에 지원되는 프로파일러 에이전트를 사용하세요.

서버는 배포마다 일정한 속도로 새 프로필이 생성되게 하므로 다음 프로필 세션을 사용할 수 있을 때까지 생성 요청이 일정 시간 동안 중단될 수 있습니다.

최대 1분 내에 만들 수 없는 경우 ABORTED 오류와 함께 요청이 실패할 수 있으며, 응답에 다시 프로필 생성을 시도하기 전에 클라이언트가 가져야 하는 백오프 기간이 표시됩니다. 백오프 기간은 응답 상태의 google.rpc.RetryInfo 확장 프로그램에서 반환됩니다. gRPC 클라이언트에서는 확장 프로그램이 'google.rpc.retryinfo-bin'이라는 후행 메타데이터 항목에서 바이너리 직렬화된 proto로 반환됩니다.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

자세한 내용은 인증 개요를 참조하세요.

프로필 업데이트

rpc UpdateProfile(UpdateProfileRequest) returns (Profile)

UpdateProfile은 온라인 모드에서 생성된 프로필 리소스의 프로필 바이트 및 라벨을 업데이트합니다. 오프라인 모드에서 만든 프로필의 바이트 업데이트는 현재 지원되지 않습니다. 프로필 생성 시 프로필 콘텐츠를 제공해야 합니다.

이 API는 직접 사용하지 않는 것이 좋습니다. 대신 프로필 수집에 지원되는 프로파일러 에이전트를 사용하세요.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

자세한 내용은 인증 개요를 참조하세요.

CreateOfflineProfileRequest

CreateOfflineProfileRequest는 프로필 리소스 오프라인 생성 요청을 설명합니다.

필드
parent

string

프로필을 만들 상위 프로젝트입니다.

승인을 처리하려면 지정된 리소스 parent에 대해 다음과 같은 IAM 권한이 필요합니다.

  • cloudprofiler.profiles.create
profile

Profile

생성할 프로필의 콘텐츠입니다.

CreateProfileRequest

CreateProfileRequest는 프로필 리소스 온라인 생성 요청을 설명합니다. 배포 필드를 입력해야 합니다. profile_type은 에이전트에서 지원하는 프로필 유형 목록을 지정합니다. 이 유형 중 하나의 프로필을 수집해야 할 때까지 생성 호출이 중단됩니다.

필드
parent

string

프로필을 만들 상위 프로젝트입니다.

승인을 처리하려면 지정된 리소스 parent에 대해 다음과 같은 IAM 권한이 필요합니다.

  • cloudprofiler.profiles.create
deployment

Deployment

배포 세부정보입니다.

승인을 처리하려면 지정된 리소스 deployment에 대해 다음과 같은 IAM 권한이 필요합니다.

  • cloudprofiler.profiles.create
profile_type[]

ProfileType

에이전트가 제공할 수 있는 하나 이상의 프로필 유형입니다.

Deployment

배포에는 배포 식별 정보가 포함됩니다.

필드
project_id

string

프로젝트 ID는 클라우드 프로젝트의 ID입니다. 검증 정규식: ^[a-z][-a-z0-9:.]{4,61}[a-z0-9]$.

target

string

대상은 관련 배포를 그룹화하는 데 사용되는 서비스 이름입니다. * App Engine Flex/표준의 서비스 이름입니다. * GKE의 클러스터 및 컨테이너 이름입니다. * 직접 Compute Engine 프로파일링을 위한 사용자 지정 문자열입니다(예: 자바). * Dataflow의 작업 이름입니다. 검증 정규식: ^[a-z0-9]([-a-z0-9_.]{0,253}[a-z0-9])?$.

labels

map<string, string>

라벨은 사용자 환경과 동일한 대상 내에서 배포를 식별합니다. 라벨 이름의 검증 정규식: ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$. 개별 라벨의 값은 512바이트 이하여야 하고, 모든 라벨 이름 및 값의 전체 크기는 1,024바이트 이하여야 합니다.

'language'라는 라벨을 사용하여 프로파일링된 배포의 프로그래밍 언어를 기록할 수 있습니다. 값의 표준 선택 항목에는 'java', 'go', 'python', 'ruby', 'nodejs', 'php', 'dotnet'이 포함됩니다.

Google Cloud Platform에서 실행되는 배포의 경우 배포 위치를 설명하는 '영역' 또는 '리전' 라벨이 있어야 합니다. 영역 예시는 'us-central1-a'이고, 리전 예시는 'us-central1' 또는 'us-central'입니다.

ListProfilesRequest

ListProfilesRequest에는 사용자가 볼 수 있는 권한이 있는 프로젝트의 배포에 대한 프로필을 나열하기 위한 요청 매개변수가 포함되어 있습니다.

필드
parent

string

필수 항목입니다. 이 프로필 컬렉션을 소유한 상위 항목입니다. 형식: projects/{user_project_id}

승인을 처리하려면 지정된 리소스 parent에 대해 다음과 같은 IAM 권한이 필요합니다.

  • cloudprofiler.profiles.list
page_size

int32

선택사항입니다. 반환할 최대 항목 수입니다. 기본 page_size는 1000입니다. 최대 한도는 1,000입니다.

page_token

string

선택사항입니다. 특정 페이지에서 페이지로 나누기를 계속하고 프로필을 가져오는 토큰입니다. 페이지를 매길 때 ListProfiles에 제공된 다른 모든 매개변수는 페이지 토큰을 제공한 호출과 일치해야 합니다.

ListProfilesResponse

ListProfileResponse에는 사용자가 볼 수 있는 권한이 있는 프로젝트에서 배포에 대해 수집된 프로필 목록이 포함됩니다.

필드
profiles[]

Profile

가져온 프로필 목록입니다.

next_page_token

string

결과의 다음 페이지를 수신하는 토큰입니다. 가져올 프로필이 더 이상 없으면 이 필드가 비어 있을 수 있습니다.

skipped_profiles

int32

프로필을 가져올 수 없어 현재 페이지에서 건너뛴 프로필 수입니다. 일반적으로 0이어야 합니다. 0이 아닌 값은 일시적인 오류를 나타낼 수 있습니다. 이 경우 숫자가 사용 사례보다 지나치게 높으면 호출을 다시 시도할 수 있습니다.

프로필

프로필 리소스입니다.

필드
name

string

출력 전용입니다. 이 프로필에 대해 서버에서 할당된 불투명한 고유 ID입니다.

profile_type

ProfileType

프로필 유형입니다. 오프라인 모드의 경우 프로필 생성 시 지정해야 합니다. 온라인 모드의 경우 서버에서 할당되고 반환됩니다.

deployment

Deployment

이 프로필이 적용되는 배포입니다.

duration

Duration

프로파일링 세션의 지속 시간입니다. 입력(오프라인 모드) 또는 출력(온라인 모드)입니다. 필드는 요청된 프로파일링 기간을 나타냅니다. 프로파일링을 즉시 중지할 수 없는 경우(예: 프로파일링 중지가 비동기식으로 처리되는 경우) 프로필 데이터에 기록되는 유효 프로파일링 기간과 약간 다를 수 있습니다.

profile_bytes

bytes

입력 전용입니다. gzip 압축 직렬화된 proto로서, 프로필 바이트의 형식은 https://github.com/google/pprof/blob/master/proto/profile.proto입니다.

labels

map<string, string>

입력 전용입니다. 이 특정 프로필과 연결된 라벨입니다. 이러한 라벨은 최종 데이터 세트의 배포 라벨과 병합됩니다. 검증 규칙 및 한도는 배포 라벨 문서를 참조하세요.

start_time

Timestamp

출력 전용입니다. 프로필 시작 시간입니다. 이 출력은 ListProfiles 메서드의 응답에만 나타납니다.

ProfileType

ProfileType은 프로파일링 데이터의 유형입니다. 참고: 열거형 구성원 이름은 프로필 유형의 고유한 문자열 식별자로, 소문자로 사용되므로 이름을 변경해서는 안 됩니다.

열거형
PROFILE_TYPE_UNSPECIFIED 미지정 프로필 유형입니다.
CPU 스레드 CPU 시간 샘플링입니다.
WALL 실제 시계상의 시간 샘플링입니다. 모든 스레드를 중지하므로 비용이 더 많이 듭니다.
HEAP 사용 중인 힙 프로필입니다. 프로파일링 시점에 활성 상태인 할당의 스냅샷을 나타냅니다.
THREADS 모든 스레드 스택의 단일샷 컬렉션입니다.
CONTENTION 동기화 경합 프로필입니다.
PEAK_HEAP 최고 힙 프로필입니다.
HEAP_ALLOC 힙 할당 프로필입니다. 이는 프로필 기간 동안 수행된 모든 할당의 집계를 나타냅니다. 프로파일링 간격 종료 시 해제되었을 수 있는 할당을 비롯해 모든 할당이 포함됩니다. 이 프로필은 가비지 수집 언어에서 코드의 어떤 부분이 가비지 컬렉션 압력을 가장 많이 발생시키는지 파악하여 이를 최적화할 수 있는지 확인하는 데 특히 유용합니다.

UpdateProfileRequest

UpdateProfileRequest에는 업데이트할 프로필이 포함됩니다.

필드
profile

Profile

업데이트할 프로필입니다.

승인을 처리하려면 지정된 리소스 profile에 대해 다음과 같은 IAM 권한이 필요합니다.

  • cloudprofiler.profiles.update
update_mask

FieldMask

덮어쓸 필드를 지정하는 데 사용되는 필드 마스크입니다. 현재는 profile_bytes 및 라벨 필드만 UpdateProfile에서 지원되므로, 마스크에서 해당 필드만 지정할 수 있습니다. 마스크를 제공하지 않으면 모든 필드를 덮어씁니다.