プロファイル データをダウンロードする
このドキュメントでは、プロファイル データをローカル システムにダウンロードする方法と、Go アプリケーションを使用してプロファイル データをプログラムで取得する方法について説明します。
Google Cloud コンソールを使用してプロファイルをダウンロードする
フレームグラフに表示されているプロファイルをダウンロードするには、[ダウンロード] 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
の最大値は 1000 です。値が指定されていない場合、このフィールドは 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
ツールを使用します。