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

詳細については、認証の概要をご覧ください。

CreateProfile

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

詳細については、認証の概要をご覧ください。

UpdateProfile

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

エージェントが提供できる 1 つ以上のプロファイル タイプ。

デプロイ

デプロイにはデプロイ ID 情報が含まれます。

フィールド
project_id

string

プロジェクト ID は クラウド プロジェクトの ID です。検証正規表現: ^[a-z][-a-z0-9:.]{4,61}[a-z0-9]$

target

string

ターゲットは、関連するデプロイをグループ化するために使用されるサービス名です。* App Engine フレキシブル / スタンダードのサービス名。* GKE のクラスタとコンテナの名前。* Compute Engine の直接プロファイリング(Java など)に対するユーザー指定の文字列。* 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 で実行されているデプロイの場合は、デプロイの場所を示す「zone」または「region」ラベルが存在する必要があります。ゾーンの例は「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 は 1,000 です。上限は 1,000 です。

page_token

string

省略可。ページ分けを続行して特定のページからプロフィールを取得するためのトークン。ページ分割を行う場合、ListProfiles に指定する他のすべてのパラメータは、ページトークンを提供した呼び出しと一致する必要があります。

ListProfilesResponse

ListProfileResponse には、ユーザーが表示権限を持っているプロジェクトのデプロイについて、収集されたプロファイルのリストが含まれます。

フィールド
profiles[]

Profile

取得したプロフィールのリスト。

next_page_token

string

結果の次ページを取得するためのトークン。 取得するプロフィールが他にない場合、このフィールドは空になることがあります。

skipped_profiles

int32

正常に取得できなかったために、現在のページでスキップされたプロフィールの数。通常はゼロになります。ゼロ以外の値は一時的な失敗を示している可能性があります。その場合、ユースケースに対して数が大きすぎる場合、呼び出しが再試行される可能性があります。

プロフィール

プロファイル リソース。

フィールド
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

上書きするフィールドの指定に使用されるフィールド マスク。現在、UpdateProfile では profile_bytes フィールドと labels フィールドのみをサポートしているため、マスクにはこれらのフィールドのみを指定できます。マスクを指定しない場合、すべてのフィールドが上書きされます。