パフォーマンス キャプチャ ログを表示する

パフォーマンス キャプチャは、インスタンスの指標データを収集し、mysql-performance-capture.log ファイルで Cloud Logging に送信します。

Cloud Logging でのログの表示の詳細については、ログ エクスプローラを使用してログを表示するをご覧ください。

始める前に

パフォーマンス キャプチャ ログを表示するには、プロジェクトとインスタンスの Cloud Logging でログを表示するための適切な権限が必要です。

必要なロールと権限

パフォーマンス キャプチャ ログの表示に必要な権限を取得するには、インスタンスのプロジェクトに対するログ閲覧者 roles/logging.viewer)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

パフォーマンス キャプチャ ログを表示する

パフォーマンス キャプチャ ログを表示する手順は次のとおりです。

  1. Google Cloud コンソールで、[Cloud Logging] ページに移動します。

    Cloud Logging に移動

  2. [すべてのリソース] をクリックし、[Cloud SQL Database] を選択します。
  3. Cloud SQL インスタンスを選択します。
  4. ログ名をフィルタします。

    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 テーブルをご覧ください。
  • runningThreadsThreshold(Cloud SQL Admin API)
  • running-threads-thresholdgcloud CLI
activequeries
InnoDB のステータス パフォーマンス イベント発生時の InnoDB ストレージ エンジンの状態に関する情報を提供します。これは、ロックの競合、トランザクションの問題、バッファ プールの問題、履歴リストの長さの増加を診断するうえで重要です。確認するキーワード:
  • TRANSACTIONS(長時間実行トランザクション、ロック待機)
  • SEMAPHORES(ミューテックス競合)
  • LATEST DETECTED DEADLOCK
  • BUFFER POOL AND MEMORY
  • HISTORY LIST LENGTH
InnoDB 標準モニターの出力の詳細については、MySQL ドキュメントの InnoDB 標準モニターとロックモニターの出力をご覧ください。
  • runningThreadsThreshold(Cloud SQL Admin API)
  • running-threads-thresholdgcloud CLI
innodbstatus
レプリケーションの分析 SHOW REPLICA STATUS の出力、GTID セット、パフォーマンス スキーマ ツールからの詳細など、レプリケーションの診断情報が含まれます。レポートには、パフォーマンス イベント発生時の実行位置の後に続くリレーログの最初の 5 つのイベントも含まれます。このレポートは、レプリケーション エラーや遅延の診断に使用できます。

SHOW REPLICA STATUS の出力とレプリカ アプライヤ スレッドの詳細については、MySQL ドキュメントの SHOW REPLICA STATUS ステートメント レプリケーション アプライヤ ワーカー スレッドのモニタリングをご覧ください。
  • secondsBehindSourceThreshold(Cloud SQL Admin API)
  • seconds-behind-source-thresholdgcloud CLI
replicastatus
トランザクション ウォッチャー データ 追跡されている長時間実行トランザクションの詳細。

InnoDB トランザクションに関するデータの解釈方法の詳細については、MySQL ドキュメントの INFORMATION_SCHEMA INNODB_TRX テーブルをご覧ください。
  • transactionDurationThreshold(Cloud SQL Admin API)
  • transaction-duration-thresholdgcloud CLI
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