我工作的公司使用 Google Cloud SQL 来管理生产中的 SQL 数据库。
我们遇到了性能问题,我认为查看/监控高于特定阈值(例如 250 毫秒)的所有查询是一个好主意(除其他外)。
通过查看PostgreSQL 文档 https://www.postgresql.org/docs/9.6/static/runtime-config-logging.html#GUC-LOG-MIN-DURATION-STATEMENT我认为log_min_duration_statement
似乎是我需要的标志。
log_min_duration_statement(整数)
如果语句运行了至少指定的毫秒数,则导致记录每个已完成语句的持续时间。将其设置为零会打印所有语句持续时间。
但从 Cloud SQL 文档来看,我发现只能设置一组狭窄的数据库标志(如每个数据库实例),但正如您可以从here https://cloud.google.com/sql/docs/postgres/flags?authuser=1#list-flags-postgres 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 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]
参考:
- 支持的标志的完整列表(CTRL+F
log_min_duration_statement
): https://cloud.google.com/sql/docs/postgres/flags#postgres-l https://cloud.google.com/sql/docs/postgres/flags#postgres-l
- 问题跟踪器:https://issuetracker.google.com/issues/74578509#comment54 https://issuetracker.google.com/issues/74578509#comment54
- PostgreSQL 文档:https://www.postgresql.org/docs/9.6/runtime-config-logging.html#GUC-LOG-MIN-DURATION-STATMENT https://www.postgresql.org/docs/9.6/runtime-config-logging.html#GUC-LOG-MIN-DURATION-STATEMENT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)