パフォーマンス キャプチャは、インスタンスの指標データを収集し、mysql-performance-capture.log ファイルで Cloud Logging に送信します。
Cloud Logging でのログの表示の詳細については、ログ エクスプローラを使用してログを表示するをご覧ください。
始める前に
パフォーマンス キャプチャ ログを表示するには、プロジェクトとインスタンスの Cloud Logging でログを表示するための適切な権限が必要です。
必要なロールと権限
パフォーマンス キャプチャ ログの表示に必要な権限を取得するには、インスタンスのプロジェクトに対するログ閲覧者 (roles/logging.viewer)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
パフォーマンス キャプチャ ログを表示する
パフォーマンス キャプチャ ログを表示する手順は次のとおりです。
-
Google Cloud コンソールで、[Cloud Logging] ページに移動します。
- [すべてのリソース] をクリックし、[Cloud SQL Database] を選択します。
- Cloud SQL インスタンスを選択します。
ログ名をフィルタします。
logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log"
PROJECT_ID は、実際のプロジェクト ID に置き換えます。
ログ ペイロードは文字列形式で、複数のログ行にまたがる
SHOW ENGINE INNODB STATUSなどのキャプチャされたコマンドの出力が含まれています。
パフォーマンス キャプチャ ログのデータを確認する
各パフォーマンス キャプチャ ログは、インスタンス用に定義したパフォーマンス イベントによってトリガーされます。次の表に、パフォーマンス キャプチャ ログエントリと構成されたしきい値の関連付けを示し、エントリログで確認できるパフォーマンス データ レポートの説明を示します。
| パフォーマンス キャプチャ ログエントリ | 説明 | しきい値トリガー | レポート名 |
|---|---|---|---|
| アクティブなクエリ | 状態別にグループ化された接続数とトランザクション数、実行時間別に分類されたアクティブ クエリ数(2 秒未満、2 ~ 10 秒、10 秒以上)、実行時間の長い上位 50 件のトランザクションまたはクエリの詳細情報など、データベースの負荷指標をキャプチャします。このレポートは、負荷の高い期間を特定し、特定の遅いクエリを特定するのに役立ちます。 InnoDB トランザクションとプロセスに関するデータの解釈方法の詳細については、MySQL ドキュメントの INFORMATION_SCHEMA INNODB_TRX テーブルと processlist テーブルをご覧ください。 |
|
activequeries |
| InnoDB のステータス | パフォーマンス イベント発生時の InnoDB ストレージ エンジンの状態に関する情報を提供します。これは、ロックの競合、トランザクションの問題、バッファ プールの問題、履歴リストの長さの増加を診断するうえで重要です。確認するキーワード:
|
|
innodbstatus |
| レプリケーションの分析 | SHOW REPLICA STATUS の出力、GTID セット、パフォーマンス スキーマ ツールからの詳細など、レプリケーションの診断情報が含まれます。レポートには、パフォーマンス イベント発生時の実行位置の後に続くリレーログの最初の 5 つのイベントも含まれます。このレポートは、レプリケーション エラーや遅延の診断に使用できます。SHOW REPLICA STATUS の出力とレプリカ アプライヤ スレッドの詳細については、MySQL ドキュメントの
SHOW REPLICA STATUS ステートメントと
レプリケーション アプライヤ ワーカー スレッドのモニタリングをご覧ください。 |
|
replicastatus |
| トランザクション ウォッチャー データ | 追跡されている長時間実行トランザクションの詳細。 InnoDB トランザクションに関するデータの解釈方法の詳細については、MySQL ドキュメントの INFORMATION_SCHEMA INNODB_TRX テーブルをご覧ください。 |
|
LongRunningTransactions |
パフォーマンス キャプチャ ログのデータをフィルタする
パフォーマンス キャプチャが Cloud SQL インスタンスに構成されたしきい値に基づいて問題を検出すると、モニタリング エージェントは、インスタンスとレポートのタイプに関連付けられたラベル付きログエントリを Cloud Logging に送信します。
ログを分類し、ログエントリとインスタンスで確認されたパフォーマンスの問題を関連付けるために、ラベルでパフォーマンス キャプチャ ログエントリをフィルタできます。
各ログエントリには、次の 2 つのラベルが付けられます。
イベントの時刻、または
labels.EVENT_TIME: パフォーマンス キャプチャ エントリログの時刻を示します。形式は、一意のタイムスタンプ文字列YYYY-MM-DDTHH:MM:SSZです。例:2025-10-16T13:12:07Zファイル名または
labels.FILE_NAME: レポートのタイプと、パフォーマンス イベントによってトリガーされたパフォーマンス キャプチャ ログエントリのシーケンス番号を識別します。形式はINSTANCE_TYPE_SEQUENCE_NUMBER_REPORT_TYPEです。たとえば、アクティブ クエリ レポートの最初のパフォーマンス キャプチャ ログエントリであるprimary_1_activequeriesなどです。
フィルタの使用例
このセクションでは、分析のために特定のログエントリで mysql-performance-capture.log ファイルをフィルタする方法の例を示します。
以下の例では、次のように置き換えます。
- PROJECT_ID: Cloud SQL インスタンスのプロジェクト ID
- TIMESTAMP: トリガー パフォーマンス イベントのタイムスタンプ(
YYYY-MM-DDTHH:MM:SSZ形式)。例:2025-10-16T13:12:07Z
特定のパフォーマンス イベントでフィルタする
特定のパフォーマンス イベントでフィルタするには、labels.EVENT_TIME ラベルを使用して関連するログエントリを検索します。
たとえば、特定のパフォーマンス イベントのレポートを取得するには、Logging ログ エクスプローラのクエリビルダーで次のクエリを使用します。
特定のイベントのすべてのレポートを取得する
logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log" labels.EVENT_TIME="TIMESTAMP"
特定のイベントの InnoDB レポートを取得する
logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log" labels.EVENT_TIME="TIMESTAMP" labels.FILE_NAME=~"innodbstatus"
特定のイベントのすべてのレポートタイプの最初のログエントリのみを取得する
logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log" labels.EVENT_TIME="TIMESTAMP" labels.FILE_NAME=~"_1_"
ファイル名全体でフィルタする
すべてのイベントのすべての activequeries レポートを取得する
この一般的なクエリは、パフォーマンス イベント中にアクティブなクエリがどのように見えるかを確認するのに役立ちます。
logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log" labels.FILE_NAME=~"activequeries"
次のように置き換えます。
- PROJECT_ID: Cloud SQL インスタンスのプロジェクト ID
特定のイベントの 1st innodbstatus レポートと 3rd innodbstatus レポートを比較する
logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log" labels.EVENT_TIME="TIMESTAMP" (labels.FILE_NAME="primary_1_innodbstatus" OR labels.FILE_NAME="primary_3_innodbstatus")
次のように置き換えます。
- PROJECT_ID: Cloud SQL インスタンスのプロジェクト ID
- TIMESTAMP: トリガー パフォーマンス イベントのタイムスタンプ(
YYYY-MM-DDTHH:MM:SSZ形式)。例:2025-10-16T13:12:07Z
特定の時間以降に発生したイベントの最初の activequeries レポートを見つける
logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log" labels.FILE_NAME="primary_1_activequeries" timestamp > "TIMESTAMP"
次のように置き換えます。
- PROJECT_ID: Cloud SQL インスタンスのプロジェクト ID
- TIMESTAMP:
YYYY-MM-DDTHH:MM:SSZ形式のタイムスタンプ。例:2025-10-16T13:12:07Z
InnoDB ステータス レポート内の特定のテキストを検索する
logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log" labels.FILE_NAME=~"innodbstatus" textPayload:"SEARCH_TEXT"
次のように置き換えます。
- PROJECT_ID: Cloud SQL インスタンスのプロジェクト ID
- SEARCH_TEXT: 検索するテキスト。例:
SEMAPHORE WAITS