X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/08e9c6aff46e182b9cd14fab9d42d21b2d7c6902..bb91f86ea02e3535e3953ee0916dd6877bf585f7:/services/ws/event_source.go diff --git a/services/ws/event_source.go b/services/ws/event_source.go index 7c1b58492d..cfb828b2a5 100644 --- a/services/ws/event_source.go +++ b/services/ws/event_source.go @@ -1,3 +1,7 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + package main import ( @@ -239,9 +243,17 @@ func (ps *pgEventSource) NewSink() eventSink { } func (ps *pgEventSource) DB() *sql.DB { + ps.WaitReady() return ps.db } +func (ps *pgEventSource) DBHealth() error { + ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(time.Second)) + defer cancel() + var i int + return ps.db.QueryRowContext(ctx, "SELECT 1").Scan(&i) +} + func (ps *pgEventSource) DebugStatus() interface{} { ps.mtx.Lock() defer ps.mtx.Unlock() @@ -257,6 +269,7 @@ func (ps *pgEventSource) DebugStatus() interface{} { "QueueDelay": stats.Duration(ps.lastQDelay), "Sinks": len(ps.sinks), "SinksBlocked": blocked, + "DBStats": ps.db.Stats(), } }