查看性能捕获日志

性能捕获功能会收集实例指标数据,并将其发送到 Cloud Logging 的 mysql-performance-capture.log 文件中。

如需详细了解如何在 Cloud Logging 中 查看日志,请参阅使用 Logs Explorer 查看日志

准备工作

如需查看性能捕获日志,您必须拥有在 Cloud Logging 中查看项目和实例日志的相应权限。

所需角色和权限

如需获得查看性能捕获日志所需的权限,请让您的管理员为您授予实例项目的Logs Viewer (roles/logging.viewer) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

查看性能捕获日志

如需查看性能捕获日志,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 Cloud Logging 页面。

    转到 Cloud Logging

  2. 点击所有资源 ,然后选择 Cloud SQL 数据库
  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_TRXprocesslist 表
  • 高 CPU 利用率
  • 高内存用量
  • 高临时文件用量
  • 历史记录列表长度
  • 运行中的线程
  • 信号量等待
  • 事务锁等待
activequeries
InnoDB 状态 提供有关性能事件发生时 InnoDB 存储引擎状态的信息。 这对于诊断锁争用、事务问题、缓冲池问题和历史记录列表长度增长至关重要。要查找的关键字:
  • TRANSACTIONS (长时间运行的事务、锁等待)
  • SEMAPHORES(互斥锁争用)
  • LATEST DETECTED DEADLOCK
  • BUFFER POOL AND MEMORY
  • HISTORY LIST LENGTH
如需详细了解 InnoDB 标准监控输出,请参阅 MySQL 文档中的 InnoDB 标准监控和锁监控输出
innodbstatus
复制分析 包含复制诊断信息,包括 SHOW REPLICA STATUS 的输出、GTID 集以及来自性能架构工具的详细信息。该报告还包括性能事件发生时执行位置之后的继电器日志中的前五个事件。 此报告可用于诊断复制错误或延迟。

如需详细了解 SHOW REPLICA STATUS 输出和 副本应用器线程,请参阅 MySQL 文档中的 SHOW REPLICA STATUS 语句 监控复制应用器工作器线程
  • 副本 SQL I/O 线程错误
  • 落后于源的时间(以秒为单位)
replicastatus
事务分析 有关正在跟踪的长时间运行的事务的详细信息。

如需详细了解如何解读有关 InnoDB 事务的数据, 请参阅 The INFORMATION_SCHEMA INNODB_TRX Table in the MySQL documentation。
长时间运行的事务 LongRunningTransactions
自动终止的事务 有关当前探测周期中终止的长时运行事务的详细信息。

自动终止数据 AutoTerminateTransaction

过滤性能捕获日志中的数据

当性能捕获功能根据为 Cloud SQL 实例配置的阈值检测到问题时,监控代理会将与实例和报告类型关联的带标签的日志条目发送到 Cloud Logging。

为了帮助您整理日志并将日志条目与为实例观察到的性能问题相关联,您可以按标签过滤性能捕获日志条目。

每个日志条目都带有以下两个标签:

  • 事件时间,或 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 Logs Explorer 查询构建器中使用以下查询。

获取特定事件的所有报告

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

比较特定事件的第 1 个和第 3 个 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