Documentation ¶
Overview ¶
Package postgres helps creating PostgreSQL connection pools
Index ¶
- Variables
- func ConnectionPool() *pg.DB
- func CustomConnectionPool(opts *pg.Options) *pg.DB
- func DefaultConnectionPool() *pg.DB
- type ConnectionPoolMetrics
- func (m *ConnectionPoolMetrics) Collect(ch chan<- prometheus.Metric)
- func (m *ConnectionPoolMetrics) Describe(ch chan<- *prometheus.Desc)
- func (m *ConnectionPoolMetrics) ObserveRegularly(ctx context.Context, db *pg.DB, poolName string) error
- func (m *ConnectionPoolMetrics) ObserveWhenTriggered(trigger <-chan chan<- struct{}, db *pg.DB, poolName string) error
- type HealthCheck
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var (
ErrNotUnique = errors.New("not unique")
)
errors
Functions ¶
func ConnectionPool ¶
ConnectionPool returns a new database connection pool that is already configured with the correct credentials and instrumented with tracing and logging
func CustomConnectionPool ¶
CustomConnectionPool returns a new database connection pool that is already configured with the correct credentials and instrumented with tracing and logging using the passed options
Fot a health check for this connection a PgHealthCheck needs to be registered:
servicehealthcheck.RegisterHealthCheck(...)
func DefaultConnectionPool ¶ added in v0.1.17
DefaultConnectionPool returns a the default database connection pool that is configured using the POSTGRES_* env vars and instrumented with tracing, logging and metrics.
Types ¶
type ConnectionPoolMetrics ¶ added in v0.1.17
type ConnectionPoolMetrics struct {
// contains filtered or unexported fields
}
ConnectionPoolMetrics is the metrics collector for postgres connection pools (pace_postgres_connection_pool_*). It is capable of running an observer that periodically gathers those stats.
Example ¶
myDB := ConnectionPool() // collect stats about my db every minute metrics := NewConnectionPoolMetrics() if err := metrics.ObserveRegularly(context.Background(), myDB, "my_db"); err != nil { panic(err) } prometheus.MustRegister(metrics)
Output:
func NewConnectionPoolMetrics ¶ added in v0.1.17
func NewConnectionPoolMetrics() *ConnectionPoolMetrics
NewConnectionPoolMetrics returns a new metrics collector for postgres connection pools.
func (*ConnectionPoolMetrics) Collect ¶ added in v0.1.17
func (m *ConnectionPoolMetrics) Collect(ch chan<- prometheus.Metric)
Collect collects all the embedded prometheus metrics.
func (*ConnectionPoolMetrics) Describe ¶ added in v0.1.17
func (m *ConnectionPoolMetrics) Describe(ch chan<- *prometheus.Desc)
Describe descibes all the embedded prometheus metrics.
func (*ConnectionPoolMetrics) ObserveRegularly ¶ added in v0.1.17
func (m *ConnectionPoolMetrics) ObserveRegularly(ctx context.Context, db *pg.DB, poolName string) error
ObserveRegularly starts observing the given postgres pool. The provided pool name must be unique as it distinguishes multiple pools. The pool name is exposed as the "pool" label in the metrics. The metrics are collected once per minute for as long as the passed context is valid.
func (*ConnectionPoolMetrics) ObserveWhenTriggered ¶ added in v0.1.17
func (m *ConnectionPoolMetrics) ObserveWhenTriggered(trigger <-chan chan<- struct{}, db *pg.DB, poolName string) error
ObserveWhenTriggered starts observing the given postgres pool. The pool name behaves as decribed for the ObserveRegularly method. The metrics are observed for every emitted value from the trigger channel. The trigger channel allows passing a response channel that will be closed once the metrics were collected. It is also possible to pass nil. You should close the trigger channel when done to allow cleaning up.
type HealthCheck ¶ added in v0.1.15
type HealthCheck struct { Pool postgresQueryExecutor // contains filtered or unexported fields }
HealthCheck checks the state of a postgres connection. It must not be changed after it was registered as a health check.
func (*HealthCheck) CleanUp ¶ added in v0.1.15
func (h *HealthCheck) CleanUp() error
CleanUp drops the test table.
func (*HealthCheck) HealthCheck ¶ added in v0.1.15
func (h *HealthCheck) HealthCheck(ctx context.Context) servicehealthcheck.HealthCheckResult
HealthCheck performs the read test on the database. If enabled, it performs a write test as well.
func (*HealthCheck) Init ¶ added in v0.1.15
func (h *HealthCheck) Init() error
Init initialises the test table