使用golang获取当前打开的Postgres DB连接



我正在尝试使用golang获取当前打开的Postgres DB连接。我们在aws lambda上运行应用程序,许多DB事务无法启动。我们看到的错误是——pq: PAM authentication failed for user "username"我如何使用golang记录当前打开的postgres DB连接数,以便我可以看到它是否达到最大限制?

您得到的错误可能是不正确的用户/密码,而不是达到最大连接数。对于最大连接数,您应该得到一个错误,如&;too many connections For…&;

要获取当前连接数,需要查询pg_stat_database:

func getNumberOfConnections(db *sql.DB) int {
queryStmt := "SELECT sum(numbackends) FROM pg_stat_database"
rows, err := db.Query(queryStmt)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
var sum int
for rows.Next() {
rows.Scan(&sum)
}
return sum
}

最新更新