postgresql - 在 Google Cloud SQL PostgreSQL 实例上记录慢速查询

标签 postgresql performance monitoring google-cloud-sql

我工作的公司使用 Google Cloud SQL 来管理生产环境中的 SQL 数据库。

我们遇到了性能问题,我认为查看/监控超过特定阈值(例如 250 毫秒)的所有查询是一个好主意(除其他外)。

通过查看 PostgreSQL documentation我认为 log_min_duration_statement 似乎是我需要的标志。

log_min_duration_statement (integer)

Causes the duration of each completed statement to be logged if the statement ran for at least the specified number of milliseconds. Setting this to zero prints all statement durations.

但从 Cloud SQL 文档来看,我看到只能设置一组狭窄的数据库标志(如每个数据库实例),但正如您从 here 中看到的那样log_min_duration_statement 不在这些受支持的标志中。

那么问题来了。如何使用 Google Cloud SQL 记录/监控我的慢速 PostgreSQL 查询?如果不可能,那么您建议我使用哪种工具/方法来获得类似的结果?

最佳答案

2019 年 4 月 3 日更新

现在可以在 Google Cloud SQL PostgreSQL 实例上记录慢速查询,请参阅 https://cloud.google.com/sql/docs/release-notes#april_3_2019 :

database_flags = [
  {
    name = "log_min_duration_statement"
    value = "1000"
  },
]

启用 log_min_duration_statement 后,您可以使用 Stackdriver 日志记录查看日志。选择 Cloud SQL Database -> cloudsql.googleapis.com/postgres.log,您将看到这样的日志。

[103402]: [9-1] db=cloudsqladmin,user=cloudsqladmin LOG: duration: 11.211 ms statement: [YOUR SQL HERE]

引用资料:

关于postgresql - 在 Google Cloud SQL PostgreSQL 实例上记录慢速查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50138337/

相关文章:

postgresql - 结合多个索引的 Postgres

postgresql - Postgresql 中列的唯一行

sql - 如何为 postgresql 中的表的每一行递增每个时间戳?

php - 使用系统的功能而不是使用语言会更好吗?

javascript - 调用带有可变参数的函数的有效方法是什么?

python - 尝试加速统计(scipy)计算失败

Linux 上的 JAVA 堆大小监控

Railo 上的 JavaMelody : no SQL statistics?

postgresql - 仅允许 postgres 用户列表角色

mysql - 无法使用 Prometheus、Docker 和 prom/mysqld-exporter 镜像监控 MySQL