aboutsummaryrefslogtreecommitdiff
path: root/src/database/sql/sql.go
diff options
context:
space:
mode:
authorAndrei Korzhevskii <a.korzhevskiy@gmail.com>2015-03-23 18:23:53 +0300
committerBrad Fitzpatrick <bradfitz@golang.org>2015-04-01 15:24:53 +0000
commit297c1d297f4cee55a6aee5eb68583d0139aef076 (patch)
treed4a8767dc936bd39bfc16d02c898170493402482 /src/database/sql/sql.go
parent9d0239771a2ddd77be0ba64c2782e1328a378190 (diff)
downloadgo-297c1d297f4cee55a6aee5eb68583d0139aef076.tar.xz
database/sql: provide stats on number of open connections to the database.
This change provides a convenient way to monitor database connection pool. Change-Id: I4b3757855b43f3b254acf9312e2a16e2f87840d0 Reviewed-on: https://go-review.googlesource.com/7950 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/database/sql/sql.go')
-rw-r--r--src/database/sql/sql.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go
index 1ce679d8a6..b0e8894673 100644
--- a/src/database/sql/sql.go
+++ b/src/database/sql/sql.go
@@ -572,6 +572,22 @@ func (db *DB) SetMaxOpenConns(n int) {
}
}
+// DBStats contains database statistics.
+type DBStats struct {
+ // OpenConnections is the number of open connections to the database.
+ OpenConnections int
+}
+
+// Stats returns database statistics.
+func (db *DB) Stats() DBStats {
+ db.mu.Lock()
+ stats := DBStats{
+ OpenConnections: db.numOpen,
+ }
+ db.mu.Unlock()
+ return stats
+}
+
// Assumes db.mu is locked.
// If there are connRequests and the connection limit hasn't been reached,
// then tell the connectionOpener to open new connections.